WikiDer > МАКСЭКСАТ
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
МАКСЭКСАТ проблема в теория сложности вычислений это версия максимизации задачи булевой выполнимости 3СБ. В MAXEkSAT каждое предложение имеет ровно k литералы, каждый с различными переменными, и находится в конъюнктивная нормальная форма. Они называются формулами k-CNF. Проблема состоит в том, чтобы определить максимальное количество предложений, которое может быть выполнено путем присвоения истинности переменным в предложениях.
Мы говорим, что алгоритм А обеспечивает α-приближение в MAXEkSAT, если для некоторого фиксированного положительного α меньше или равно 1, и каждая формула kCNF φ, А может найти присвоение истинности переменным φ что удовлетворит по крайней мере α-доля максимального количества выполнимых пунктов φ.
Поскольку NP-жесткий k-SAT проблема (для k ≥ 3) эквивалентно определению того, имеет ли соответствующий экземпляр MAXEkSAT значение, равное количеству предложений, MAXEkSAT также должен быть NP-трудным, что означает, что не существует алгоритма полиномиального времени, если только P = NP. Естественно, что следующий вопрос - найти приблизительные решения: какое наибольшее действительное число? α <1 так что некоторые явные P (сложность) алгоритм всегда находит решение размера α · OPT, куда OPT это (потенциально трудно найти) максимальное назначение.
Алгоритм аппроксимации
Существует простой рандомизированный алгоритм с полиномиальным временем, который обеспечивает -приближение к MAXEkSAT: независимо установить для каждой переменной значение true с вероятностью1⁄2, в противном случае установите значение false.
Любая статья c неудовлетворен, только если все его k составные литералы оцениваются как ложные. Поскольку каждый литерал в предложении имеет1⁄2 шанс получить истинное значение независимо от любого значения истинности любого из других литералов, вероятность того, что все они ложны, равна . Таким образом, вероятность того, что c действительно доволен , поэтому индикаторная переменная (то есть 1, если c верно и 0 в противном случае) имеет ожидание . Сумма всех индикаторных переменных по всем статьи , так что линейность ожидания мы удовлетворяем доля предложений в ожидании. Потому что оптимальное решение не может удовлетворить больше всего пунктов, у нас есть, что , поэтому алгоритм находит приближение к истинному оптимальному решению в ожидании.
Несмотря на свои высокие ожидания, этот алгоритм может иногда наткнуться на решения, стоимость которых ниже, чем ожидание, которое мы вычислили выше. Однако по большому количеству испытаний средняя доля удовлетворенных пунктов будет стремиться к . Это подразумевает две вещи:
- Должно существовать задание, удовлетворяющее как минимум фракция статей. Если бы не было, мы никогда не смогли бы достичь такого большого значения в среднем за большое количество испытаний.
- Если мы запустим алгоритм большое количество раз, по крайней мере половина испытаний (в ожидании) удовлетворит некоторые доля статей. Это связано с тем, что любая меньшая дробь снизит среднее значение настолько, что алгоритм должен иногда удовлетворять более 100% предложений, чтобы вернуться к своему ожиданию , чего не может быть. Расширение этого с помощью Неравенство Маркова, по крайней мере, некоторые -доля испытаний (в ожидании) удовлетворит по крайней мере -доля статей. Поэтому при любом положительном , требуется лишь полиномиальное количество случайных испытаний, пока мы не ожидаем найти задание, удовлетворяющее по крайней мере фракция статей.
Более надежный анализ (например, в [1]) показывает, что на самом деле мы будем удовлетворять по крайней мере -доля предложений постоянная часть времени (зависит только от k), без потери .
Дерандомизация
Хотя приведенный выше алгоритм эффективен, не очевидно, как избавиться от его зависимости от случайности. Испытание всех возможных случайных назначений эквивалентно наивному подходу грубой силы, поэтому может потребоваться экспоненциальное время. Один умный способ дерандомизировать указанное выше за полиномиальное время зависит от работы в коды исправления ошибок, удовлетворяя доля предложений во времени, полиномиальная в размере ввода (хотя показатель степени зависит от k).
Чтобы найти алгоритм, нам нужно одно определение и два факта.
Определение
является ℓнезависимый источник, если для равномерно выбранного случайного (Икс1, Икс2, ..., Иксп) ∈ S, Икс1, Икс2, ..., Иксп находятся ℓразумно независимый случайные переменные.
Факт 1
Обратите внимание, что такое назначение можно найти среди элементов любого ℓнезависимый источник над п бинарные переменные. Это легче увидеть, если вы поймете, что ℓ-в смысле независимый источник - это просто любой набор двоичных векторов над {0, 1}п с тем свойством, что все ограничения этих векторов на ℓ координаты должны представлять 2ℓ возможных двоичных комбинаций равное количество раз.
Факт 2
Напомним, что BCH2,м,d является линейный код.
Существует ℓразумно независимый источник размера , а именно двойник BCH2, журналп,ℓ+1 code, который является линейным кодом. Поскольку каждый Код BCH можно представить как вычислимое за полиномиальное время ограничение связанного Рид Соломон код, который сам по себе является строго явным, существует алгоритм с полиномиальным временем для нахождения такого присвоения Иксяс. Доказательство факта 2 можно найти на Dual of BCH - независимый источник.
Схема алгоритма
Алгоритм работает путем генерации BCH2, журналп,ℓ+1, вычисляя его дуал (который как набор является ℓнезависимый источник) и обработка каждого элемента (кодового слова) этого источника как присвоение истинности п переменные в φ. Хотя бы один из них удовлетворяет как минимум 1-2−ℓ пунктов φ, в любое время φ находится в форме kCNF, k = ℓ.
Связанные проблемы
Есть много проблем, связанных с выполнимостью булевых формул конъюнктивной нормальной формы.
- Проблемы с решением:
- Задачи оптимизации, цель которых - максимизировать количество удовлетворяемых пунктов:
- МАКС-СБ, и соответствующая взвешенная версия Взвешенный MAX-SAT
- МАКСИМУМ-kSAT, где в каждом пункте ровно k переменные:
- Задача частичной максимальной выполнимости (PMAX-SAT) требует максимального количества пунктов, которое может быть удовлетворено любым назначением данного подмножества пунктов. Остальные пункты должны быть выполнены.
- Задача мягкой выполнимости (soft-SAT), заданная для набора задач SAT, требует максимального количества наборов, которое может быть выполнено при любом назначении.[2]
- Проблема минимальной выполнимости.
- Задачу MAX-SAT можно распространить на случай, когда переменные проблема удовлетворения ограничений принадлежат множеству реалов. Проблема сводится к поиску наименьшего q так что q-расслабленное пересечение из ограничений не пусто.[3]
Рекомендации
- ^ «Макс-САТ» (PDF). Архивировано из оригинал (PDF) на 2015-09-23. Получено 2014-09-01.
- ^ Хосеп Аргелих и Фелип Манья. Точные решатели Max-SAT для задач с чрезмерными ограничениями. В Journal of Heuristics 12 (4) pp. 375-392. Спрингер, 2006.
- ^ Jaulin, L .; Уолтер, Э. (2002). «Гарантированная робастная нелинейная минимаксная оценка» (PDF). IEEE Transactions по автоматическому контролю. 47.