私は手書きレクサーをします。私は以前に作った3つの有限オートマトンを含む1つの非決定論的有限オートマトンを描く必要があります。飛行機、雲、滑走路などのキーワードを使って作成しました。私は助け、この3つのオートマトンの共通オートマトンを構築する方法が必要です。私はそれをする方法をいくつかの例が必要ですか?あなたが私を助けてください知っていれば??非決定的有限オートマトンを構築する
0
A
答えて
0
飛行機、雲、滑走路のオートマトンを描画して、開始状態の前に部屋を残します。さて、最初の状態を消去してください。新しい、単一の状態をその前に描画します。 "a"トランジション/エッジ、 "r"エッジを "離す"、 "c"エッジを "ラウド"にして "irplane"オートマトンに接続します。それでおしまい。完了しました。
もっと一般的なケースでは、それはより複雑です。 最初に、飛行機、雲、滑走路などの各オートマトンを描画します。開始位置によって空白が残ります。次に、開始する前の状態を描画し、それを自由端を介して飛行機、雲、滑走路オートマトンの初期開始状態の開始点に接続します。 (フリーエッジは、εエッジ、イプシロンエッジ、λエッジ、またはラムダエッジとも呼ばれます)。
次に、あなたはyoutubeのビデオチュートリアルを見つけることができるサブセット構築アルゴリズムを実行します。 online subset construction algorithm toolもあり、非決定論的有限オートマトンを確定的有限オートマトン(DFA)に変換します。このプロセスを「決定」といいます。
DFAを取得したら、それを使用して、スキャナを駆動する状態、アクション、およびルックアップテーブルを構築します。これは、独自のワームの缶です。人々は通常、それを自動化するためにLexやFlexのようなスキャナジェネレータを使います。オンラインで使用できる同様の、使いやすいツールはthe Online Scanner Generatorです。あなたは、次の入力を提供することで、グラフを作ってそれを使用することができます。
airplane:airplane
cloud:cloud
runway:runway
それはそうのように、そのためにあなたにDFAをあげる:
関連する問題
- 1. 非決定論的有限オートマトン(NFA)の修正
- 2. DFA(確定的有限オートマトン)を構築する必要があります
- 3. 決定木の構築
- 4. (プログラミング)言語アクセプタの有限状態オートマトン
- 5. 有限オートマトンの文字列マッチャー
- 6. 確定的有限オートマトンが最終状態に達するたびに文字列を分割しますか?
- 7. 有限オートマトンと一致する文字列
- 8. コンピュータ科学における有限オートマトンの応用
- 9. 汎用有限オートマトンのエンジンとは何ですか?
- 10. 正規表現に対応する有限状態オートマトンを構築する。私のソリューションは正しいですか?
- 11. 有効なヒープを構築する
- 12. 無限の入力に対する非決定性
- 13. amb-operatorで非決定的な選択
- 14. 非決定的インタリーブ導管のソース
- 15. 再帰の有無にかかわらず非バイナリツリーを構築するには?
- 16. 動的テーブル構築
- 17. 動的にメソッド/プロパティーボディを構築する
- 18. Cで静的ライブラリを構築する
- 19. CMake:静的バイナリを構築する
- 20. グリッドを動的に構築する
- 21. URLを動的に構築する
- 22. NSDateから決定された日がないNSStringのNSArrayを構築する
- 23. 非常に基本的なGuardの例を構築するには?
- 24. 関数の極限を決定する
- 25. Coqの非決定性コンポーネントを持つデータ構造
- 26. 乱数ジェネレータ(非決定的に作用する)
- 27. webgrid =動的に構築する方法
- 28. Scalaのクラスを特色と構造的サブタイプに限定する
- 29. リストの動的構築
- 30. オーバーライド可能な暗黙的な構造を構築する