Q Q a Σ × :δ (funkcja przejścia, program, instrukcje) – QF ⊂ (zbiór

Transkrypt

Q Q a Σ × :δ (funkcja przejścia, program, instrukcje) – QF ⊂ (zbiór
DETERMINISTYCZNY AUTOMAT SKOŃCZONY
DAS
Def. Deterministyczny automat skończony
Deterministycznym automatem skończonym (DAS) nazywamy
układ
M = ( Σ, Q , q 0 , δ , F )
gdzie
– Σ jest skończonym alfabetem ( Σ ≠ ∅ )
– Q jest skończonym zbiorem (stanów)
– q0 ∈ Q (stan początkowy)
– δ : Q × Σ a Q (funkcja przejścia, program, instrukcje)
– F ⊂ Q (zbiór stanów końcowych)
Uwaga!
Mówimy „automat deterministyczny”, bo funkcja δ dla
każdego stanu i symbolu wejściowego określa dokładnie jeden
stan następny.
Def. Rozszerzenie funkcji δ na łańcuchy
Rozszerzamy funkcję δ do funkcji δˆ : Q × Σ ∗ a Q przez
indukcję po długości łańcucha:
δˆ (q, ε ) = q

δˆ (q, xa ) = δ δˆ (q, x ), a
(
)
dla q ∈ Q , x ∈ Σ ∗ , a ∈ Σ .
δˆ(q, x ) – stan, w którym znajdzie się automat z funkcją
przejścia δ po wczytaniu łańcucha x, zaczynając od stanu q.
Dla wszystkich q ∈ Q , x, y ∈ Σ ∗ :
(
)
δˆ (q, xy ) = δˆ δˆ (q, x ), y .
--------------------------------------------------------------------------Def. Język akceptowany przez automat M
(określony za pomocą rozszerzonej funkcji przejścia)
Niech M = (Σ, Q, q0 , δ , F ) będzie DAS. Mówimy, że
automat M akceptuje łańcuch x ∈ Σ ∗ , jeżeli δˆ (q0 , x ) ∈ F .
Określamy język L(M ) ⊂ Σ ∗ (język akceptowany przez M)
jako zbiór wszystkich łańcuchów akceptowanych przez M,
tzn.
{
}
L(M ) = x ∈ Σ∗: δˆ(q0 , x ) ∈ F .
Def. Konfiguracja automatu.
Konfiguracją automatu nazywamy uporządkowaną parę
[ q, w ],
gdzie
q ∈ Q - bieżący stan maszyny,
w ∈ Σ∗ - łańcuch pozostały do wczytania.
Na konfiguracjach określamy funkcję:
|−− M : Q × Σ ∗ a Q × Σ∗
służącą do śledzenia obliczeń automatu.
Zapis
[ qi , aw ]
|−− M
[ q j , w ],
qi , q j ∈ Q , a ∈ Σ , w ∈ Σ∗
oznacza, że konfiguracja [ q j , w ] została otrzymana z
konfiguracji [ qi , aw ] przez wykonanie jednej instrukcji
maszyny M, tzn. δ (qi , a ) = q j dla automatu DAS.
Def. Obliczenie.
Obliczeniem dla łańcucha w = a1a2 K an jest ciąg konfiguracji
rozpoczynający się od konfiguracji początkowej , a kończący
się w konfiguracji, w jakiej znajdzie się automat po
przeczytaniu całego słowa w:
[ q0 , a1a2 K an ] |−− M [ qi1 , a2 K an ] |−− M K
Oznaczenie:
[ q0 , w ]
|−− ∗M
|−− M [ q = qin , ε ]
[ q , ε ].
Ponieważ automat M jest deterministyczny, oznacza to, że dla
każdego słowa w ∈ Σ∗ istnieje dokładnie jedno obliczenie.
Jeżeli q ∈ F , to obliczenie jest akceptujące, tzn. automat M
akceptuje łańcuch w.
---------------------------------------------------------------------------
Def. Język akceptowany przez automat M:
(określony za pomocą pojęcia konfiguracji)
{
L( M ) = x ∈ Σ ∗:
[ q0 , x ]
|−− ∗M
[ q, ε ]
∧ q∈ F
}