logo

遷移表

遷移テーブルは基本的に遷移関数を表形式で表現したものです。 2 つの引数 (状態とシンボル) を受け取り、状態 (「次の状態」) を返します。

遷移テーブルは次のように表されます。

  • 列は入力記号に対応します。
  • 行は状態に対応します。
  • エントリは次の状態に対応します。
  • 開始状態はソースのない矢印で示されます。
  • 受け入れ状態は星印で示されます。

例 1:

遷移表

解決:

与えられた DFA の遷移テーブルは次のとおりです。

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

説明:

  • 上の表の最初の列は、現在のすべての状態を示しています。列 0 と列 1 の下に、次の状態が表示されます。
  • 遷移テーブルの最初の行は、現在の状態が q0 の場合、入力 0 で次の状態は q1 になり、入力 1 で次の状態は q2 になると読み取ることができます。
  • 2 行目では、現在の状態が q1 の場合、入力 0 では次の状態は q0 になり、入力 1 では次の状態は q2 になります。
  • 3 行目では、現在の状態が入力 0 で q2 の場合、次の状態は q2 になり、入力 1 では次の状態は q2 になります。
  • q0 にマークされた矢印は、それが開始状態であることを示し、q2 にマークされた円は、それが最終状態であることを示します。

例 2:

遷移表

解決:

与えられた NFA の遷移表は次のとおりです。

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

説明:

Javaで文字列をintに変換する
  • 遷移テーブルの最初の行は、現在の状態が q0 の場合、入力 0 では次の状態は q0 になり、入力 1 では次の状態は q1 になると読み取ることができます。
  • 2 行目では、現在の状態が q1 の場合、入力 0 では次の状態は q1 または q2 になり、入力 1 では次の状態は q2 になります。
  • 3 行目では、入力 0 の現在の状態が q2 の場合、次の状態は q1 になり、入力 1 の場合は次の状態は q3 になります。
  • 4 行目では、入力 0 の現在の状態が q3 の場合、次の状態は q2 になり、入力 1 の場合は次の状態は q2 になります。