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 }