Automaty - DAS, NAS i eNAS
Transkrypt
Automaty - DAS, NAS i eNAS
Automaty DAS, NAS i eNAS Adam Kobus Updated: 7 kwietnia 2016 automaty4 Niedeterministyczne automaty skończone z ε przejściami Możliwości Puste przejścia pozwalają łatwo powiązać automaty skończone z wyrażeniami regularnymi. Pozwalają też wykazać równoważność pomiędzy nimi. Takie automaty definiujemy niemal identycznie jak NASy, jednak zmieniają się argumenty funkcji przejścia. Stan pozostaje niezmienny, rozszerza się definicja symbolu przejścia z Σ do Σ ∪ {ε}. Warto zauważyć, że pusty symbol nie należy do alfabetu. ε-domknięcie Jest to zbiór stanów osiągalnych ze stanu q po ścieżkach prowadzących ε-przejściami, zarówno ze stanu q, jak i stanów wzdłuż drogi ε-przejść. Formalnie: q ∈ ε̃, jeżeli p ∈ ε̃ i istnieje ε-przejście do r, to r ∈ ε̃. Przykład ε-NAS dla liczb dziesiętnych. → q0 q1 q2 q3 q4 ? q5 ε {q1} ∅ ∅ {q5} ∅ ∅ +, − {q1} ∅ ∅ ∅ ∅ ∅ . ∅ {q2} ∅ ∅ {q3} ∅ 0, 1, . . . , 9 ∅ {q1,q4} {q3} {q3} ∅ ∅ Metoda eliminacji εprzejść Metoda eliminacji ε-przejść Niech będzie dany ε-NAS E = (QE , Σ, δE , q0 , FE ) oraz równoważny mu DAS D = (QD , Σ, δD , qD, FD ). Reguły: # QD jest zbiorem podzbiorów QE . Osiągalne stany D są ε-domkniętymi podzbiorami QE # stan początkowy qD = ε̃(q0 ) będzie ten sam # FD to zbiór stanów, z których każdy składa się z co najmniej jednego akceptującego stanu dla E: FD = {S|S ∈ QD , S ∩ FE = ∅} # dla wszystkich symboli a ∈ Σ i stanów S ⊆ QD wartość δ(S, a) oblicza się następująco: Metoda eliminacji ε-przejść # S = {p1 , p2 , . . . , pk } # Obliczyć # wtedy Sk i=1 δE (pi , a) co S δ(S, a) = m j=1 r˜j daje {r1 , r2 , . . . , rm } Wynik konwersji Zadania Zadanie 1 Oblicz ε-domknięcia dla każdego stanu, podaj łańcuchy o długości do trzech znaków, które akceptuje ten automat oraz przekształć ten automat na DAS. →p q ?r ε ∅ {p} {q} a {p} {q} {r} b {q} {r} ∅ c {r} ∅ {p} Zadanie 2 →p q ?r ε {q,r} ∅ ∅ a ∅ {p} ∅ b {q} {r} ∅ c {r} {p,q} ∅ Zadanie 3 Skonstruuj ε-NAS akceptujące zbiór łańcuchów złożonych z nieujemnej liczby symboli a, po którym następuje nieujemna liczba symboli b, a po nich nieujemna liczba symboli c. Zamień ε-NAS na DAS.