Determinisztikus véges automaták csukva nyitva m s kbsm csukva nyitva csukva nyitva csukvanyitva 1. Példa: Fotocellás ajtó s b m m= mindkét helyen k= kint b= bent s= sehol k bk
Determinisztikus véges automaták Példa: Pénzautomata állapot, kezdő és végállapotállapot átmenet bemenő jelek be: 5, 10, 20 Ft, VISSZA válasz: csoki ha legalább 30 Ft-ot bedobtunk, különben VISSZA esetén pénz vissza
Determinisztikus véges automaták bemenő jelek a bemeneti szalagon véges sok állapot kimenő jel: Igen -Nem
Determinisztikus véges automaták Definíció: Determinisztikus véges automata (dva vagy va) M = (Q, , , q 0, F) ahol: 1.Q, egy véges halmaz az állapotok halmaza 2. , egy véges halmaz az abc 3. : Q Q az állapotátmenet függvény 4.q 0 Q a kezdeti állapot 5.F Q a végállapotok halmaza
Determinisztikus véges automaták Definíció: Felismert (elfogadott) jelsorozat M=(Q, , , q 0, F) egy dva, w = x 1 x 2... x n -beli jelek sorozata. M felismeri w-t, ha r 0 r 1... r n Q-beli állapotok sorozata, hogy: 1.r 0 = q 0 2. (r i,x i+1 ) = r i+1 i = 1,...n-1 3.r n F Definíció: M dva felismeri az A nyelvet, ha A = w M felismeri w-t . Jelölés: A = L(M)
Nyelvek reprezentációja Definíciók: tetszőleges jelek egy nemüres, véges halmaza, az abc. * jelöli az összes, -beli jelekből álló véges sorozatok (szavak) halmazát. * = w = a 1...a n a i , i = 1,...n, n 0 w = a 1...a n szó hossza n. Speciálisan, jelöli a 0 hosszú sorozatot, az üres szót. A bináris abc, I a 0 és 1 jeleket tartalmazza. Példa: = if, then, else, for, do, a, b, c if a then b else c, do a, do do, aabba
Nyelvek reprezentációja Definíció: L egy formális nyelv felett, ha L *. Egy nyelv véges módon megadható: a)Elemeit felsorolva – ha azok száma véges. b)L = w * w P tulajdonságú c)L = L(M) ahol M egy automata, pl. dva. d)Operátorokkal e)Generáló nyelvtannal Megj: Nem lehet az összes feletti nyelvet végesen reprezentálni!
Reguláris operátorok Definíció: Reguláris operátorok egy abc feletti nyelveken Egyesítés (unió): A B = x x A vagy x B Szorzat (illesztés, konkatenáció): A B = xy x A, y B , ahol x= x 1 x 2...x n, y= y 1 y 2...y m esetén xy= x 1 x 2...x n y 1 y 2...y m Iterálás (Kleene csillag): A* = w 1 w 2...w k w i A i =1,...k, k 0 1. megj. A*, 2. megj. L = esetén L* = *
Operátorok nyelveken Definíció: További operátorok egy abc feletti nyelveken Metszet: A B = w w A és w B Különbség: A - B = w w A és w B , A C = * - A Tükörkép: A R = x R x A ahol x = x 1 x 2...x n esetén x R = x n x n-1...x 1 Pl: L = w 0,1 * w-ben 2 vagy 3 db 1-es szerepel úgy, hogy az első és a második nem szomszédosak 0 * 1 0 0 * 1 0 * ( 1 0 *) e )
Reguláris kifejezések Definíció: Egy abc feletti reguláris kifejezések: 1. minden eleme. 2. 3.Ø 4.Ha és reguláris kifejezések, akkor ( is az. 5.Ha és reguláris kifejezések, akkor ( is az. 6.Ha reguláris kifejezés, akkor * is az. Minden reguláris kifejezés reprezentál egy nyelvet. Pl: reg. kif. nyelv (a* bc) *ab ( a * b c )* a b
Reguláris kifejezések Definíció: Egy nyelv reguláris, ha leírható reguláris kifejezéssel Tétel: Legyen L azon nyelvek halmaza, melyek felismerhetők determinisztikus véges automatával. L zárt a reguláris operátorokra nézve. Azaz ha A 1 L és A 2 L, akkor: 1. A 1 A 2 L. 2.A 1 A 2 L. 3.A 1 * L.
Reguláris kifejezések Bizonyítás, az 1. állításé: Legyen A 1 = L(M 1 ), A 2 = L(M 2 ), M 1 = (Q 1, 1, 1, q 1, F) M 2 = (Q 2, 2, 2, q 2, F 2 ) Megkonstruáljuk M = (Q, , , q 0, F)-t, hogy L(M) = A 1 A 2 1. = 1 = 2 (különben = 1 2 ) 2.Q = Q 1 Q 2 = (r 1, r 2 ) r 1 Q 1 és r 2 Q 2 . 3. ((r 1, r 2 ), a) = ( 1 (r 1, a), 2 (r 2, a)). 4.q 0 = (q 1, q 2 ) 5.F = (r 1, r 2 ) r 1 F 1 vagy r 2 F 2 = (F 1 Q 2 ) (Q 1 F 2 ).
Reguláris kifejezések Bizonyítás, az 2. és 3. állításé: Kerülővel, nemdeterminisztikus véges automatákkal.
Nemdeterminisztikus véges automaták L = (01 010)* q5q5 q3q3 q1q1 q2q2 q4q q3q3 q1q1 1 0 q2q2 0 1
Nemdeterminisztikus véges automaták Definíció: Nemdeterminisztikus véges automata (nva) N = (Q, , , q 0, F) ahol: 1.Q, egy véges halmaz az állapotok halmaza 2. , egy véges halmaz az abc 3. : Q ( ) P (Q) az állapotátmenet fv 4.q 0 Q a kezdeti állapot 5.F Q a végállapotok halmaza Jelölés: =
Nemdeterminisztikus véges automaták Definíció: Felismert (elfogadott) jelsorozat N=(Q, , , q 0, F) egy nva, w = w 1 w 2... w n -beli jelek sorozata. N felismeri w-t, ha r 0 r 1... r n Q-beli állapotok sorozata, hogy: 1.r 0 = q 0 2.r i+1 (r i,w i+1 ) i = 0,...n-1 3.r n F Definíció: N nva felismeri az A nyelvet, ha A = w N felismeri w-t .
Nemdeterminisztikus véges automaták q2q2 q1q1 a,b b q3q3 a a abbaabababbaba ab q1q1 Ø q2 q2 q 3 q2q2 q 2, q 3 q3q3 Ø q3q3 q1q1 ØØ
Nemdeterminisztikus véges automaták Definíció: M 1 és M 2 ekvivalensek, ha L(M 1 ) = L(M 2 ). Tétel: Minden N = (Q, , , q 0, F) nva-hoz létezik vele ekvivalens M dva. Biz: Megkonstruáljuk az M=(Q’, , ’, q 0 ’, F’) va-t. a) Ha N gráfja nem tartalmaz címkét. 1.Q’ = P (Q) 2. ’(R, a) = q Q r R, hogy q (r, a) = r R (r, a) 3.q 0 ’ = q 0 4.F’ = R Q ’ r R, hogy r F
Nemdeterminisztikus véges automaták b) Ha N gráfja tartalmaz címkét. Jelölés: Ha R Q, E(R) = q Q q elérhető R-ből 0 vagy több él mentén haladva 1. Ld. a) 2. ’(R, a) = q Q r R, hogy q E( (r, a)) = r R E( (r, a)) 3.q 0 ’ = E( q 0 ) 4.Ld. a) M valóban ekvivalens N-nel.
Nemdeterminisztikus véges automaták Tétel: Legyen L azon nyelvek halmaza, melyek felismerhetők determinisztikus véges automatával. L zárt a reguláris operátorokra nézve. Azaz ha A 1 L és A 2 L, akkor: 1. A 1 A 2 L. 2.A 1 A 2 L. 3.A 1 * L.
Nemdeterminisztikus véges automaták Bizonyítás: Nva-kat használhatunk va helyett! L(N 1 ) = A 1 L(N 2 ) = A 2 L(N) = A 1.A = A 1 A 2 N1N1 N2N2 N
Nemdeterminisztikus véges automaták Bizonyítás: 2. A = A 1 A 2 N1N1 N2N2 N
Nemdeterminisztikus véges automaták Bizonyítás: 3. A = A 1 * N1N1 N
L R és L D ekvivalenciája Következmény: Az alábbi, valamely adott feletti nyelvek azonos halmazok: 1.L R a reguláris nyelvek halmaza. 2.L N az nva-k által felismert nyelvek. 3.L D a dva által felismert nyelvek. Bizonyítás: R=a R= R=Ø A korábbi két tételből következik, hogy: L R L N és L N = L D a
L R és L D ekvivalenciája Megmutatjuk, hogy L D L R is igaz. Ehhez bevezetjük az általánosított nemdeterminisztikus véges automata fogalmát, a következő specialitásokkal: az élek reguláris kifejezésekkel címkézettek a kezdőállapotból minden más állapotba megy él, de bele egy sem egyetlen, a kezdőállapottól különböző végállapot van a közbülső állapotok mindegyikéből megy egyetlen él minden közbülső állapotba, így saját magába is
L R és L D ekvivalenciája Definíció: Általánosított nemdeterminisztikus véges automata (ánva) N = (Q, , , q kezdő, q vég ) ahol: 1.Q, egy véges halmaz az állapotok halmaza 2. egy véges halmaz, az abc 3. : (Q - q vég ) (Q - q kezdő ) R az állapotátmenet fv, ahol R a feletti reguláris kifejezések halmaza 4.q kezdő Q a kezdeti állapot 5.q vég Q a végállapot
L R és L D ekvivalenciája Definíció: Felismert (elfogadott) jelsorozat N=(Q, , , q kezdő, q vég ) egy ánva. N felismeri a w * sorozatot, ha w = w 1 w 2... w k ahol w i * i = 1,...n, és r 0 r 1... r k Q-beli állapotok sorozata, hogy: 1.r 0 = q kezdő 2.r k = q vég 3.w i L(R i ), ahol R i = (r i-1,r i ) i = 1,...k Definíció: N ánva felismeri az A nyelvet, ha A = w N felismeri w-t .
L R és L D ekvivalenciája A bizonyítás során megkonstruálandó ánva-kat a következő séma szerint használjuk: M a kiindulási k állapotú dva A k+2 egy M-mel ekvivalens, k+2 állapotú ánva A k+1 egy A k+2 -mel ekvivalens, k+1 állapotú ánva... A 2 egy A m -mal ekvivalens, k+1 állapotú ánva az A 2 egyetlen élén szereplő reguláris kifejezés amit kerestünk
L R és L D ekvivalenciája Bizonyítás: Megmutatjuk, hogy L D L R is igaz. 1.M = (Q, , , q 0, F) a kiindulási k állapotú dva. A k+2 egy M- mel ekvivalens, k+2 állapotú ánva, melyet úgy kapunk, hogy: hozzáadunk Q–hoz egyetlen új q vég állapotot, melybe minden F-beli állapotból címkéjű él vezet, hozzáadunk Q–hoz egyetlen új q kezdő állapotot, melyből q 0 -ba címkéjű él vezet, a többszörös éleket egy újjal helyettesítjük, melyre a kihagyott éleken szereplő szimbólumok unióját írjuk címkeként
L R és L D ekvivalenciája 2.Ezután az alábbi KONVERTÁL rekurzív eljárást A k+2 –ra alkalmazva, előállítunk egy reguláris kifejezést. KONVERTÁL(G) 1.Legyen k G állapotainak a száma. 2.Ha k =2, visszaadjuk a G egyetlen élén szereplő reguláris kifejezést. 3.Ha k >2, legyen q’ Q – q kezdő, q vég tetszőleges. Legyen: G’ =(Q’, , ’, q kezdő, q vég ), ahol Q’ = Q – q’ és ’(q i, q j ) = (R 1 ) (R 2 )* (R 3 ) (R 4 ), ahol: R 1 = (q i, q’) R 2 = (q’, q’) R 3 = (q’, q j ) R 4 = (q i, q j ) 4.Adjuk vissza KONVERTÁL(G’)-t.
L R és L D ekvivalenciája 2.Megmutatjuk, hogy KONVERTÁL(G) ekvivalens G-vel. k = |Q | szerinti teljes indukciót használunk. 1.k =2-ra igaz. 2.Indukciós feltevés: Igaz k -1 állapotú ánva esetén. 3.Megmutatjuk, hogy igaz k állapotú ánva esetén is. Ehhez megmutatjuk, hogy L(G) = L(G’) a) L(G) L(G’) Legyen w L(G), és q kezdő, q 1, q 2,... q vég felismerő állapotok sorozata. Ha q’ nem szerepel, akkor ez a sorozat Q’-beli is, így w L(G’).
L R és L D ekvivalenciája Ha..., q i, q’,... q’, q j,... szerepel, akkor w =..., w i, w 1 ’,... w s ’, w j,... és w i (q i,q’) = R 1, w t ’ (q’, q’) = R 2, t =1,...s, w j (q’, q i ) = R 3 Tehát..., q i, q j,... sorozat elfogadó állapotok sorozata Q’-ben, mert ’(q i, q j ) = (R 1 )(R 2 )*(R 3 ) (R 4 ), így w L(G). b) L(G) L(G’) Legyen w L(G’), és q kezdő, q 1, q 2,... q vég egy felismerő állapotátmenet sorozat. A fentihez hasonló meggondolással látható, hogy w L(G) is.
L R és L D ekvivalenciája Mivel: KONVERTÁL(G’) ekvivalens G-vel, az indukciós feltevés miatt, és L(G) = L(G’), ezért KONVERTÁL(G) ekvivalens G-vel.
Véges átalakítók véges sok bemenő jel a bemeneti szalagról véges sok állapot véges sok kimenő jel a kimeneti szalagra
Véges átalakítók q1q1 q2q2 a/ b/b a/a q3q3 b/ b/b a/a aaaabbaba ababa aba aaaaa a
Véges átalakítók Definíció: Véges átalakító (fordító) M = (Q, , , , q 0 ) ahol: 1.Q, egy véges halmaz az állapotok halmaza 2. egy véges halmaz, a bemeneti abc 3. egy véges halmaz, a kimeneti abc 4. : Q Q az állapotátmenet függvény 5.q 0 Q a kezdeti állapot
Miről volt szó eddig? formális nyelv fogalma műveletek formális nyelvekkel reguláris nyelvek determinisztikus véges automata nemdeterminisztikus va dva, ndva által felismert nyelv L N = L D L R = L D véges fordítók