DFAのカウントに関して質問があります。
与えられた
Σ = {0, 1}
入力文字列、状態を設定してQ = {1...n}
、どのように私が構築できるのDFAの総数を見つけるだろうか?
これは組み合わせの問題だと思いますが、何を掛ければよいのかよくわかりません。
ありがとう。
DFAのカウントに関して質問があります。
与えられた
Σ = {0, 1}
入力文字列、状態を設定してQ = {1...n}
、どのように私が構築できるのDFAの総数を見つけるだろうか?
これは組み合わせの問題だと思いますが、何を掛ければよいのかよくわかりません。
ありがとう。
回答:
これは確かに重要な問題です。このペーパーで解決策を見つけることができます:アクセス可能なオートマトンの列挙とランダム生成。
基本的には、可能な各開始状態から可能な各受け入れ状態のセットへの可能なすべての遷移の積です。この例では、n ^(2n)遷移の可能性があります。合計n個の状態があり、それぞれにエッジごとにn個の可能な遷移(入力シンボル)があり、n ^(2n)を与えます。n個の可能な開始状態があり、2 ^ n個の受け入れ状態(可能な状態のべき集合)です。これら3つすべての積により、n ^(2n)* n * 2 ^(n)が得られます。
TL; DR:
ここで、およびです。
DFA 5タプルの各要素を調べて、それぞれが固有のDFAを生成するさまざまな組み合わせを理解します。5タプルは(、、、F)で構成されます
:
任意の1要素を開始状態にすることができます。したがって、を選択する =方法があります。
F:
Qの要素はいくつでも状態を受け入れることができるため、QのすべてのサブセットはFの有効な選択肢です。カーディナリティnのセットの可能なサブセットの数は2です。これを言うための別の方法はのカーディナリティある "電力設定 2です
:
はfとして定義されます: xつまり、関数のドメインは x、その範囲はです。ドメインのカーディナリティはで、ここでおよびであり、範囲のカーディナリティはです。したがって、を選択する通りの方法があります。
とが与えられます。それらを選択する方法はだけです。
したがって、およびであるDFAの5つの要素から選択する方法の総数は、
5年遅れたほうがいいですよね?