Проблема в том, что 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 .