遷移テーブルは基本的に遷移関数を表形式で表現したものです。 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 になります。