Formális nyelvek és utomták 4. elődás Determinisztikus véges utomták dr. Kllós Gáor 2017 2018
Formális nyelvek és utomták Trtlom Determinisztikus véges utomták Meghtározás, működés Átmeneti reláció (ismételt is), számítási sorozt Szvk elfogdás, felismert nyelv Automták megdás 2
Formális nyelvek és utomták Determinisztikus véges utomt Bevezetés Célunk: lgoritmusok és szg-ek mtemtiki modelljének vizsgált Egyre erőse számítási kpcitású modelleket fogunk megismerni Először csk: véges (elf-ó) utomt Egyszerű mtemtiki gépmodell, utomtizáltn működik Vn CPU-j (véges), inputot kp, Y/N típusú válszt d Nincs memóriáj (mondhtjuk: erősen korlátozott memóriáj vn) Bizonyos típusú nyelveket fog tudni elfogdni/felismerni Ez egy nyelvfelismerő eszköz (lnguge recognition device) Bár szerény, de mégis igen hsznos ez z eszköz! Pl. fordítóprogrm részeként 3
Formális nyelvek és utomták Determinisztikus véges utomt Felépítés Input szlg Feldolgozndó sztring Vezérlő Belső állpotokkl (egyértelmű zonosítók!) Kezdőállpot, végállpotok Átmenetek Minden időpillntn egyértelmű állpotn! Olvsófej A szlgon lépked, egyesével Nincs külön memóri A működés végén megállás (válsz) Reding hed Az utomt véges, mert véges hlmzokkl leírhtó! Input tpe q 2 c q 3 sttes q 1 q 0 Accept / Reject Control unit 4
Formális nyelvek és utomták Determinisztikus véges utomt Vázltos működés Kezdeten Vezérlő: kezdőállpotól indul Olvsófej: z input szlg l szélén, krkter olvsás (Feldolgozndó sztring első eleme) Toválépés Új első állpot: Csk z ktuális állpottól és (most) eolvsott jeltől függ, egyértelmű (determinisztikus)! (Lásd: δ(p, ) = q, köv. oldlk) (NDA: késő tnuljuk) Fej: szlgon eggyel jor Megállás (válsz) Szó végigolvsv (nálunk mindig! z ut. teljesen definiált), és elfogdv (végállpotn) vgy visszutsítv (egyéként) A működéshez külső evtkozás nem szükséges! 5
Formális nyelvek és utomták Determinisztikus véges utomt Definíció (DVA) Determinisztikus véges utomt (DVA, véges elfogdó utomt) (deterministic finite utomton, determ. finite stte recognizer; DFA, DFSR): M = (K, Σ, δ, s, F) rendszer egy rendezett ötös, hol: K z állpotok hlmz (véges, nem üres) Σ áécé (input) δ z átmeneti függvény (mozgási szályok hlmz), K Σ K (minden K Σ-eli párr definiált esetleg cspdáll.) s K, kezdőállpot (initil stte) F K, végállpotok (elfogdó állpotok, finl sttes) hlmz Megjegyzések Az áll.hlmzr K helyett Q jelölés is hsználtos (hsonló: s helyett q 0 ) Az ötös esetleg más sorrenden is megdhtó, ill. írhtó M(K, Σ, δ, s, F) A teljesen definiáltságot nem minden szerző követeli meg! (ekkor: prciális utomták, lásd: F. Z., B. I., A. P.) Az utomtát Rin Scott-féle ut.nk is nevezzük (ált. nemdet., ld. késő) 6
Formális nyelvek és utomták Determinisztikus véges utomt Reprezentáció Irányított gráf, kiegészítő infóvl (állpotdigrm; stte digrm) A csúcsok z állpotok Kezdőállpot: nyílll vgy kettős nyílll megjelölve Végállpotok: dupl körök Az élek (irányítv) z átmenetek, címkék: olvsott etű Minden csúcs kimenő fok Σ (teljesen def. eset) Nyelő (cspdállpot; ded stte): csúcs, csk reflexív kimenő élekkel Az áráról leolvshtók: K, Σ, δ, s, F Áltlán ez megdás legcélszerű p p, q q stte initil stte finl stte δ (p, )=q p q 7
Formális nyelvek és utomták Determinisztikus véges utomt Reprezentáció A DVA megdhtó tálázttl és csk szöveges leírássl is Ezekől z állpotdigrm megrjzolhtó Előny: méretfüggetlenség, skálázhtó Hátrány: z emer inká vizuális Tálázt (péld) M = (K, Σ, δ, s, F), hol K = {q 0, q 1 }, Σ = {, }, δ tálázttl dott s = q 0, F = {q 1 } Állpotdigrm eől Szöveges leírás Mint z elő, csk itt nincs tálázt, és δ elemeit is szövegesen megdjuk Péld: δ, ) = q 1, δ, ) = q 0 st. q 0 q 1 8
Formális nyelvek és utomták Determinisztikus véges utomt Működés nyomon követése Rjzolhtunk (lásd köv. oldlk) ill. hsználhtó pl. pénzérme vgy szimulátor progrm Pl. JFLAP vgy Butterfly projekt (Várlji F.) 9
Formális nyelvek és utomták Determinisztikus véges utomt Definíció (konfiguráció) A konfiguráció tdk. egy pillntfelvétel z utomt működéséről Def.: Egy M = (K, Σ, δ, s, F) DVA konfigurációj egy rendezett pár, mely M ktuális állpotáól és z input még nem eolvsott részéől áll A konfiguráció tehát K Σ* egy eleme A teljes inputot nem kell tárolni, már feldolgozott rész nem efolyásolj jövőt (hiszen z utomt nem léphet vissz z inputon) csk z ktuális állpotig vezetett minket Konfiguráció péld: (q 5, ) Konfigurációk soroztávl mutthtó e z, hogy hogyn dolgozz fel z utomt z inputot (Lásd még: átmeneti reláció) 10
Formális nyelvek és utomták Determinisztikus véges utomt Péld (konfiguráció) Péld utomtánk áltl elfogdott nyelv: L = {w -k szám w-en pártln} Állpotok q 0 -k szám (eddig) páros q 1 -k szám (eddig) pártln H w =, kkor érvényes konfigurációk-e következők?, ) (N), ) (Y) (q 1, ) (N) (q 1, ) (Y) (q 2, ) (N) q 0 q 1 current stte input Reding hed Configurtion of DFA:, ) 11
Formális nyelvek és utomták Determinisztikus véges utomt Definíció (átmeneti reláció, egy lépésen történő előállítás) Átmeneti reláció, w M : Két szomszédos konfiguráció között értelmezett (ináris reláció), h z utomt át tud menni z elsőől második egy direkt mozgássl Formálisn H Σ, w Σ*, q, p K, δ(q, ) = p, Akkor ((q, w), (p, w)) w vgy (q, w) w(p, w) Ekkor zt mondjuk, hogy (q, w) előállítj (p, w)-t egy lépésen (yield in one step) Azz két konfiguráció között létezik megfelelő átmenet Emellettw M egy függvény, melyre K Σ + K Σ* Az É.T- nincs elevéve: (q, e) H nyilvánvló, hogy melyik DVA-ról vn szó, kkor z M jelzés elhgyhtó w mellől 12
Formális nyelvek és utomták Determinisztikus véges utomt Péld (átmeneti reláció, egy lépésen történő előállítás) Péld konfiguráció-átmenet A péld szerint lehetségesek-e következő egy lépésen történő előállítások?, ) w (q 1, ), ) w (q 1, ), ) w, ), ) w, ) (N) (Y) (N) (Y) input Reding hed q 0 q 1 q 0 q 1 current stte current stte Yield in one step:, ) - (q 1, ) 13
Formális nyelvek és utomták Determinisztikus véges utomt Definíció (számítási sorozt) Számítási sorozt (M det. véges utomtávl): C 0, C 1,... C n konfiguráció-sorozt, melyre C 0 w C 1 w... w C n Péld: (q 1, ) w (q 2, ) w (q 1, ) w (q 3, ) A számítási sorozt hossz z egy lépésen történő előállítások szám (n) A példán: 3 Az első és utolsó konfiguráció összeköthető z n lépésen történő előállítás relációvl, ennek jele w n A példán: (q 1, ) w 3 (q 3, ) Kérdés: (Az ár szerint) Érvényes számítási sorozt-e következő?, ) w, ) w (q 1, ) w (q 1, ) w (q 1, ) (Y) (Y) (Y) (N) input Reding hed q 0 q 1 q 0 q 1 current stte Yield in one step:, ) - (q 1, ) current stte 14
Formális nyelvek és utomták Determinisztikus véges utomt Definíció (ismételt átmeneti reláció, vlhány lépésen történő előállítás) Ismételt átmeneti reláció, w M *: Az w M reláció reflexív, trnzitív lezártj; Ekkor (q, w) konf.ól vlhány lépésen elérhető (q', w'), Jelölés: (q, w) w M * (q', w') vgy ((q, w), (q', w')) w M * Esetleg null lépés is lehet Ekkor nyilván (q', w') = (q, w) Vlhány lépésen történő előállítás (előállítás; yield): A (q, w) konfigurációól egy lépésen történő előállítások ismétlésével eljutunk (q', w')-e (vlhány lépésen) Azz: (q, w) konfiguráció előállítj (q', w')-t Itt is lehet null lépés H nyilvánvló, hogy melyik DVA-ról vn szó, kkor z M jelzés elhgyhtó w*-ól 15
Formális nyelvek és utomták Determinisztikus véges utomt Péld (ismételt átmeneti reláció, vlhány lépésen történő előállítás) A péld szerint lehetségesek-e következő vlhány lépésen történő előállítások (yield)?, ) w* (q 1, ), ) w 3 (q 1, ), ) w* (q 1, ), ) w 5 (q 1, ) (Y) (Y) (N) (N) input Reding hed q 0 current stte q 1 q 0 q 1 current stte Yield:, ) -*, ) 16
Formális nyelvek és utomták Determinisztikus véges utomt Definíció (elfogdott szó) A DVA áltl elfogdott szó (ccepted string, word): M pontosn kkor fogdj el w Σ* szót, h tlálhtó olyn q F, mire (s, w) w M * (q, e) Itt s kezdőállpot, q elfogdó állpot, w teljes input Másként: H egy elfogdó konfiguráció jutunk z (s, w) kezdő konfigurációól ismételt átmeneti relációvl Vgy: A kezdő konf.ól eljutunk egy elfogdó vlhány lépésen történő előállítássl Péld: elfogdott szó input Reding hed q 0 q 1 q 0 q 1 current stte current stte, ) (q 1, e) 17
Formális nyelvek és utomták Determinisztikus véges utomt Péld (elfogdott szó) A péld szerint elfogdott szvk-e következők? (Y) (N) (Y) (Y) (N) input Reding hed q 0 q 1 q 0 q 1 current stte current stte, ) (q 1, e) 18
Formális nyelvek és utomták Determinisztikus véges utomt Definíció (elfogdott nyelv) A DVA áltl elfogdott/felismert nyelv (ccepted lnguge): Azon szvk hlmz, melyeket M felismer; jelölés L(M) Formálisn: L(M) = {w Σ* (s, w) w M * (q, e), q F} A w L(M)? kérdés eldöntéséhez szükséges lépések szám: w Minden lépésen egy szimólumot dolgozunk fel A szó mindig végigolvsásr kerül Péld L(M) = {w G* # pártln} q 0 q 1 19
Formális nyelvek és utomták Determinisztikus véges utomt Péld (szvk elfogdás) Mutssuk e és z szvk feldolgozását (jó eseten: z elfogdáshoz vezető számítási lépéseket) z előző M utomtávl! Eml.: L(M) = {w G* # pártln} A feldolgozás lépései (konf. átmenetek), ) w M, ), ) w M (q 1, ) w M, ) w M, ) w M (q 1, ) w M, ) w M (q 1, ) w M (q 1, ) w M, ) w M, ) w M (q 1, e) w M, e) Elfogdv Visszutsítv Mindkét eseten 6 lépésen megkptuk válszt q 0 q 1 20
Formális nyelvek és utomták Determinisztikus véges utomt Péld (DVA megdás) Adjunk meg olyn M DVA-t, mi z lái nyelvet ismeri fel: L(M) = {w G* w-en szerepel z szó} Megoldás Állpotok (fontos, hogy z állpotoknk djunk jelentést!): q 0 : M eddig 0 krktert olvsott -ól, kezdőáll., q 1 : M pontosn 1 krktert olvsott -ól, q 2 : M pontosn 2 krktert olvsott -ól, q 3 : M végigolvst z részszót, ez elfogdó állpot (de jöhet még input) Átmenetek értelemszerűen q 0 q 1 q 2 q 3, 21
Formális nyelvek és utomták Determinisztikus véges utomt Péld (DVA megdás) Adjunk meg olyn M DVA-t, mi z lái nyelvet ismeri fel: L(M) = {w G* w-en # = 3} Megoldás Állpotok ( jelentésre most is figyeljünk!): q 0 : # = 0, kezdőáll., q 1 : # = 1, q 2 : # = 2, q 3 : # = 3, ez végállpot q 4 : # 4(továi szvk; ez nem elfogdó állpot) Átmenetek értelemszerűen Egyszerű módosítássl sok hsonló feldt megoldhtó 22
Formális nyelvek és utomták Determinisztikus véges utomt Péld (DVA megdás) Adjunk meg olyn M DVA-t, mi z lái nyelvet ismeri fel: L(M) = {w G* w-en -k szám páros, és # 1} Megoldás Állpotok: q 0,0 : -k szám páros (0, 2, 4, ), még nem volt (elfogdó állpot), q 1,0 : -k szám pártln (1, 3, ), még nem volt, q 1,1 : -k szám pártln, egy volt, q 0,1 : -k szám páros, egy volt (elfogdó állpot), q 0,2 : -k szám páros, egynél tö volt q 0,0 q 0,1 q 1,2 : -k szám pártln, egynél tö volt Átmenetek értelemszerűen q 0,2 q 1,0 q 1,1 q 1,2 23
Formális nyelvek és utomták Determinisztikus véges utomt Péld (DVA megdás) Eml.: L(M) = {w G* w-en -k szám páros, és # 1}-hez DVA megdás (folyt.): Másik ekvivlens utomt is készíthető (Állpotok összevonás) q 0,0 q 0,1 q 0,2 q 1,0 q 1,1 q 1,2 q 0,0 q 0,1 q 01,2, q 1,0 q 1,1 24
Formális nyelvek és utomták Ajánlott irodlom Hrry R. Lewis, Christos H. Ppdimitriou: Elements of the Theory of Computtion (2 nd ed.), Prentice-Hll, Upper Sddle River, 1998 Fülöp Zoltán: Formális nyelvek és szintktikus elemzésük, Polygon, Szeged, 2001 Dömösi Pál és társi: Formális nyelvek és utomták, Elektronikus jegyzet, 2011 Bch Iván: Formális nyelvek, Typotex kidó, Budpest, 2002 Aln P. Prkes: A Concise Introduction to Lnguges nd Mchines, Springer, London, 2008 25