logo

DFA (決定論的有限オートマトン)

  • DFA は決定論的有限オートマトンを指します。決定性とは、計算の一意性を指します。マシンが入力文字列を一度に 1 シンボルずつ読み取る場合、有限オートマトンは決定論的有限オートマトンと呼ばれます。
  • DFA では、現在の状態から次の状態への特定の入力のパスは 1 つだけです。
  • DFA は null 移動を受け入れません。つまり、DFA は入力文字なしでは状態を変更できません。
  • DFA には複数の最終状態を含めることができます。コンパイラの字句解析で使用されます。

次の図では、入力 a の状態 q0 から、q1 に向かうパスが 1 つだけ存在することがわかります。同様に、q0 から q2 に向かう入力 b のパスは 1 つだけです。

決定論的有限オートマトン

DFA の正式な定義

DFA は、FA の定義で説明したのと同じ 5 タプルのコレクションです。

カット・ティンフの妹
 Q: finite set of states ∑: finite set of the input symbol q0: initial state F: final state δ: Transition function 

遷移関数は次のように定義できます。

 δ: Q x ∑→Q 

DFA のグラフィック表現

DFA は、状態図と呼ばれる有向グラフで表すことができます。その中で:

  1. 状態は頂点によって表されます。
  2. 入力文字のラベルが付いた円弧は遷移を示します。
  3. 初期状態は矢印でマークされています。
  4. 最終状態は二重丸で示される。

例 1:

 Q = {q0, q1, q2} ∑ = {0, 1} q0 = {q0} F = {q2} 

解決:

遷移図:

決定論的有限オートマトン

遷移表:

現状 入力 0 の次の状態 入力 1 の次の状態
→q0 q0 q1
q1 q2 q1
*q2 q2 q2

例 2:

∑ = {0, 1} の DFA は、0 で始まるすべてを受け入れます。

解決:

決定論的有限オートマトン

説明:

ベースバンドとブロードバンド
  • 上の図では、状態 q0 の DFA への入力として 0 が与えられると、DFA は状態を q1 に変更し、入力 0 を開始すると常に最終状態 q1 に進むことがわかります。00、01、000、001... を受け入れることができます。 。等。 1 で始まる文字列では最終状態に移行しないため、1 で始まる文字列は受け入れられません。

例 3:

∑ = {0, 1} の DFA は、0 で終わるすべてを受け入れます。

解決:

決定論的有限オートマトン

説明:

上の図では、状態 q0 の DFA への入力として 0 が与えられると、DFA は状態を q1 に変更することがわかります。 00、10、110、100.... など、0 で終わる任意の文字列を受け入れることができます。 1 で終わる文字列は受け入れられません。1 つの入力で最終状態 q1 には決してならないため、1 で終わる文字列は受け入れられないか、拒否されます。