ランダムDFAを生成するための適切なアルゴリズムは何ですか?


9

ランダムなDFAを生成して、DFA削減アルゴリズムをテストしています。

現在使用しているアルゴリズムは次のとおりです。各状態について、アルファベットcの各シンボルについて、ランダムな状態にδ q c を追加します。各状態は、最終状態になる確率が同じです。qcδ(q,c)

これは、公平なDFAを生成する良い方法ですか?また、このアルゴリズムはトリムDFA(廃止された状態のないDFA)を生成しないので、ランダムなDFAを生成するより良い方法が何らかの方法で確実にトリムされているかどうか疑問に思いますか?


2
ランダムなDFAの自然な分布はないので、それはあなた次第です。何を達成したいですか?
Yuval Filmus 2013年

ランダムなDFAを生成して、DFA削減アルゴリズムをテストしています。
ダンカン

おそらく、最小限のDFAの小さなセットから始めて、それらを爆破したいですか?そうすれば、最小化によって実際に正しい結果が得られることがわかります。
adrianN 2013年

不思議に思うのは、最適ではない削減アルゴリズムをテストしているのですか、それとも独自の最小限の最適なDFAを見つけているのですか?
vzn 2013年

2
テスト用のデータ構造を生成している場合、不偏は重要ではありません。重要なのは、興味深い行動を引き起こす可能性が高いことです。類推すると、幾何学的アルゴリズムをテストするとき、いくつかのテストで3つの点が整列していること、およびランダム分布では決して発生しないことを確認する必要があります。
Gilles「SO-邪悪なことをやめなさい」2013

回答:


6

[1]とセクション4の議論をチェックしてください。ランダムオートマトンの生成。このペーパーでは、さまざまなDFA最小化アルゴリズムをベンチマークしています。状態とk個のシンボルを持つ完全なDFAの正規の文字列表現を生成する均一ランダムジェネレーターが使用されます。他の方法についても説明します。nk


[1] Almeida、M.、Moreira、N.、およびReis、R.(2007)。オートマトン最小化アルゴリズムのパフォーマンスについて。アルゴリズムの論理と理論、3。


「正規の文字列表現」とはどういう意味ですか?
ダンカン

Σ

4

Cyril Nicaudのホームページをご覧ください。特に、次の参考文献が質問に関連しています。

F.バッシーノ、J。デイビッド、およびC.ニコー、列挙および不完全な可能性のある決定論的オートマトンのランダム生成、Pure Mathematics and Applications 19(2-3)(2009)1-16。

F.バッシーノとC.ニコー。アクセス可能なオートマトンの列挙とランダム生成。理論。コンプ Sc。381(2007)86-104。


3

順列http://paranthoen.thomas.free.fr/PAPERS/RandDFAToAppearInTCS.ps.gzまでランダムにDFAを生成するアルゴリズムがあります。

ただし、上記の論文では、ほとんどすべてのDFAがすでに最小限であることも言及されています。最小ではないDFAは素数のようなものです...それらの数はごくわずかです。このアルゴリズムを使用して最小化アルゴリズムをテストする場合、単純な乱数ジェネレータを使用して素数でアルゴリズムをテストする場合と同じようになります。最小限でないDFAを増やすには、シンク状態を追加してアルゴリズムを変更し、遷移の重要な割合をこのシンク状態にリダイレクトします。

しかし、私の見解では、実装の迅速性をテストする場合は、それを何に使用したいかをチェックします。ランダムワードセットまたはランダムREGEXを使用して、NFAまたはDFAを作成し、結果のDFAを最小化します。 。


2

p=1/nnグラフのノード数です。ただし、戦略やErdos-Renyiは、DFAのすべての状態が接続されていることを保証しません[追加する自然な制約]。



(v1,b,v2)v1v2b
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.