有限オートマトン
概要
よく「状態遷移図」と言われてこのような図を思い浮かべる.

これは有限オートマトン と呼ばれている.
ある特定の文字列を入力として左上の部分からスタートし受理状態(図の二重丸の部分)に辿りつければ 受理する という. 受理する文字列として, 例えば aa, abaa, aaaa などが考えられる.
ある入力に対する遷移先が必ず1つの時は決定的とよばれ, そのようなオートマトンを決定性有限オートマトン(DFA;Deterministic Finite Automata) と呼ぶ. そうでない時は 非決定性有限オートマトン(NFA) と呼ぶ. 非決定性有限オートマトンは決定性有限オートマトンに必ず変換できる. (つまり, 性能は同じ)
DFAの定義
DFA を
と定義する.
- : 状態(例だと )
- : 入力アルファベット (例だと )
- : 開始状態(例だと )
- : 受理状態(例だと )
- : 遷移関数
言語
DFA によって受理される文字列の集合をDFA の言語 という. DFAで受理できる言語のことを 正規表現 という.
DFAの限界
DFAはいかなる言語でも受理出来るかというとそうではない. 例えば (例: ab, aabb, aaabbb ...)のような特定回数繰り返す文字列を受理するDFAは作ることが出来ない.