2009-08-27 127 views
0

記号、状態、遷移のテキストファイルを読んで、すべてをテーブルに入れました。
シンボル、
状態B Q1、Q2、Q3、Q4
開始状態Q4
最終状態Q2、Q3
NFAからDFAへのアルゴリズム

遷移状態:
Q4、イプシロン、Q1
それはこのようになりますQ1、Q2
Q3、Q3
Q3、B、q1は

私は、DFAが、私にNFAに変換する方法についてのアルゴリズムを読みました本当にアルゴリズムを理解していない。移行メソッドを作成するにはどうすればよいですか?

+1

あなたは何のアルゴリズムを読んだり理解しなかったのですか? – grenade

+0

はnfaをdfaアルゴリズムに変換します。これはこのコンテキストで適用することを意味します。どのように移行メソッドを実装するのですか?どのメンバーが私は状態クラスに必要ですか? – gingergeek

答えて

1

プログラミングに問題があるのか​​、オートマトンに問題がありますか?

これをプログラミングするので、非常に簡単です。はい、4つの可能な値q1〜a4を持つ状態クラスがあります。状態クラスには、それをq4に初期化する単一のコンストラクタがあります。状態オブジェクトを変更するAccept(シンボル)関数、および状態q2およびq3に対してtrueを返すIsEndState()関数があります。

NFA/DFAの部分は、Accept()メソッドの実装で活躍します。今度は、Accept()のNFAベースの実装をAccept()のDFAベースの実装に変換するプログラム的な解決策を求められます。

+0

私は本当にそれを設計することに問題がありますか?あなたが私に言ったようなものは、州のクラスのような便利な機能を持っています。私に完全な構造が良いだろうと教えてください。 – gingergeek

3

私は右ここで気の利いたリンクを持っている: JFLAP

JFLAPが含まれ、いくつかの素敵な可視化を持つJava JARです。あなたはNFAs/DFAをテストし、変換したり、補題補題を実行したり、様々な文法などをチェックすることができます。 あなたはそれを試してみるかもしれません!

0

あなたがJFLAPのようなものをダウンロードすることなく、自動的にそれをしたい場合は、Online NFA to DFA conversion toolにスピンを与えます。

ProfBrown's "Convert NFA to DFA" video on YouTubeは、IMOでは手作業でテーブルを書く必要はありませんが、実用的ではなく、面倒で面倒です。プロセスを慣れていくにつれて、小さなグラフのために眼球を動かすことができます。大規模なグラフの場合は、とにかくそれを自動化するツールを使用します。

関連する問題