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 }
∅

Podobne dokumenty