Problemem jest coNP- twardy; możesz łatwo zredukować problem UNSAT do tego problemu.
Bardziej precyzyjną charakterystyką jest to, że problemem jest C = P- zupełny. W rzeczywistości jedną z definicji klasy C = P jest to, że jest to klasa problemów, które są wielomianowe w czasie wiele-jednym, które można zredukować do tego samego problemu (zwykle ta definicja jest wyrażona w funkcji GapP ). Ale ponieważ niewiele to mówi, pozwól mi zdefiniować tę klasę w inny sposób.
Niech C = P będzie klasą problemów, które są wielomianowe w czasie wielomianowym, które można sprowadzić do następującego problemu: biorąc pod uwagę obwód logiczny φ i liczbę całkowitą K (binarnie), zdecyduj, czy liczba spełniających przypisań φ jest równa K . Dzięki standardowej redukcji, która pokazuje kompletność # P # 3SAT, możemy ograniczyć φ do formuły 3CNF bez wpływu na klasę. Klasa C = P zawiera klasę o nazwie US , która zawiera zarówno UP, jak i coNP.
Przy tej definicji twój problem to C = P-kompletny. W rzeczywistości twardość C = P jest łatwa do zauważenia z definicji klasy C = P (która wykorzystuje formuły 3CNF).
Aby udowodnić członkostwo w C = P, załóżmy, że musimy zdecydować, czy dwie dane formuły CNF φ 1 i φ 2 mają taką samą liczbę zadowalających zadań, czy nie. Bez utraty ogólności możemy założyć, że dwie formuły mają tę samą liczbę zmiennych, powiedzmy n . Skonstruuj obwód logiczny φ, który przyjmuje n +1 bitów jako dane wejściowe, tak że liczba spełniających przypisań φ jest równa c 1 + (2 n - c 2 ), gdzie c 1 i c 2być liczbami spełniających zadania odpowiednio φ 1 i φ 2 . Wtedy liczba spełniających przypisań φ jest równa 2 n wtedy i tylko wtedy, gdy c 1 = c 2 .
Oto niewielka odmiana pierwotnego pytania. Niech będzie wyrocznią, która na wejściu ( f 1 , f 2 ) wyprowadza 1, jeśli CNF f 1 ma więcej rozwiązań niż CNF f 2 .O (f1,f2) f1 f2
Biorąc pod uwagę tę wyrocznię, budujemy maszynę która może rozwiązać # P-całkowity problem obliczania liczby rozwiązań dla danej CNF φ . Zauważ, że φ może mieć wykładniczą liczbę rozwiązań.M φ φ
działa w następujący sposób: Generuje formuł o znanej liczbie rozwiązań, a stosując przeszukiwanie binarne i zadając w większości wielomianowych zapytań do O , to znajdzie formuły cp i który mataką samąliczbę rozwiązań jak cp . W końcu wyświetla liczbę właśnie znalezionych rozwiązań.M O φi φ
To pokazuje, że ma złożoność #p.MO
źródło
It seems like it's atleast NP-hard as one can easily construct a SAT formula with just one solution. Then by the Valiant-Vazirani theorem, there's a probabilistic reduction from every SAT formula to a set of Unique-SAT problems (determining whether a formula has a unique solution) and comparing those Unique-SAT problems with the constructed SAT formula with just one solution enables you to determine the satisfiability of the SAT formula under consideration.
źródło