Проблема полягає в тому CONP -Жорсткий; ви можете легко звести проблему 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 .