10

オートマトン理論の割り当てを行っています。これは、決定論的有限オートマトンの遷移関数によって単語が受け入れられるかどうかを判断する必要があります

私はこの入力ファイルを持っています:

6 8 0 2
2
5
0 0 a
0 1 a
1 1 b
1 2 c
1 3 c
3 4 d
4 4 d
4 5 d
3
aaabcccc
aabbbbcdc
acdddddd

入力は 4 つの整数で始まり、最初はオートマトンの状態の数、次はオートマトンの遷移の数、3 番目の数は初期状態、そして最終状態の数です。次に、最終状態が続きます (この例では、最終状態は 2 と 5 です)。

次に、N 行 (N は遷移の数) が続き、それぞれに 2 つの整数と文字 I、J、および C があり、遷移、つまり遷移が状態 i から状態 J に文字 C で移行する状態を表します。この行に続いて、テストする文字列の数を含む単一の整数 S が続き、次にそれぞれの文字列を含む S 行が続きます。

このプログラムの出力は次のようになります。

Case #2:
aaabcccc Rejected
aabbbbcdc Rejected
acdddddd Accepted

文字列が受け入れられたか拒否されたかを示す必要があります。これまでのところ、入力を使用して作業をコーディングしただけです。

オートマトンを表現するのに最も便利な方法がわかりません。単純に配列を使用する必要がありますか? 配列にどのようなロジックを適用しますか? オートマトンのアルファベットを事前に知らずにそれを行う方法はありますか? オートマトンを表現するためにデータ構造が必要ですか?. 私はこの割り当てに少し行き詰まっており、いくつかのアイデア、いくつかの疑似コード、またはそれを行うためのアイデアが欲しいです。コードは別の言語ですか?私は自分の課題をやりたいので、解決策を望んでいませんが、何か助けがあれば

4

1 に答える 1