Докажите NP-полноту определения выполнимости монотонной булевой формулы

12

Я пытаюсь решить эту проблему, и я действительно борюсь.

Монотонная булева формула представляет собой формулу в логике высказываний , где все литералы являются положительными. Например,

(x1x2)(x1x3)(x3x4x5)

является монотонной булевой функцией С другой стороны, что-то вроде

(x1x2x3)(¬x1x3)(¬x1x5)

не является монотонной булевой функцией.

Как я могу доказать NP-полноту для этой задачи:

Определите, выполнима ли монотонная булева функция, если переменных или меньше установлены в ?k1

Ясно, что все переменные можно просто установить положительными, и это тривиально, поэтому существует ограничение на положительно установленных переменных.k

Я пробовал сокращение от SAT до монотонной логической формулы. Одна вещь, которую я попробовал, - заменить фиктивную переменную на каждый отрицательный литерал. Например, я попытался заменить на , а затем попытался заставить и иметь разные значения. Я не совсем смог заставить это работать, хотя.¬x1z1x1z1

натуральный
источник
Добро пожаловать! Пожалуйста, будьте внимательны с языком и форматированием.
Рафаэль

Ответы:

12

«Родитель» проблемы, которую вы рассматриваете, иногда называется взвешенной удовлетворенностью (WSAT, особенно в параметризованной сложности) или минимальными (хотя обычно это версия оптимизации, но достаточно близкая). Эти проблемы имеют ограничение «не более переменных, установленное в истинное», как их определяющая особенность.k

Ограничение монотонных формул на самом деле удивительно легко показать, для чего нужно, просто нужно на мгновение выйти за рамки проблем с выполнимостью. Вместо того, чтобы пытаться изменить экземпляр SAT, мы вместо этого начинаем с Dominating Set (DS).

Посмотрим, сможете ли вы получить это оттуда. Больше в спойлерах, разбитых на куски, но избегайте их, если можете. Я не буду показывать членство в NP, у вас не должно быть проблем с этим.

Учитывая экземпляр DS (т.е. мы хотим, чтобы доминирующий набор размера не превышал для ), мы можем построить экземпляр WSAT, где формула является монотонной формулой CNF:(G,k)kG(ϕ,k)ϕ

Основная конструкция:

Для каждого у нас есть переменная , для каждого есть предложение .vV(G)vvar(ϕ)vV(G)cv=uN(v)u

Эскиз доказательства:

Каждая вершина должна находиться в доминирующем множестве или иметь соседа, поэтому если мы можем найти вершин, которые формируют доминирующий набор, соответствующие переменные могут быть установлены в true в , и каждое предложение должно содержать в хотя бы один из них. Точно так же, если существует вес удовлетворяющий присваиванию, истинные переменные соответствуют вершинам, которые мы помещаем в доминирующий набор - каждое предложение должно иметь по крайней мере один, поэтому каждый доминирует (сам по себе или иным образом).kkϕkcvv

Люк Мэтисон
источник
Вау, это имеет гораздо больше смысла, спасибо! Я думаю, что я определенно был захвачен попыткой уменьшить SAT до монотонной логической формулы.
Nat
Я также вижу, что мы можем также уменьшить покрытие вершин до монотонной логической формулы.
Nat
1
@nat действительно, переход от покрытия вершины также хорош, потому что он дает формулу в 2CNF, что интересно, поскольку 2-SAT находится в P, но монотонный WSAT с формулами 2CNF является NP-полным. По совпадению, вы также можете получить результаты антимонотон (где каждая переменная отрицается, но вы хотите по крайней мере истинных переменных) из набора Clique / Independent. Если вы особенно заинтересованы, вы можете захотеть взглянуть на параметризованную сложность, где такого рода проблемы удовлетворенности играют центральную роль. k
Люк Мэтисон
Я думаю, что точно такой же подход работает с освещением статей.
Haskell Fun
@HaskellFun, я тоже об этом думал. Крышка вершины такая же, как у монотонного Min-W2SAT.
rus9384
2

Существует простое сокращение с SAT. Введите новую переменную для представления . Учитывая формулу , мы создаем новую формулу , заменяя каждое вхождение на и добавляя выражение для каждой переменной. Мы устанавливаем равным количеству исходных переменных. Новая формула является монотонной и выполнимой, если не более k переменных имеет значение true, если и только если выполнимо. (Это потому, что непересекающихся предложений вызывает любое удовлетворительное назначение для ¬ х я ф ф ' ¬ х я г я х яг я к ф ' ф к х яг я ф 'zi¬xiϕϕ¬xizixizikϕϕkxiziϕиметь как минимум переменных для True; но тогда единственный способ получить максимум - это установить для каждой пары ровно один из них в значение true {x_i, z_i}.)кkk

Дэвид
источник