各頂点に正確に2つの出ているエッジと、バイナリでエンコードされた自然数N、2つの頂点sおよびtがあるようなノードがn個ある有向グラフを考えると、
Nステップ内でsからtへの(必ずしも単純ではない)パスの数を数えたい。
これは#P-hard問題ですか?または一般的に、この問題の複雑さは何ですか?
各頂点に正確に2つの出ているエッジと、バイナリでエンコードされた自然数N、2つの頂点sおよびtがあるようなノードがn個ある有向グラフを考えると、
Nステップ内でsからtへの(必ずしも単純ではない)パスの数を数えたい。
これは#P-hard問題ですか?または一般的に、この問題の複雑さは何ですか?
回答:
パスの出力数であってもよい(選択したSを任意にした後、選択しTの最大数のエンドポイントである頂点として2 N個から歩くS)必要Ω (Nを)明示的に書き留めるビット。これは入力サイズにおいて指数関数的です。一方、行列のパワーを与えるアプローチには、入力サイズと出力サイズの合計に複雑度多項式があります。そのため、指数サイズの出力を持ち、出力サイズの時間多項式で決定的に解決される可能性のあるカウント問題のクラスにそれを配置するようです。 NEXPに類似した#EXPではありません)。
問題は#P-completeです。カウントバージョンの#P-completeであるグラフ(Garey&JohnsonのND31)で最短パスをカウントする問題を見てください。コメントを注意深く読んでください。これは、長さのパスに対する答えを与えます。長さのパスの答えを取得するには、最短経路問題を呼び出す そして 、前者から後者を減算します。つまり、減算減算を実行します。
#HAMILTONIAN PATHS / CIRCUITSから#SHORTEST PATHSへの削減は3正規グラフでも機能するので、#P完全性の結果は、次数の有向グラフの制限でも機能します 。