Niedeterministyczny automat skończony

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Niedeterministyczny automat skończony (ang. Non-deterministic Finite-state Automaton, NFA) - maszyna o skończonej liczbie stanów, która zaczynając w stanie początkowym czyta kolejne symbole pewnego słowa. Po przeczytaniu każdego symbolu zmienia ona swój stan na stan będący elementem zbioru, który jest wartością relacji przejścia. Jeśli po przeczytaniu całego słowa maszyna znajduje się w którymś ze stanów oznaczonych jako akceptujące (końcowe), mówimy że automat akceptuje czytane słowo.

Niedeterministyczny a deterministyczny automat skończony[edytuj | edytuj kod]

Niedeterministyczny automat skończony różni się od deterministycznego automatu skończonego tym, że przeczytanie tego samego symbolu w danym stanie może powodować przejście do jednego z kilku różnych stanów.

Każdemu niedeterministycznemu automatowi skończonemu odpowiada deterministyczny automat skończony akceptujący dokładnie te same słowa. Możemy go uzyskać dokonując determinizacji automatu skończonego.

Opis formalny[edytuj | edytuj kod]

Formalnie niedeterministyczny automat skończony można przedstawić jako piątkę uporządkowaną (S, ∑, T, Q, A), gdzie:

  • S jest skończonym zbiorem stanów
  • ∑ jest skończonym zbiorem nazywanym alfabetem
  • T: S × ∑ → P(S) jest funkcją przejścia
  • Q jest zbiorem stanów początkowych
  • A jest zbiorem stanów akceptujących (końcowych)

P(S) jest zbiorem potęgowym zbioru stanów S.

Zobacz też[edytuj | edytuj kod]