回答:
問題はcoNP -hardです。UNSATの問題をこの問題に簡単に還元できます。
より正確な特性評価は、問題がC = P完全であることです。実際、クラスC = Pの定義の1つは、この問題を多項式時間で多対1で還元できる問題のクラスであるということです(通常、この定義はGapP関数の観点から述べられています)。しかし、これではあまり意味がないので、このクラスを別の方法で定義します。
C = Pを、次の問題に還元可能な多項式時間多対1の問題のクラスとします。ブール回路φと整数K(バイナリ)が与えられた場合、φの充足割り当ての数がKに等しいかどうかを決定します。。#3SATの#P完全性を示す標準縮約により、クラスに影響を与えずにφを3CNF式に制限できます。クラスC = Pには、UPとcoNPの両方を含むUSというクラスが含まれています。
この定義では、問題はC = P-completeです。実際、C = P硬度は、クラスC = P(3CNF式を使用)の定義から簡単にわかります。
Cのメンバーシップを証明するには= Pを、私たちは与えられた二つのCNF式はかどうかを決定していると仮定φ 1とφ 2が割り当てを満たすかどうかの同じ番号を持っています。一般性を失うことなく、2つの式の変数が同じ数、たとえばnであると仮定できます。ブール回路構成φかかるNの満足割り当ての数ように、入力として1ビットをφがに等しいC 1 +(2 N - 、C 2)、ここで、C 1及びC 2割り当てを満たす数であるφ 1及びφ 2を、それぞれ、。その後の割り当て満たす数φが 2に等しく、nは場合にのみ、C 1 = C 2。
元の質問の小さなバリエーションを次に示します。ましょう、入力でoracleこと CNF場合に1を出力 F 1が有する複数CNFよりソリューション F 2。
この神託を考えると、我々は、ポリタイムマシンの構築与えられたCNFの解決策の数のコンピューティングの#のP完全問題解決することができるφを。φは指数関数的な数の解を持つことができることに注意してください。
それが解決策の既知数と式を生成し、バイナリ検索を使用し、最も多項式のクエリで尋ねることによって:として次の作品 O、それは式見つかっ φ I持っていると同じように解の数 φを。最後に見つかったソリューションの数を最終的に出力します。
これは、に複雑さ#Pがあることを示しています。