3 Automty grmtiky Romn Brták, KTIML rtk@ktimlmffcunicz http://ktimlmffcunicz/~rtk Pro připomenutí 2 Njít ekvivlentní stvy w X* δ*(p,w) F δ*(q,w) F Vyřdit nedosžitelné stvy 3 Sestrojit podílový utomt Automty grmtiky, Romn Brták Vět o isomorfismu reduktů Pro liovolné dv redukovné konečné utomty jsou následující dvě tvrzení ekvivlentní: ) utomty jsou ekvivlentní, ) utomty jsou isomorfní Důsledky: Dv redukty liovolných dvou ekvivlentních konečných utomtů se shodují ž n isomorfismus Pro kždý konečný utomt je jeho redukt určen ž n isomorfismus jednoznčně Ve třídě nvzájem ekvivlentních konečných utomtů existuje minimální utomt Automty grmtiky, Romn Brták Důkz věty o isomorfismu reduktů ) isomorfismus ekvivlence (víme) ) ekvivlence reduktů isomorfismus hledáme homomorfismus h:q Q 2, který je prostý n tj pro kždé q Q hledáme právě jedno p Q 2 q je dosžitelný stv, tudíž u X* δ (q,u)=q položme h(q) = δ 2 (q 2,u) je to skutečně funkce? δ (q,u)=δ (q,v) δ 2 (q 2,u)=δ 2 (q 2,v) (*) sporem, nechť δ (q,u)=δ (q,v) & δ 2 (q 2,u) δ 2 (q 2,v) z A víme w X* uw L vw L w w w p p 2 utomty jsou ekvivlentní, tedy p ~p 2 u v u v spor - utomt A 2 je redukovný q q 2 funkce h je prostá n (vlstnost (*) ) h(q )=q 2 (pro u=λ) h(δ (q,x)) = δ 2 (h(q),x) (δ (q,v)=q, u=vx) q F h(q) F 2 (pro u L + ekvivlentní utomty) Automty grmtiky, Romn Brták 3-
Normlizce utomtu Jk njít isomorfismus utomtů? Normovný tvr utomtu ) fixujme pořdí písmen v ecedě 2) počáteční stv oznčme 3) tulku (utomtu) vyplňujme po řádcích zlev doprv pokud nrzíme n nový stv, přiřdíme mu první volné číslo Poznámky k redukci ekvivlenci Algoritmicky umíme řešit: zjištění ekvivlence utomtů zredukujeme, znormlizujeme porovnáme zjištění zd L(A)= žádný koncový stv není dosžitelný zjištění zd L(A)=X* po redukci dostneme jednostvový utomt (s koncovým stvem) Příkld: A B A B D C C A D D A B (B) 2 3 2(D) 4 3(C) 4 2 4(A) 4 Umíme njít nejkrtší slovo rozlišující dv stvy p~ i q & p~ i+ q X δ(p, ) ~ i- δ(q, ) & δ(p, ) ~ i δ(q, ) itercí njdeme slovo i+ Automty grmtiky, Romn Brták Automty grmtiky, Romn Brták Slovo odlišující dv stvy Trochu motivce R R R 2 A A A A A B A c A C A B C A B c c e C C C C C E C d e d A C A B E B D e e d C C A E E B E Jk je dlouhé nejkrtší slovo rozlišující stvy d? A jké je to slovo? neo 2 znky Dosud: Stv písmeno jednoznčně určuje dlší stv! Příkld: L = { w w=u w=uv w=u, u,v {,}* },, Automty grmtiky, Romn Brták Automty grmtiky, Romn Brták 3-2
Úvod do nedeterminismu Stv písmeno určuje množinu možných dlších stvů! Příkld: L = { w w=u w=uv w=u, u,v {,}* },,,, Nedeterministický konečný utomt Nedeterministickým konečným utomtem nzýváme pětici A = (Q,X,δ,S,F), kde: Q - konečná neprázdná množin stvů (stvový prostor) X - konečná neprázdná množin symolů (vstupní eced) δ - zorzení Q X P(Q) (přechodová funkce) S Q (množin počátečních stvů) F Q (množin přijímcích stvů) Reprezentce: stvový digrm, tulk, stvový strom Automty grmtiky, Romn Brták Automty grmtiky, Romn Brták Jk se počítá s nedeterminismem? Slovo w = x x n je přijímáno nedeterministickým konečným utomtem, jestliže existuje posloupnost stvů q,,q n+ tková, že: q S, q i+ δ(q i, x i ) pro i= n, q n+ F Prázdné slovo je přijímáno právě když S F Přijímjících výpočtů pro dné slovo může ýt více! Př,,,, Automty grmtiky, Romn Brták Determinismus vs nedeterminismus Konečný utomt je speciálním přípdem nedeterministického konečného utomtu! Důsledek: Jzyky rozpoznávné konečnými utomty jsou rozpoznávné nedeterministickými konečnými utomty Pltí i orácené tvrzení? Zkusme to! potřeujeme postupovt systemticky s konečnou pmětí pomocí znček n stvech simulujeme všechny možné výpočty tzv podmnožinová konstrukce Př,,,, Automty grmtiky, Romn Brták 3-3
Převod nedeterminismu n determinismus Ukázk převodu Vět: Je-li A nedeterministický konečný utomt, potom lze sestrojit konečný utomt B tkový, že L(A)=L(B) Důkz: (podmnožinová konstrukce) nechť A = (Q,X,δ,S,F) potom definujme B = (P(Q),X,δ,S,F ), kde F = { K K P(Q), K F } δ (K,x) = q K δ(q,x) ) B je definován korektně 2) L(A)=L(B)? λ L(A) S F S F λ L(B) L(A) L(B) w= x x n L(A) q,,q n+ Q q S, q i+ δ(q i, x i ), q n+ F položme K =S (q K ), K i+ = δ (K i,x i ) (q i+ K i+ ), potom K n+ F L(B) L(A) w= x x n L(B) K,,K n+ P(Q) K =S, K i+ =δ (K i, x i ), K n+ F vezměme q n+ F K n+, q i K i tž q i+ δ(q i,x i ),, q K =S,2 4 2 4 3 3 4 4,4 4 2 3 4, {,2} {,2,4} {3,4} {,2,4} {,2,4} {3,4} {3,4} {,4} {4} {,4} {,2,4} {4} {4} {,4} {4},2,4,4,2 3,4 4 Automty grmtiky, Romn Brták Automty grmtiky, Romn Brták Poznámky k nedeterminismu Význm: teoretický (npř při převodu grmtik n utomty) prktický (zjednodušení návrhu utomtu) U konečných utomtů vede nedeterminismus ke stejné třídě jzyků jko determinismus nepltí oecně (zásoníkové utomty)! Převod n determinismus znmená (ž) exponenciální nárůst počtu stvů (Q P(Q)) oecně je tento nárůst nezytný! L n = { w w {,}*, w=uv, v =n- } není potře explicitně převádět Existují tké zoecněné nedeterministické utomty λ-přechod: změn stvu ez čtení vstupu Automty grmtiky, Romn Brták λ-přechody Automt může změnit stv ez čtení symolu Hodí se pro zjednodušení popisu utomtu Příkld: rozpoznání čísl s desetinou tečkou s možností vynechání před/z tečkou prefixu +/- λ,+,-,,,9,,,9,,,9,,,9 Odstrnění λ-přechodů převodem n NKA λ-uzávěr(q) = stv q stvy, do kterých se z q dostneme λ-přechody nové počáteční stvy: λ-uzávěr(s) nové hrny: δ (q, x) = λ-uzávěr( δ(q, x) ) +,-,,,9,,,9,,,9,,,9 λ,,,9,,,9 Automty grmtiky, Romn Brták 3-4
Můžeme konečné utomty ještě zoecnit? Konečný utomt provádí následující činnosti: přečte písmeno změní stv vnitřní jednotky posune čtecí hlvu doprv Čtecí hlv se nesmí vrcet! Co když utomtu povolíme ovládání hlvy? Dvousměrné (dvoucestné) konečné utomty Dvousměrným (dvoucestným) konečným utomtem nzýváme pětici A = (Q,X,δ,q,F), kde: Q - konečná neprázdná množin stvů (stvový prostor) X - konečná neprázdná množin symolů (vstupní eced) δ - zorzení Q X Q {-,,+} (přechodová funkce) přechodová funkce určuje i pohy čtecí hlvy q Q (počáteční stv) F Q (množin přijímcích stvů) Pozor! Automt n pásku nic nepíše! Automty grmtiky, Romn Brták Reprezentce: stvový digrm, tulk, stvový strom Automty grmtiky, Romn Brták Počítání s dvousměrnými utomty Kdy dvousměrný utomt přijímá slovo? Co se děje, je-li hlv mimo čtené slovo? Slovo w je přijto dvousměrným konečným utomtem, pokud: výpočet zčl n prvním písmenu slov w vlevo v počátečním stvu čtecí hlv poprvé opustil slovo w vprvo v některém přijímcím stvu mimo čtené slovo není výpočet definován (výpočet zde končí slovo není přijto) q w q F Příkld dvousměrného utomtu Nejprve poznámk: ke slovům si můžeme přidt speciální koncové znky # X je-li L(A)= {#w# w L X*} regulární, potom i L je regulární L = # R # (L(A) #X*#) Příkld: L(B) = {#u# uu L(A)} Pozor! Toto není levý ni prvý kvocient! Nechť A= (Q,X,δ,q,F), definujme dvousměrný konečný utomt B=(Q Q Q {q, q N, q F }), X, δ, q, {q F }) tkto: δ x X # poznámk q q N,- q,+ q je počátek A q p,+ q,- p= δ(q,x) q q,- q,+ q p,+ q F,+ q F, p= δ(q,x) q p,+ q N,+ q F, p= δ(q,x) q N q N,+ q N,+ q F q N,+ q N,+ # q q u # q q q q N q F Automty grmtiky, Romn Brták Automty grmtiky, Romn Brták 3-5