Documente Academic
Documente Profesional
Documente Cultură
2.1. DEFINIŢII
Input curent
a B c
S Q0 Q1 Q2 Q0
t Q1 Q0 Q0 Q3
ă Q2 Q3 Q1 Q2
r
Q3 Q3 Q1 Q0
i
a a c b b c a
Q0 → Q1 → Q0 → Q0 → Q2 → Q1 → Q3 → Q3
x
Aici Qi → Q j înseamnă trecerea maşinii din starea Qi în Q j citind input-ul
Q3 .
Starea iniţială poate fi o stare acceptată. O maşină în care aşa ceva are loc
va accepta şirul vid λ . (Poate accepta şi alte şiruri.)
0 1 1 0 1
Q0 → Q0 → Q1 → Q0 → Q0 → Q1 .
← Şir de intrare
← Cap de citire
Input curent – xk
Stare curentă – Q j
care se află la dreapta şi sub capului de citire, vezi figura 2.6. Dacă
maşina M se află în configuraţia Q, ak ak +1 K am şi δ (Q, ak ) = Qˆ ,
Q, ak ak +1 K am → Qˆ , ak +1ak + 2 K am
Când şirul de intrare este vid, de exemplu după citirea întregului şir,
configuraţia maşinii M este Q, λ , unde λ ia locul şirului vid. Ca urmare,
Q1 , σ 1 → Q2 , σ 2 → L → Q p , σ p
şi o numim tranziţie.
x = ε n + ε n−1 ⋅ 3 + ε n− 2 ⋅ 32 + L ε1 ⋅ 3n −1 .
x = ε n + ε n−1 ⋅ 3 + ε n− 2 ⋅ 32 + L ε1 ⋅ 3n −1 (2.1)
atunci x este par, dacă şi numai dacă ε1 + ε 2 + L + ε n este par. Pentru a
vedea aceasta, presupunem că x este dat de (2.1). Împărţirea cu 2 a
puterilor lui 3, dă restul 1. Astfel, când împărţim x cu 2, fiecare termen
ε k ⋅ 3n − k va contribui cu ε k la rest. Demonstraţia formală se poate da cu
Funcţia de tranziţie δ este dată astfel încât δ (Qi , ε ) = Q j , unde j este restul
Q0 , 121 → Q1 , 21 → Q1 , 1 → Q0 , λ
Q0 , 1122 → Q1 , 122 → Q0 , 22 → Q0 , 2 → Q0 , λ .
2.2. DESCRIEREA UNUI LIMBAJ CU AJUTORUL MAŞINILOR
{ *
}
L( M ) = σ ∈ Σ* | Q0 , σ → Q, λ unde Q ∈ F .
1. Q0 → bQ0 b
Regula II. Q0 → Q0
2. Q0 → b
a
3. Q0 → aQ0 Regula I. Q0 → Q1
4. Q0 → λ Regula III. Q0 ∈ F
5. Q1 → aQ0 q
Regula II. Q1 → Q0
6. Q1 → a
7. Q1 → bQ2 b
Regula II. Q1 → Q2
8. Q1 → b
a
9. Q2 → aQ1 Regula I. Q2 → Q1
10. Q2 → bQ0 b
Regula II. Q2 → Q0
11. Q2 → b
Stare iniţială – Q0
Stări acceptate – Q0 şi Q1
M va fi
Q0 , x1 x2 K x p → Qˆ1 , x2 x3 K x p → Qˆ 2 , x3 x4 K x p
*
→ Qˆ i , xi +1 xi + 2 K x p → Qˆ i +1 , xi + 2 K x p (2.2)
*
→ Qˆ p −1 , x p → Qˆ p , λ
(2.3).
Ultima producţie este inclusă deoarece Qˆ p este o stare finală. Deci, şirul
Q0 ⇒ x1Qˆ1 ⇒ x1 x2Qˆ 2 ⇒ K ⇒ x1 x2 K xi Qˆ i
(2.5)
⇒ x1 x2 K xi xi +1Qˆ i +1 ⇒ x1 x2 K x p −1Qˆ p −1 ⇒ x1 x2 K x p −1 x p
3 7 9 5 2
Q0 ⇒ aQ1 ⇒ abQ2 ⇒ abaQ1 ⇒ abaaQ0 ⇒ abaab .
S → aA A → aB B→b
S → bB A → aS .
Q, xi xi +1 K x p → Qˆ , xi +1 K x p .
Funcţia de tranziţie este dată de tabelul din figura 2.10., sau de diagrama
din figura 2.11. Astfel, dacă maşina se află în starea Q1 şi simbolul de
intrare este 2, M poate trece în stările Q0 sau Q3 . Ca urmare, dat fiind un
input σ , maşina M poate trece prin diferite secvenţe de mişcări. De
exemplu, pentru σ = 01021 unele dintre mişcările posibile sunt
următoarele:
*
Q, σ → Qˆ , σˆ .
* *
În exemplul 2.5. avem Q0 , 01021 → Q1 , 21 şi Q0 , 01021 → Q3 , λ . Putem
defini acum un limbaj generat (acceptat, recunoscut) de o maşină cu stări
finite nedeterministă.
{Q0 , Q3} , {Q1 , Q2 } , {Q1 , Q3} , {Q2 , Q3} , {Q0 , Q1 , Q2 } , {Q0 , Q1 , Q3} ,
∆( S , x) = U δ (Q, x)
Q∈S
(2.6)
Cu alte cuvinte, dacă pentru uni Q j din S maşina M poate trece la input-ul
(mulţimea vidă, care este o stare din K). Formal, aceasta nu reprezintă o
problemă, deoarece formule (2.6) ne dă în acest caz ∆(∅, x) = ∅ oricare ar
fi x (o reuniune de mulţimi vide este vidă).
Astfel, maşina K e complet definită şi evident deterministă: Pentru
fiecare stare S din K şi fiecare simbol de intrare x, funcţia ∆( S , x)
defineşte în mod unic altă stare pentru K. Înainte de a trece la a demonstra
că ambele maşini acceptă acelaşi limbaj, să vedem, ca exemplu, cum
construim K.
S1 = {Q1} S15 S2 S6
S 2 = {Q2 } S2 S6 S15
S3 = {Q3} S2 S3 S3
S 4 = {Q0 , Q1} S4 S5 S6
x1 x2 xi +1 xp
Q0 = Qˆ 0 → Qˆ1 → Qˆ 2 → L → Qˆ i → Qˆ i +1 → L → Qˆ p −1 → Qˆ p (2.7)
este legală, iar Qˆ p este o stare acceptată din M. Rezultă că pentru fiecare
x1 x2 xi +1 xp
S0 = Sˆ0 → Sˆ1 → Sˆ2 → L → Sˆi → Sˆi +1 → L → Sˆ p −1 → Sˆ p (2.9)
x1
Pentru i = 0 în (2.8), Q̂1 este în δ (Qˆ 0 , x1 ) , deoarece Qˆ 0 → Qˆ1 este o tranziţie
x1 x2
Qˆ 0 → Qˆ1 → Qˆ 2
x1
este legală în M. Alegem Q̂1 ca fiind starea pentru care tranziţia Qˆ1 → Qˆ 2
este legală ( Q̂1 există deoarece ∆( Sˆ1 , x2 ) = Sˆ2 ). În acelaşi mod arătăm, că
dacă Qˆ 3 ∈ Sˆ3 , atunci putem găsi Qˆ1 ∈ Sˆ1 şi Qˆ 2 ∈ Sˆ2 astfel încât
x1 x2 x3
Qˆ 0 → Qˆ1 → Qˆ 2 → Qˆ 3 este o secvenţă legală de mişcări. Continuând în acest
fel, observăm că pentru fiecare Qˆ p şi Sˆ p putem găsi Qˆ1 ∈ Sˆ1 , Qˆ 2 ∈ Sˆ2 , ...,
Q, xi xi +1 K x p δ (Q, xi ) = ∅ (2.10)
tranziţie.
2. Pentru fiecare producţie de forma A → a se include starea X în
a
δ ( A, a ) , de exemplu, se include tranziţia A → X în diagrama de
tranziţie.
mişcări
x1 x2 x3 xn
S = Z1 → Z 2 → Z 3 → L → Z n → Z n +1 (2.11)
S → aA | aB | λ
A → aA | b
B → bS | b
Q1 = { A} Q1 Q3
Q 2 = {B} Q15 Q6
Q3 = { X } Q15 Q15
Q 4 = {S , A} Q7 Q3
Q5 = {S , B} Q7 Q6
S Q6 = {S , X } Q7 Q15
t
Q7 = { A, B} Q1 Q2
ă
Q8 = { A, X } Q1 Q3
r
Q 9 = {B , X } Q7 Q6
i
Q10 = {S , A, B} Q7 Q6
Q11 = {S , A, X } Q7 Q3
Q12 = {S , B, X } Q7 Q6
Q13 = { A, B, X } Q1 Q6
Q14 = {S , A, B, X } Q7 Q6
2.5. MINIMIZARE
iniţială din M.
2. Se presupunem A k deja construit pentru k ≥ 0 . Mulţimea
A k+1 se formează prin adăugarea la A k a stărilor din M
congruente şi notăm Q ≡ Qˆ .
opri într-o stare acceptată, acest lucru este valabil şi când maşina a pornit
din configuraţia Qˆ , σ . Presupunem că Q şi Q̂ sunt k-congruente pentru
Lema 2.1. Dacă două stări ale unei maşini sunt (k + 1) -congruente,
ele sunt şi k-congruente.
*
Q, σ = Q, xτ → Q1 , τ → P, λ
şi
*
Qˆ , σ = Qˆ , xτ → Qˆ1 , τ → Pˆ , λ
şi ambii Q1 şi Q̂1 aparţin aceleaşi clase G ' (deoarece (2.14) e valabilă, deci
şi Qˆ1 , σ se vor „termina” diferit: una într-o stare acceptată iar cealaltă
G1 , G2 ,K , Gr (2.17)
stările din K. Există clase de echivalenţe pentru acel k pentru care clasele
de echivalenţă din (2.16) sunt identice cu cele din (2.15). Din construcţia
părţii I rezultă că dacă Q şi Q̂ sunt în aceeaşi Gi , atunci hk (Q, x) = hk (Qˆ , x) ,
oricare ar fi x ∈ Σ . Astfel funcţia
h0
G (0)
Q
h0 (Q, a ) h0 (Q, b)
Q0 G1(0) G2 (0)
Q1 G1(0) G1(0)
Q2 G1(0) G1(0)
Q3 G1(0) G1(0)
G1(0)
Q4 G1(0) G1(0)
Q6 G1(0) G1(0)
Q7 G1(0) G1(0)
Q9 G1(0) G1(0)
Q5 G1(0) G1(0)
(0)
G2
Q8 G1(0) G1(0)
h0 h1 h2 h3
(0) (1) (2) (3)
G G G G
Q a b Q a b Q a b Q a b
0 1 2 0 2 3 0 2 4 1 0 3 5
1 1
1 1 1 2 2 3 2 3 4 2 2 4 5
2 1 2 1 2 1 2 1 3 1 3 1 4 2
3 1 1 3 2 2 3 3 3 3 4 4
1
4 1 1 4 2 2 4 3 3 4 4 4
2
6 1 1 6 2 2 3 6 3 3 4 6 4 4
7 1 1 7 2 2 7 3 3 7 4 4
9 1 1 9 2 2 9 3 3 9 4 4
5 1 1 5 2 2 5 3 3 5 4 4
2 3 4 5
8 1 1 8 2 2 8 3 3 8 4 4
Pas #1 Pas #2 Pas #3 Pas #4
k =0 k =1 k=2 k =3
de M la input-ul σ este
x1 x2 x3 xp
Q0 → Qi1 → Qi2 → L → Qi p (2.19)
x1 x2 x3 xp
G0 → Gi1 → Gi2 → L → Gi p (2.20)
Deoarece Qi ∈Gi , starea Gi este stare acceptată în K, deci σ ∈ L( K ) .
p p p
P (G ) din K1 . Deoarece K1 are mai puţine stări decât K, vor exista două
stări diferite din K, fie ele G ' şi G '' , astfel încât P(G ' ) = P(G '' ) . Cu alte
cuvinte, există două şiruri diferite σ ' = σ (G ' ) şi σ '' = σ (G '' ) astfel încât
Fie Q ' o stare din M conţinută în G ' şi fie Q '' o stare din M conţinută în
G '' . Având G ' ≠ G '' , stările Q ' şi Q '' nu sunt congruente. Deci pentru un
input τ , maşina M va trece din Q ' în Q şi din Q '' în Q unde una din
stările Q şi Q este acceptată iar cealaltă nu. Aceasta implică că unul din
şirurile σ 'τ şi σ ''τ este în L( M ) iar celălalt nu. Să vedem ce se întâmplă
când aceste şiruri sunt introduse în maşina K1 . La input-ul σ 'τ maşina K1
Dacă δ (Q, x) = (Q ' , R) , maşina trece în starea Q ' şi mişcă capul de citire cu
un simbol la dreapta; când δ (Q, x) = (Q ' , L) , maşina trece în starea Q ' şi
mişcă capul de citire cu un simbol la stânga; când δ (Q, x) = (Q ' , S ) , capul
de citire nu se mişcă deloc şi simbolul de intrare x este recitit. Formal
avem:
Input curent
a b C
S Q0 (Q0 , R) (Q1 , R) (Q2 , R)
a1 K ak ak +1 , P, ak + 2 K a p dacă δ (Q, ak + 2 ) = ( P, R)
a0 a1 K ak , Q, ak +1 K a p → a1 K ak −1 , P, ak K a p dacă δ (Q, ak +1 ) = ( P, L)
a1 K ak , P, ak +1 K ak dacă δ (Q, ak +1 ) = ( P, S )
*
L( M ) = {σ ∈ Σ* | λ , Q0 , σ → σ , Q, λ , Q ∈ F}
Ca urmare, dacă M este maşina din exemplul 2.11, aabcac ∈ L( M ) , dar
abccab şi abbbca nu aparţin lui L( M ) . Maşinile cu stări finite obişnuite
*
φσ (Q) = P dacă λ , Q , σ → σ , P, λ
D dacă nu există un astfel de P
* *
σ , Q, x → σ , R, x → σ , P , x
+
În definiţia anterioară, notaţia σ , Q, x → σ , P , x înseamnă, că între
configuraţii, maşina execută un număr pozitiv de mişcări. Important de
reţinut despre funcţia ψ este: dacă ψ σ = (Q, x) = P , adică M porneşte în
configuraţia σ , Q, x , capul de citire se deplasează la dreapta şi rămâne în
σ până când se ajunge în configuraţia σ , P, x .
*
λ , Q0 , σ 1 xτ 1 → σ 1 , P1 , xτ 1
*
(2.22)
λ , Q0 , σ 2 xτ 1 → σ 2 , P1 , xτ 1
* * * *
σ 1 , P1 , xτ 1 → σ 1 , P2 , xτ 1 → L → σ 1 , Pk , xτ 1 →L (2.23)
* * * *
σ 2 , P1 , xτ 2 → σ 2 , P2 , xτ 2 → L → σ 2 , Pk , xτ 2 →L (2.24)
∆(σ , x) = σ x (2.25)
PROBLEME