Проблема в том, что coNP -hard; Вы можете легко свести проблему UNSAT к этой проблеме.
Более точная характеристика заключается в том, что проблема в C = P -полном. На самом деле, одно из определений класса C = P состоит в том, что это класс задач, многокритериальный за многочленовое время, сводимый к этой самой проблеме (обычно это определение формулируется в терминах функций GapP ). Но так как это не говорит о многом, позвольте мне определить этот класс по-другому.
Пусть C = P будет классом задач, которые многозначно за многочленное время сводятся к следующей задаче: с учетом булевой схемы φ и целого числа K (в двоичном виде) решить, равно ли число удовлетворяющих назначений φ равен K , Стандартным сокращением, которое показывает # P-полноту # 3SAT, мы можем ограничить φ формулой 3CNF, не влияя на класс. Класс C = P содержит класс с именем US , который содержит как UP, так и coNP.
С этим определением ваша проблема является C = P-полной. На самом деле, твердость C = P легко увидеть из определения класса C = P (который использует формулы 3CNF).
Чтобы доказать членство в C = P, предположим, что мы должны решить, имеют ли две данные формулы CNF φ 1 и φ 2 одинаковое число удовлетворяющих присвоений или нет. Без ограничения общности мы можем предположить, что две формулы имеют одинаковое количество переменных, скажем, n . Построить логическую схему φ, которая принимает n + 1 бит в качестве входных данных, чтобы число удовлетворяющих присвоений φ было равно c 1 + (2 n - c 2 ), где c 1 и c 2быть числами удовлетворяющих присвоений φ 1 и φ 2 , соответственно. Тогда число удовлетворяющих отведений φ равно 2 n тогда и только тогда, когда c 1 = c 2 .
Вот небольшая вариация на оригинальный вопрос. Пусть - оракул, который на входе ( f 1 , f 2 ) выдает 1, если CNF f 1 имеет больше решений, чем CNF f 2 .O (f1,f2) f1 f2
Учитывая этот оракул, мы строим многовременную машину которая может решить # P-полную задачу вычисления числа решений для данного CNF φ . Заметим, что φ может иметь экспоненциальное число решений.M φ φ
работает следующим образом: он генерирует формулы с известным числом решений и, используя бинарный поиск и, задавая большинство полиномиальных запросов к O , находит формулы φ i, которые имеютто жечисло решений, что и φ . Наконец, выводится количество только что найденных решений.M O φi φ
Это показывает, что имеет сложность #P.MO
источник
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.
источник