Полиномиальные сводимости и NP-полные задачи. Классы NP, coNP, NPC/Полнота/3ESAT — различия между версиями
Материал из DISCOPAL
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
Строка 24: | Строка 24: | ||
== Один литерал в скобке-дизъюнкции. == | == Один литерал в скобке-дизъюнкции. == | ||
− | * | + | * <m>\{x_k\}</m> |
− | * 3-КНФ может быть истинна ←→ | + | * 3-КНФ может быть истинна ←→ <m>x_k = 1\;\forall k</m>; |
− | ** проверяем, что | + | ** проверяем, что <m>\nexists\:i, j:\:x_i \equiv\bar x_j</m> |
** иначе → сразу невыполнима. | ** иначе → сразу невыполнима. | ||
− | * Подстановка | + | * Подстановка <m>x_k = 1</m> |
** Выкидываем | ** Выкидываем | ||
− | *** все дизъюнкции, содержащие литерал | + | *** все дизъюнкции, содержащие литерал <m>x_k</m> |
− | *** все литералы | + | *** все литералы <m>\bar x_i</m>, |
+ | *** выполнимость получившейся КНФ равносильна выполнимости исходной | ||
* Повторяем, пока не избавимся от дизъюнкций из одного литерала. | * Повторяем, пока не избавимся от дизъюнкций из одного литерала. | ||
Версия 23:42, 2 марта 2022
- Заголовок
- Полиномиальные сводимости и NP-полные задачи. Классы NP, coNP, NPC/Полнота/3ESAT
- Автор
- Стас Фомин
- Нижний колонтитул
- Полиномиальные сводимости и NP-полные задачи. Классы NP, coNP, NPC/Полнота/3ESAT
- Дополнительный нижний колонтитул
- Стас Фомин, 06:38, 3 марта 2022
Содержание
Постановка.
3SAT.
3SAT или «3-Выполнимость» — частный случай задачи SAT, в которой все дизъюнкции имеют не более чем три терма.
Однако, показано, что несмотря на это ограничение, 3SAT является NP-полной задачей.
3ESAT.
Частный случай 3SAT, когда в каждой скобке ровно три литерала[1].
NP?…
- ?
- Что будет сертификатом?
NP!.
Cертификат → вектор, на котором формула истинна.
Кого сводим к ней?.…
- 3SAT
- Проблемы:
- Скобки из
- одного литерала
- двух литералов
- Скобки из
Один литерал в скобке-дизъюнкции.
- 3-КНФ может быть истинна ←→ ;
- проверяем, что
- иначе → сразу невыполнима.
- Подстановка
- Выкидываем
- все дизъюнкции, содержащие литерал
- все литералы ,
- выполнимость получившейся КНФ равносильна выполнимости исходной
- Выкидываем
- Повторяем, пока не избавимся от дизъюнкций из одного литерала.
Каждую дизъюнкцию 3-КНФ, содержащую 2 литерала: $\alpha = (x\wedge y)$ заменяем на две: $\beta = (x\wedge y\wedge z)\vee (x\wedge y\wedge\bar z)$. Тогда $\alpha\equiv\beta$.
Итого за полиномиальное время получаем КНФ из $3ESAT$, выполнимость которой равносильна выполнимости исходной.- ↑ разумеется, три разных литерала! Т.е. нельзя , можно