4 Automty gmtiky omn Bták, KTIML tk@ktiml.mff.cuni.cz htt://ktiml.mff.cuni.cz/~tk Po řiomenutí Automt může tké ovládt čtecí hlvu dvousměný (dvoucestný) utomt řechodová funkce: Q X Q {-,,+} Slovo w je řijto dvousměným konečným utomtem, okud: výočet zčl n vním ísmenu slov w vlevo v očátečním stvu čtecí hlv ové oustil slovo w vvo v někteém řijímcím stvu mimo čtené slovo není výočet definován (výočet zde končí w slovo není řijto) F Vět o dvousměných utomtech Jzyky řijímné dvousměnými konečnými utomty jsou ávě jzyky řijímné konečnými utomty. Možnost ohyovt čtecí hlvou o ásce nezvětšil sílu konečného utomtu! Pozo, n ásku nic neíšeme! Pokud můžeme n ásku sát, dostneme Tuingův stoj. Zřejmé: konečný utomt dvousměný konečný utomt dvousměný utomt vždy osouvá hlvu dov KA A=(Q,X,δ,,F) 2KA B=(Q,X,δ,,F), δ (,x)=(δ(,x),+) Zývá: dvousměný konečný utomt konečný utomt Důkz věty o dvousměných utomtech () u v ) Fomální ois vlivu slov u n výočet nd slovem v (i) kdy ové oustíme slovo u vvo (v jkém stvu ové vstouíme nd v) f( ) = ové řejdeme n v ve stvu f( ) = nikdy neoustíme u vvo (ii) okud oustíme slovo v vlevo, kdy se nd v oět vátíme f() = vátíme se nd v ve stvu f() = nikdy už se nevátíme 2) Výočet nd u máme osný funkcí f u f u : Q { } Q {} f u ( ) oisuje situci (i): v jkém stvu ové odejdeme vvo, okud zčneme výočet vlevo v očátečním stvu f u () ( Q) oisuje situci (ii): v jkém stvu oět odejdeme vvo, okud zčneme výočet vvo v symol znčí, že dná situce nenstne (odejdeme vlevo neo cyklus) u u v v 4-
Důkz věty o dvousměných utomtech (2) Po kždé slovo u máme funkci f u oisující výočet dvousměného utomtu A nd u Definujme ekvivlenci slov tkto: u~w def f u =f w tj. slov jsou ekvivlentní, okud mjí stejné výočtové funkce Vlstnosti ~: je to ekvivlence (zřejmé, definováno omocí =) má konečný index (mximální očet ůzných funkcí je (n+) n+ o n-stvový dvousměný utomt) je to vá konguence (zřejmě u~w uv~wv, otože ozhní u v w v je stejné nd v se utomt chová stejně) L(A) je sjednocením jistých tříd ozkldu X*/~ stčí si uvědomit, že w L(A) f w ( ) F u~w f u ( )=f w ( ) (u L(A) w L(A)) Podle Neodovy věty je L(A) egulání jzyk. Převod 2KA n NKA Konstuktivní důkz věty o dvousměných utomtech. Jk výočet s návty řevést n lineání výočet? zjímjí nás jen řijímcí výočty díváme se n řechody mezi symoly (v jkém stvu se řechází n dlší olíčko). Njdeme všechny možné řezy - oslounosti stvů (je jich konečně mnoho). 2. Mezi řezy definujeme (nedeteministické) řechody odle čteného symolu. 3. ekonstuujeme výočet skládáním řezů (jko uzzle). Pozoování: stvy se v řechodu (řezu) střídjí (dov/ dolev) vní stv jde dov, oslední tké dov v deteministických řijímjících výočtech nejsou cykly vní oslední řez oshují jediný stv Fomální řevod 2KA n NKA Nechť A=(Q,X,δ,,F) je dvousměný konečný utomt. Definujme ekvivlentní nedeteministický konečný utomt B=(Q,X,δ,( ),F ), kde: Q = všechny koektní řechodové oslounosti oslounosti stvů (,, k ) z Q tkové, že délk oslounosti je lichá (k=2m+) žádný stv se neokuje n liché ni n sudé ozici ( i j 2i 2j ) ( i j 2i+ 2j+ ) F = {() F} řechodové oslounosti délky oshující koncový stv δ (c,x) = { d d Q c d je lokálně konzistentní řechod o x} x L(A)=L(B)? tjektoie 2KA A odovídá řezům KA B c d Příkld řevodu 2KA n NKA Mějme následující dvousměný konečný utomt:,+,+,+,-,+,- Ukázk výočtu:.. Možné řezy jejich konzistentní řechody: Výsledný nedeteministický KA:,,,,,, 4-2
Množinové oece nd jzyky Sjednocení jzyků L L 2 = { w w L w L 2 } Příkld: jzyk oshuje slov zčínjící neo končící Půnik jzyků L L 2 = { w w L w L 2 } Příkld: jzyk oshuje slov se sudým očtem nul kždý symol je ezostředně následován ozdíl jzyků L - L 2 = { w w L w L 2 } Příkld: jzyk oshuje slov zčínjící neoshující Dolněk jzyk -L = { w w L } = X*- L Příkld: slov jzyk neoshují oslounost tří symolů Pltí tdiční de Mognov vidl L L 2 = -(-L -L 2 ) L L 2 = -(-L -L 2 ) L - L 2 = L -L 2 L L 2 X* Uzvřenost n množinové oece Nechť L L 2 jsou jzyky ozoznávné konečnými utomty. Potom L L 2, L L 2, L - L 2 -L jsou tké jzyky ozoznávné konečnými utomty (tříd F je uzvřen n uvedené oece). Konstuktivní důkz: dolněk stčí ohodit koncové nekoncové stvy řijímjícího det. utomtu sjednocení, ůnik ozdíl ide: lelní ěh řijímjících utomtů A = (Q,X,δ,,F ), A 2 = (Q 2,X,δ 2, 2,F 2 ) uděláme sojený utomt A = (Q,X,δ,,F) Q = Q Q 2, = (, 2 ) δ((, 2 ),x) = (δ (,x), δ 2 ( 2,x)) sjednocení F = (F Q 2 ) (Q F 2 ) ůnik F = F F 2 ozdíl F = F (Q 2 - F 2 ) Množinové oece v říkldě Nvhněte konečný utomt řijímjící slov, kteá oshují 3k+2 symolů neoshují oslounost. Přímá konstukce komlikovná! L = {w w {,}* w = 3k+2} L 2 = {w u,v {,}* w = uv} L = L - L 2 A B C c A A Ac, B B Bc C C Cc K čemu to je? Můžeme oece s utomty někde římo využít? Nříkld v lánování, kde utomt oisuje, jk se mění hodnot nějké stvové oměnné. loc lod, unlod loc move-2 move2- lod2, unlod2 move-2, move2- lod Plán se otom může hledt jko ůnik utomtů. V kždém stvovém digmu se ovede stejná oslounost kcí. cos loc loc cos loc loc move-2, move2- lod2 move&2 move&2 move-2, move2- lod2 lod2 move2& move2& unlod unlod 4-3
Řetězcové oece nd jzyky Zřetězení jzyků L. L 2 = { uv u L v L 2 } Mocniny jzyk L = {λ} L i+ = L i. L Pozitivní itece L + = L L 2 = i Li Oecná itece L* = L L = i Li zřejmě L* = L + {λ} Otočení jzyk L = { u u L } evese, zcdlový oz (x x 2 x n ) = x n x 2 x Levý kvocient L odle L 2 L 2 \ L = { v uv L u L 2 } Levá deivce L odle w w L = {w} \ L Pvý kvocient L odle L 2 L / L 2 = { u uv L v L 2 } Pvá deivce L odle w w L = L / {w} Uzvřenost zřetězení L,L 2 F L.L 2 F L L 2 ide: nejve očítá utomt A =(Q,X,δ,,F ) otom A 2 =(Q 2,X,δ 2, 2,F 2 ) elizce: omocí nedeteministického konečného utomtu B =(Q,X,δ,S,F) nedeteminismus slouží ři ozhodování kdy řenout do A 2 Q = Q Q 2 (ředokládáme ůzná jmén stvů, jink řejmenuj) S = { } okud λ L ( F ) = {, 2 } okud λ L ( F ), tj. ovnou řejdeme tké do A 2 F = F 2 končíme ž o řečtení slov z L 2 δ(,x) = {δ (,x)} okud Q δ (,x) F (očítáme v A ) = {δ (,x), 2 } okud Q δ (,x) F (řechod A do A 2 ) = {δ 2 (,x)} okud Q 2 (očítáme v A 2 ) DCV: ověřit L(B) = L(A ). L(A 2 ) Uzvřenost itece Uzvřenost evese L F L* F u L u 2 L u 3 L L F L F L ide: okovný výočet utomtu A=(Q,X,δ,,F) elizce: nedeteministické ozhodnutí, zd okčovt neo estt ozo! λ L* i když λ L, řešíme omocí seciálního stvu hledáme nedeteministický utomt B =(Q,X,δ,S,F ) Q = Q {s} řidáme nový stv o říjem λ S = {, s} nový stv F = F {s} končíme o řečtení slov z L neo v s (o λ) δ (,x) = {δ(,x)} okud Q δ(,x) F (očítáme uvnitř A) = {δ(,x), } okud Q δ(,x) F (možný estt) δ (s,x) = {} žádné řechody z nového stvu L F L + F stejná konstukce, ouze ez oužití stvu s zřejmě (L ) = L, tedy stčí ukázt L F L F ide: oátíme šiky ve stvovém digmu elizce: nedeteministický konečný utomt A=(Q,X,δ,,F) B=(Q,X,δ,F,{ }) δ (,x) = { δ(,x)= } (δ(,x)= δ (,x) ) w = x x 2 x n,, n je řijímjící výočet o w utomtu A tj. δ( i,x i+ )= i+ n F n, n-, je řijímjící výočet o w utomtu B i δ ( i+,x i+ ) Poznámk: někdy L neo L má význě jednodušší řijímjící utomt 4-4
Uzvřenost kvocientu L,L 2 F L 2 \ L F ide: utomt A udeme sttovt ve stvech, do kteých se lze dostt slovem z L 2 elizce: nedeteministický utomt B téměř totožný s A (ozdíl ve sttovních stvech) S = { Q u L 2 =δ (,u)} nové sttovní stvy lze nlézt lgoitmicky (A =(Q,X,δ,,{}), k S L(A ) L 2 ) v L 2 \ L u L 2 uv L u L 2 Q δ (,u)= δ (,v) F S δ (,v) F v L(B) L,L 2 F L / L 2 F odoně neo omocí L / L 2 = (L 2 \ L ) L 2 L Příkldy řetězcových oecí L = { i, i } L.L = { i j, i, j },,,, L + = { i i 2... i n, n>, i j } L* = {λ} L +,,,, Příkld kvocientu Sustituce jzyků L = { i i 2 i 3, i j }, L 2 = { i i 2, i j }, nechť X je konečná eced o kždé x X udiž σ(x) jzyk v nějké ecedě Y x dále oložme: σ(λ) = {λ} σ(u.v) = σ(u). σ(v) zození σ: X* P(Y*), kde Y = Y x X x se nzývá sustituce σ(l) = w L σ(w) nevyouštějící sustituce, žádné σ(x) neoshuje λ L 2 \ L = { i i 2, i j } = L 2 Příkld: σ() = { i j, i,j }, σ() = {cd } σ() = { i j cd k l, i,j,k,l } homomofismus h: h(x) = w x (seciální říd sustituce) nevyouštějící homomofismus: w x λ, Vět: L F, x X σ(x) F h - (L) = {w h(w) L} σ(l), h(l), h - (L) F 4-5
Poznámky k uzávěovým vlstnostem Zjednodušení návhu utomtů L. =.L = {λ}.l = L.{λ} = L (L*)* = L* (L L 2 )* = L *(L 2.L *)* = L 2 *(L.L 2 *)* (L.L 2 ) = L 2. L w (L L 2 ) = w L w L 2 w (X* - L) = X* - w L h(l L 2 ) = h(l ) h(l 2 ) Důkz egulánosti L = {w w {,}*, w = w } není egulání L { i j, i,j } = { i i, i } 4-6