42
правки
Изменения
Нет описания правки
Задача #MON-CNF является #P-трудной
Сведем ее к задаче вычисления гиперобъема.
<tex>f = \bigwedge \limits _{k=1}^n \bigvee_{i \in C_k} x_i</tex>
<tex> \overline{f} = \bigvee \limits _{k=1}^n \bigwedge_{i \in C_k} \not x_i</tex>
поэтому далее будем работать с <tex>\overline{f}</tex>.и для каждого клоза <tex>\bigwedge_{i \in C_k} \neg x_i</tex> построим гиперкуб <tex>A_k = [0,a^k_1]\times...\times[0,a^k_d]</tex>
где
<tex>C_1 = \{x\}</tex> будет соответствовать клоз <tex>\neg x_1</tex>
а <tex>C_2 = \{1,2\}</tex> клоз <tex>\neg x_1 \wedge \neg x_2</tex>. Заметим, что объединение гиперкубов <tex>A_k</tex> может быть записано как объединение гиперкубов вида <tex>B_{x_1,...x_d} = [x_1,x_1 + 1]\times ... \times [x_d, x_d + 1]</tex>, где <tex>x_i \in \{0,1\}, i \in [d]</tex>.