非決定性有限オートマトン
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/09/20 14:47 UTC 版)
この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。(2023年9月) |
非決定性有限オートマトン[1](
直感的説明
NFA は入力文字列を受け付ける。各入力文字を受け付ける度に新たな状態に遷移する。これが全ての文字の入力が終わるまで続く。
M はふたつのDFAの和集合のようになっている。ひとつのDFAは状態 {S2, S1} を持ち、もうひとつは状態 {S3, S4} を持つ。
- 最終状態 S1 にあるとき、それまでの入力文字列に偶数個の 0 が含まれていたことを意味し、状態 S2 にあるときは奇数個であることを意味する。1 が入力されたとき、上のオートマトンの状態は変化しない。Mが受理されたとき、入力文字列に偶数個の 0 が含まれていた事がわかる。
- 最終状態 S3 にあるとき、それまでの入力文字列に偶数個の 1 が含まれていたことを意味し、状態 S4 にあるときは奇数個であることを意味する。0 が入力されたとき、下のオートマトンの状態は変化しない。Mが受理されたとき、入力文字列に偶数個の 1 が含まれていた事がわかる。
拡張NFA(GNFA)
拡張非決定性有限オートマトン(GNFA[5])または拡張非決定性有限状態機械[6]とは、各状態遷移が任意の正規表現に対応する NFA である。GNFA は入力からまとめて複数の文字を読み込むが、その文字列は遷移(エッジ)に付記された正規表現に対応するものである。
形式的定義
GNFA は、 の5要素から構成され、各要素は以下の性質を持つ。
- 状態の有限集合()
- 入力文字の有限集合(Σ)
- 遷移関数()
- 開始状態()
- 受容状態()
ここで は文字集合 から構成される全ての正規表現の集合である。
DFA や NFAは簡単に GNFA に変換でき、GNFA は正規表現に簡単に変換できる。その変換は、中間的な遷移を正規表現に変換していき、最終的に というひとつの遷移(エッジ)になるようにするものである。同様に GNFA の各遷移(エッジ)に付記された正規表現を一文字ずつに分解するまで中間状態を追加していけば NFA に変換できる。さらに NFA は前述したように DFA に変換可能である。したがって GNFA は DFA および NFA と等価な形式言語を理解する。
脚注
- ^ 英: non-deterministic finite automaton
- ^ 英: non-deterministic finite state machine
- ^ “Finite State Machine”. FOLDOC. NFA ==> Finite State Machine. 2010年6月16日06:52:21時点のオリジナルよりアーカイブ。2005年11月20日 06:00閲覧。
- ^ A. V. エイホ・R. セシィ、J. D. ウルマン 著、原田 賢一 訳『コンパイラI: 原理・技法・ツール』 1巻、サイエンス社、2000年、139頁。ISBN 4-7819-0585-4。
- ^ 英: generalized non-deterministic finite automaton
- ^ 英: generalized non-deterministic finite state machine
非決定性有限オートマトンと同じ種類の言葉
- 非決定性有限オートマトンのページへのリンク