DFAには、次の4つのプロパティが必要です。
DFAにはN個のノードがあります
各ノードには2つの発信遷移があります。
各ノードは、他のすべてのノードから到達可能です。
DFAは、あらゆる可能性から完全に均一なランダム性で選択されます
これは私がこれまでに持っているものです:
- N個のノードのコレクションから始めます。
- まだ選択されていないノードを選択します。
- その出力を他の2つのランダムに選択されたノードに接続します
- 一方の遷移1ともう一方の遷移0にラベルを付けます。
- すべてのノードが選択されていない限り、2に進みます。
- 着信接続のないノードがあるかどうかを確認します。
- その場合、複数の着信接続があるノードから着信接続を盗みます。
- 着信接続のないノードがない場合を除いて、6に進みます
ただし、これはアルゴリズムが正しくありません。ノード1の2つの接続がノード2(およびその逆)に接続され、ノード3の2つの接続がノード4(およびその逆)に接続されているグラフを考えてみます。それは次のようなものです:
1 <==> 2
3 <==> 4
ここで、<==>とは、双方向の2つの発信接続を意味します(つまり、合計4つの接続)。これは2つのクリークを形成しているように見えます。つまり、すべての州が他のすべての州から到達できるわけではありません。
誰かがアルゴリズムを完了する方法を知っていますか?または、誰かが別のアルゴリズムを知っていますか?二分木を使ってこれを構築できることを漠然と思い出しているようですが、それについてはよくわかりません。