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