В теории вычислительной сложности проблема максимальной выполнимости ( MAX-SAT ) — это проблема определения максимального числа предложений данной булевой формулы в конъюнктивной нормальной форме , которые можно сделать истинными, присваивая значения истинности переменным формулы. Это обобщение проблемы булевой выполнимости , которая спрашивает, существует ли присвоение истинности, делающее все предложения истинными.
Формула конъюнктивной нормальной формы
невыполнима: независимо от того, какие значения истинности присвоены ее двум переменным, по крайней мере одно из ее четырех предложений будет ложным. Однако возможно присвоить значения истинности таким образом, чтобы сделать три из четырех предложений истинными; действительно, каждое присвоение истинности сделает это. Следовательно, если эта формула дана как пример задачи MAX-SAT, решением задачи является число три.
Задача MAX-SAT является OptP-полной [1] и, следовательно, NP-трудной , поскольку ее решение легко приводит к решению задачи булевой выполнимости , которая является NP-полной .
Также трудно найти приближенное решение задачи, которое удовлетворяет ряду положений в пределах гарантированного отношения аппроксимации оптимального решения. Точнее, задача является APX -полной, и, таким образом, не допускает полиномиальной схемы аппроксимации, если только P = NP. [2] [3] [4]
В более общем смысле, можно определить взвешенную версию MAX-SAT следующим образом: учитывая конъюнктивную нормальную форму формулы с неотрицательными весами, назначенными каждому предложению, найти значения истинности для ее переменных, которые максимизируют объединенный вес удовлетворенных предложений. Задача MAX-SAT является примером взвешенного MAX-SAT, где все веса равны 1. [5] [6] [7]
Случайное назначение каждой переменной истинной с вероятностью 1/2 дает ожидаемую 2-аппроксимацию . Точнее, если каждое предложение имеет по крайней мере k переменных, то это дает (1 − 2 − k )-аппроксимацию. [8] Этот алгоритм можно дерандомизировать с помощью метода условных вероятностей . [9]
MAX-SAT также может быть выражен с помощью целочисленного линейного программирования (ILP). Зафиксируем конъюнктивную нормальную форму формулы F с переменными x 1 , x 2 , ..., x n , и пусть C обозначает предложения F . Для каждого предложения c в C , пусть S + c и S − c обозначают наборы переменных, которые не инвертируются в c , и те, которые инвертируются в c , соответственно. Переменные y x ILP будут соответствовать переменным формулы F , тогда как переменные z c будут соответствовать предложениям. ILP выглядит следующим образом:
Вышеуказанную программу можно упростить до следующей линейной программы L :
Следующий алгоритм, использующий эту релаксацию, является ожидаемым (1-1/ e )-приближением: [10]
Данный алгоритм также можно дерандомизировать с помощью метода условных вероятностей.
Алгоритм 1/2-аппроксимации лучше работает, когда предложения большие, тогда как (1-1/ e )-аппроксимация лучше работает, когда предложения маленькие. Их можно объединить следующим образом:
Это детерминированный фактор (3/4)-приближение. [11]
По формуле
где , (1-1/ e )-приближение установит каждую переменную в True с вероятностью 1/2, и, таким образом, будет вести себя идентично 1/2-приближению. Предполагая, что назначение x выбирается первым во время дерандомизации, дерандомизированные алгоритмы выберут решение с общим весом , тогда как оптимальное решение имеет вес . [12]
Современный алгоритм принадлежит Авидору, Берковичу и Цвику, [13] [14], и его коэффициент аппроксимации составляет 0,7968. Они также приводят другой алгоритм, коэффициент аппроксимации которого, как предполагается, составляет 0,8353.
За последние годы было разработано много точных решателей для MAX-SAT, и многие из них были представлены на известной конференции по проблеме выполнимости булевых уравнений и связанным проблемам, SAT Conference. В 2006 году на конференции SAT состоялась первая оценка MAX-SAT, сравнивающая производительность практических решателей для MAX-SAT, как это было сделано в прошлом для проблемы выполнимости псевдобулевых уравнений и проблемы квантифицированной булевой формулы . Из-за своей NP-трудности, большие экземпляры MAX-SAT в общем случае не могут быть решены точно, и часто приходится прибегать к алгоритмам приближения и эвристикам [15]
На последние оценки Max-SAT было представлено несколько решателей:
MAX-SAT — одно из расширений оптимизации задачи булевой выполнимости , которая представляет собой задачу определения того, можно ли назначить переменные данной булевой формулы таким образом, чтобы формула дала значение TRUE. Если предложения ограничены максимум 2 литералами, как в 2-выполнимости , мы получаем задачу MAX-2SAT . Если они ограничены максимум 3 литералами на предложение, как в 3-выполнимости , мы получаем задачу MAX-3SAT .
Существует много проблем, связанных с выполнимостью булевых формул в конъюнктивной нормальной форме.