BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 2/3 Konfigurce konečného utomtu BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 4/3 Automty grmtiky(bi-aag) 2. Deterministické nedeterministické konečné utomty Jn Holu Ktedr teoretické informtiky Fkult informčních technologií ČVUT v Prze Necht M = (Q, T, δ, q 0, F ) je konečný utomt. Dvojici (q, w) Q T nzveme konfigurcí konečného utomtu M. Konfigurci (q 0, w) nzveme počáteční konfigurcí konečného utomtu M, konfigurci (q, ε), kde q F, nzveme koncovou konfigurcí konečného utomtu M. Necht M = (Q, T, δ, q 0, F ) je deterministický konečný utomt. Relci M (Q T ) (Q T ) nzveme přechodem v utomtu M. Jestliže δ(q, ) = p, pk (q, w) M (p, w) pro všechn w T. c Jn Holu, 20 Evropský sociální fond. Prh & EU: Investujeme do vší udoucnosti Symolem k M oznčíme k-tou mocninu relce M. Symoly + M M udou oznčovt trnzitivní trnzitivně reflexivní uzávěr relce M. BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. /3 Deterministický konečný utomt BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 3/3 Deterministický konečný utomt Deterministický konečný utomt M je pětice M = (Q, T, δ, q 0, F ), kde Q je konečná množin vnitřních stvů, T je konečná vstupní eced, δ je zorzení z Q T do Q, q 0 Q je počáteční stv, F Q je množin koncových stvů. Řekneme, že řetězec w T je přijt konečným deterministickým utomtem M = (Q, T, δ, q 0, F ), jestliže (q 0, w) M (q, ε) pro nějké q F. L(M) = {w : w T, (q 0, w) (q, ε), q F } je jzyk přijímný konečným utomtem M. Řetězec w L(M), jestliže existuje posloupnost přechodů tková, která z počáteční konfigurce (q 0, w) vede do koncové konfigurce (q, ε).
Konfigurce det. konečného utomtu BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 6/3 Deterministický konečný utomt BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 8/3 Příkld Mějme deterministický konečný utomt M = ({q 0, q, q 2, }, {0, }, δ, q 0, {q 0 }), kde zorzení δ je definováno tkto: δ(q 0, 0) = q 2, δ(q, 0) =, δ(q 2, 0) = q 0, δ(, 0) = q, δ(q 0, ) = q, δ(q, ) = q 0, δ(q 2, ) =, δ(, ) = q 2. Zorzení δ můžeme tké zpst ve formě tulky: stv vstupní symol δ 0 q 0 q 2 q q q 0 q 2 q 0 q q 2 BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 5/3 Konfigurce konečného utomtu Příkld (pokrčování) L(M) = {x : x {0, } počet nul i jedniček v x je sudý}. Mějme n vstupu řetězec x = 00. Automt M provede tuto posloupnost přechodů: (q 0, 00) (q, 00) (q 0, 00) (q 2, 0) (, 0) (q, ) (q 0, ε). q 0 q Deterministický konečný utomt M = (Q, T, δ, q 0, F ) nzveme úplný, když zorzení δ(q, ) je definováno pro všechny dvojice stvů q Q vstupních symolů T. Algoritmus Doplnění konečného utomtu n úplný. Vstup: Konečný utomt M = (Q, T, δ, q 0, F ). Výstup: Úplný konečný utomt M = (Q, T, δ, q 0, F ) tkový, že L(M ) = L(M). Metod:. Vytvoříme nový stv q / Q, který udeme nzývt nulový. Q = Q {q }. 2. Jestliže δ(q, ) není definováno pro nějké dvojice q Q T, pk definujeme δ (q, ) = q pro všechny tkové dvojice. 3. Pro osttní přípdy δ (q, ) = δ(q, ). BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 7/3 Deterministický konečný utomt Příkld Je dán konečný utomt M = ({q 0, q, q 2 }, {,, c}, δ, q 0, {q 0, q, q 2 }), kde zorzení δ je zdáno tulkou: δ M c δ M c q 0 q 0 q q 2 q 0 q 0 q q 2 = q q q q 2 q q q 2 q 2 q q q 2 q 2 q 2 q q q q 0 0 0 0 q 2
Nedeterministický konečný utomt BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 0/3 Konfigurce nedet. konečného utomtu BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 2/3 Nedeterministický konečný utomt M je pětice M = (Q, T, δ, q 0, F ), kde Q je konečná množin vnitřních stvů, T je konečná vstupní eced, δ je zorzení z Q T do množiny podmnožin Q (znčíme 2 Q ), q 0 Q je počáteční stv, F Q je množin koncových stvů. Příkld Mějme nedeterministický konečný utomt M = ({q, q 0, q, q f }, {0, }, δ, q, {q f }), kde δ: δ(q, 0) = {q, q 0 }, δ(q, ) = {q, q }, δ(q 0, 0) = {q 0, q f }, δ(q 0, ) = {q 0 }, δ(q, 0) = {q }, δ(q, ) = {q, q f }. L(M) = {w : w {0, } w končí symolem, který je už ve w spoň jednou osžen} 0 q q 0 0 0 0 q f q 0 BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 9/3 Konfigurce nedet. konečného utomtu BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. /3 Konfigurce nedet. konečného utomtu Necht M = (Q, T, δ, q 0, F ) je nedeterministický konečný utomt. Relci M (Q T ) (Q T ) nzveme přechodem v utomtu M. Jestliže p δ(q, ), pk (q, w) M (p, w), pro liovolné w T. Řekneme, že řetězec w T je přijt nedeterministickým konečným utomtem M = (Q, T, δ, q 0, F ), jestliže existuje posloupnost přechodů (q 0, w) (q, ε) pro nějké q F. Potom L(M) = {w : w T, (q 0, w) (q, ε) pro nějké q F } je jzyk přijímný nedeterministickým konečným utomtem M. Příkld (pokrčování) Pro řetězec 00 může utomt provést mimo jiné posloupnost přechodů: (q, 00) (q, 00) (q 0, 0) (q 0, 0) (q f, ε). Znázorněme si pro řetězec 00 všechny možné posloupnosti přechodů. (q,00) (q,00) (q,00) (q,0) (q 0,0) (q,0) (q,0) (q,0) (q 0,0) (q f,0) (q,0) (q,ε) (q 0,ε) (q,ε) (q 0,ε) (q f,ε) (q,ε)
Dosžitelný stv BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 4/3 Dosžitelný stv BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 6/3 Necht je dán konečný utomt M = (Q, T, δ, q 0, F ). Stv q Q nzveme dosžitelný, pokud existuje řetězec w T tkový, že existuje posloupnost přechodů, která vede z počátečního stvu q 0 do stvu q: (q 0, w) (q, ε). Stv, který není dosžitelný, nzveme nedosžitelný stv. Příkld Je dán konečný utomt M = ({p, q, r}, {, }, δ, p, {r}), kde δ: p p, r r q r r p, r p Pomocí lgoritmu zjistíme, že Q 0 = {p}, Q = {p, r}, Q 2 = {p, r}. Stv q je nedosžitelný. M = ({p, r}, {, }, δ, p, {r}), kde δ : p p, r r r p, r p BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 3/3 Dosžitelný stv Algoritmus Nlezení odstrnění nedosžitelných stvů. Vstup: Konečný utomt M = (Q, T, δ, q 0, F ). Výstup: Konečný utomt M (Q, T, δ, q 0, F ), který nemá žádné nedosžitelné stvy tkový, že L(M) = L(M ). Metod:. Určíme množinu všech dosžitelných stvů Q tkto: ) Q 0 = {q 0 }, i :=. ) Q i = {q : q δ(p, ), p Q i, T } Q i. c) Jestliže Q i Q i, pk i := i + jdi n krok ), jink Q = Q i. 2. M = (Q, T, δ, q 0, F Q ), kde δ : δ (q, ) = δ(q, ) pro všechn q Q. BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 5/3 Užitečný/zytečný stv Necht je dán konečný utomt M = (Q, T, δ, q 0, F ). Stv q Q nzveme užitečný, pokud existuje řetězec w T tkový, že existuje posloupnost přechodů, která vede ze stvu q do nějkého koncového stvu: (q, w) (p, ε), p F. Stv, který není užitečný, nzveme zytečný stv.
Užitečný/zytečný stv BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 8/3 Konečné utomty s ε-přechody BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 20/3 Algoritmus Nlezení užitečných stvů odstrnění zytečných stvů. Vstup: Konečný utomt M = (Q, T, δ, q 0, F ). Výstup: Konečný utomt M = (Q, T, δ, q 0, F ), který nemá žádné zytečné stvy tkový, že L(M) = L(M ). Metod: Určíme množinu všech užitečných stvů Q u tkto:. ) Q 0 = F, i :=. ) Q i = {q : p δ(q, ), p Q i } Q i. c) Jestliže Q i Q i, pk i := i + jdi n krok ), jink Q u = Q i. 2. M = (Q u, T, δ, q 0, F ), kde δ ude zkonstruováno tkto: Nedeterministický konečný utomt s ε-přechody je pětice M = (Q, T, δ, q 0, F ), kde Q, T, q 0, F jsou stejné jko v definici nedeterministického konečného utomtu. Zorzení δ je definováno tkto: δ je zorzení z Q (T {ε}) do množiny podmnožin Q. δ (q, ) = δ(q, ) Q u pro všechn q Q u. BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 7/3 Užitečný/zytečný stv Příkld Je dán konečný utomt M = ({p, q, r}, {, }, δ, p, {r}), kde zorzení δ je zdáno tulkou přechodů: p q, r p, r q q q r p r BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 9/3 Konečné utomty s ε-přechody Příkld M = ({q 0, q, q 2 }, {,, c}, δ, q 0, {q 2 }), kde δ: V osttních přípdech δ(q, x) =. δ(q 0, ) = {q 0 }, δ(q 0, ε) = {q }, δ(q, ) = {q }, δ(q, ε) = {q 2 }, δ(q 2, c) = {q 2 }. Pomocí lgoritmu zjistíme, že Q 0 = {r}, Q = {p, r}, Q 2 = {p, r}. Proto Q u = {p, r} je vidět, že stv q je zytečný. M = ({p, r}, {, }, δ, p, {r}), kde δ : p r p, r r p r
Konečné utomty s ε-přechody BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 22/3 Odstrnění ε-přechodů BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 24/3 Necht M = (Q, T, δ, q 0, F ) je nedeterministický konečný utomt s ε přechody. Relci M (Q T ) (Q T ) nzveme přechodem v utomtu M. Jestliže p δ(q, ), T {ε}, pk (q, w) M (p, w) pro liovolné w T. Příkld Konečný utomt provede pro vstupní řetězec c tuto posloupnost přechodů: (q 0, c) (q 0, c) (q, c) (q, c) (q 2, c) (q 2, ε). Algoritmus Převod nedeterministického konečného utomtu s ε-přechody n nedeterministický konečný utomt ez ε-přechodů. Vstup: Konečný utomt M = (Q, T, δ, q 0, F ) s ε přechody. Výstup: Konečný utomt M = (Q, T, δ, q 0, F ) ez ε-přechodů tkový, že L(M) = L(M ). Metod:. δ (q, ) = δ(p, ). p ε-closure(q) 2. F = {q : ε-closure(q) F, q Q}. BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 2/3 ε-closure BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 23/3 Odstrnění ε-přechodů Funkce ε-closure pro konečný utomt M = (Q, T, δ, q 0, F ) je definován tkto: ε-closure(q) = {p : (q, ε) (p, ε), p Q}. Příkld ε-closure(q 0 ) = {q 0, q, q 2 }, ε-closure(q ) = {q, q 2 }, ε-closure(q 2 ) = {q 2 }. Příkld M = (Q, T, δ, q 0, F ), kde: δ (q 0, ) = δ(q 0, ) δ(q, ) δ(q 2, ) = {q 0 } = {q 0 }, δ (q 0, ) = δ(q 0, ) δ(q, ) δ(q 2, ) = {q } = {q }, δ (q 0, c) = δ(q 0, c) δ(q, c) δ(q 2, c) = {q 2 } = {q 2 }, δ (q, ) = δ(q, ) δ(q 2, ) = =, δ (q, ) = δ(q, ) δ(q 2, ) = {q } = {q }, δ (q, c) = δ(q, c) δ(q 2, c) = {q 2 } = {q 2 }, δ (q 2, ) =, δ (q 2, ) =, δ (q 2, c) = {q 2 }.
Odstrnění ε-přechodů BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 26/3 Konečné utomty s více poč. stvy BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 28/3 Příkld (pokrčování) F = {q 0, q, q 2 }, protože ε-closure(q 0 ) F = {q 2 }, ε-closure(q ) F = {q 2 }, ε-closure(q 2 ) F = {q 2 }. Příkld Je dán konečný utomt M = ({q 0, q, q 2, }, {, }, δ, {q 0, q, q 2 }, { }), kde δ: δ(q 0, ) = {q }, δ(q 2, ) = { }, δ(q, ) = {q 2 }. V osttních přípdech je δ(q, x) =, kde x {, }. Automt je deterministický. M: q 0 q q 2 (q 0, ) (q, ) (q 2, ) (, ε), (q, ) (q 2, ) (, ε), (q 2, ) (, ε). BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 25/3 Konečné utomty s více poč. stvy Nedeterministický konečný utomt s množinou počátečních stvů I je pětice M = (Q, T, δ, I, F ) kde Q, T, δ, F jsou stejné jko v definici NKA I je neprázdná podmnožin množiny stvů, I Q. Posloupnost přechodů tohoto konečného utomtu může zčít v liovolném stvu q I. BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 27/3 Konečné utomty s více poč. stvy Příkld M = ({q 0, q, q 2,, q 4, q 5 }, {, }, δ, {q 0, }, {q 2, q 5 }), kde δ: q 0 q q 4 q 2 q 5 M: (q 0, ) (q, ) (q, ) (q 2, ε), (, ) (q 4, ) (q 4, ) (q 5, ε).
Převod n NKAsjedním poč. stvem BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 30/3 Převod n NKAsjedním poč. stvem Algoritmus Převod konečného utomtu s více počátečními stvy n utomt s jedním počátečním stvem. Vstup: Konečný utomt M = (Q, T, δ, I, F ), I >. Výstup: Konečný utomt M = (Q, T, δ, q 0, F ) tkový, že L(M) = L(M ). Metod: M :. q 0 = I, 2. δ (q 0, ) = δ(q, ) pro všechn T, q I 3. Q = Q {q 0 }, 4. F = F, jestliže F I =, 5. F = F {q 0 }, jestliže F I. Příkld q 0 M = (Q, T, δ, q, F ), kde q = {q 0, }, δ (q, ) = {q, q 4 }, δ (q, ) = {q 4 }. V osttních přípdech pro p Q, x T ude δ (p, x) = δ(p, x). Q = {q, q, q 2, q 4, q 5 }. q q q q 4 q 2 q 5 q 2 q 4 q 5 BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 29/3 Převod n NKAsjedním poč. stvem BI-AAG (20/202) J. Holu: 2. Deterministické nedeterministické konečné utomty p. 3/3 Příkld q 0 q q 2 Pro konečný utomt z příkldu sestrojíme ekvivlentní utomt s jedním počátečním stvem: M = (Q, T, δ, q, F ), kde q = {q 0, q, q 2 }, δ (q, ) = {q, }, δ (q, ) = {q 2 }. V osttních přípdech pro p Q, x T ude δ (p, x) = δ(p, x). Q = Q {q}, F = F = { }. q q q 2