DAS i NAS, konstrukcja DAS z NAS
Transkrypt
DAS i NAS, konstrukcja DAS z NAS
Automaty DAS, NAS i eNAS Adam Kobus Updated: 17 marca 2016 automaty2 Język DAS Język DAS Język DAS oznacza język złożony ze słów akceptowanych przez DAS A. L(A) = {ω|δ̂(q0 , ω) ∈ F } gdzie δ̂ to rozszerzona funkcja przejścia, która określa stan, w jakim znajdzie się automat, po wczytaniu zadanego łańcucha: δ̂(q, ω) = δ(δ̂(q, x), a) gdzie ω = xa, x to łańcuch (prefix), a a to ostatni symbol. Niedeterministyczny automat skończony NAS NASy rozszerzają definicję DAS o # dany stan nie musi mieć przejścia na każdy symbol wejściowy # możliwość wielu przejść po tym samym symbolu (niedeterminizm) Formalnie oznacza to, że funkcja przejścia akceptuje stan jako argument stan q, czyli δ(q, a), zaś zwraca podzbiór stanów Q. Taki podzbiór może być również zbiorem pustym. Przykład DAS i NAS DAS Dla alfabetu Σ = {0, 1} poniższy DAS akceptuje słowa kończące się na 01. NAS NAS akceptujący te same słowa. Tabela przejść NAS → q0 q1 ∗q2 0 {q0 , q1 } ∅ ∅ 1 {q0 } {q2 } ∅ Równoważność DAS i NAS Równoważność DAS i NAS Każdy DAS jest NAS. Każdy język akceptowany przez NAS, można opisać za pomocją DAS. Oznacza to, że każdy NAS można przekształcić na DAS. Konstrukcja podzbiorów Jest to metoda konstrukcji automatu DAS na podstawie NAS. Polega na skonstruowaniu wszystkich podzbiorów zbiorów stanów NAS. Konstrukcja: # QD jest zbiorem podzbiorów QN , tzn. zbiorem potęgowym QN . Jeśli QN ma n stanów, to QD będzie miało 2n stanów. Jako że nie wszystkie stany będą osiągalne ze stanu początkowego D (D = N, gdzie N to stan początkowy NAS), więc będzie można je pominąć. Konstrukcja podzbiorów # FD jest zbiorem podzbiorów S zbioru QN takich, że T S FN 6= ∅. FD jest zbiorem stanów N, które zawierają co najmniej jeden stan akceptujący autmatu N. # dla każdego zbioru S ⊆ QN i dla każdego symbolu S wejściowego a ∈ Σ δD (S, a) = p∈S δN (p, a) Przykład konstrukcji Dla NAS akceptującego słowa kończące się na 01. Zbiorem stanów N jest {q0 , q1 , q2 }, zatem DAS będzie miał 23 = 8 stanów (wszystkie podzbiory). Tabela przejść DAS: Przykład konstrukcji ∅ → {q0 } {q1 } ∗{q2 } {q0 , q1 } ∗{q0 , q2 } ∗{q1 , q2 } ∗{q0 , q1 , q2 } 0 ∅ {q0 , q1 } ∅ ∅ {q0 , q1 } {q0 , q1 } ∅ {q0 , q1 } 1 ∅ {q0 } {q2 } ∅ {q0 , q2 } {q0 } {q2 } {q0 , q2 } Zadania Zadanie 1 Zamienić NAS na DAS: → {q0 } {q1 } ∗{q2 } a {q0 , q1 } {q2 } ∅ b {q0 } {q2 } ∅ Zadanie 2 Zamienić NAS na DAS: → {q0 } ∗{q1 } {q2 } ∗{q3 } 0 {q1 , q3 } {q2 } {q3 } ∅ 1 {q1 } {q1 , q2 } {q0 } {q0 } Zadanie 3 Zamienić NAS na DAS: → ∗{q0 } {q1 } {q2 } a {q1 } {q0 } {q0 , q2 } b {q2 } {q1 } ∅