Задача о выполнимости

Материал из WikiGrapp
Версия от 13:57, 11 февраля 2011; KEV (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Задача о выполнимости (Satisfiability problem) — одна из основных [math]\displaystyle{ \mathcal NP }[/math]-полных задач. Формулируется следующим образом.

У с л о в и е. Задано множество булевых переменных [math]\displaystyle{ V }[/math] и правильно построенное булево выражение [math]\displaystyle{ E }[/math] над [math]\displaystyle{ V }[/math].

В о п р о с. Существует ли набор значений переменных множества [math]\displaystyle{ V }[/math], при котором выражение [math]\displaystyle{ E }[/math] выполнено, т.е. принимает значение "истина"?

Можно показать, что даже при более жестких ограничениях на вид формулы задача выполнимости булевых формул также [math]\displaystyle{ {\mathcal NP} }[/math]-полна.

Булева формула находится в конъюнктивной нормальной форме (КНФ), если она представляет собой произведение сумм литералов, где каждый литерал имеет вид [math]\displaystyle{ x }[/math] или [math]\displaystyle{ \lnot x }[/math] для некоторой переменной [math]\displaystyle{ x }[/math]. Задача выполнимости формул, находящихся в КНФ, [math]\displaystyle{ {\mathcal NP} }[/math]-полна.

Говорят, что булева формула находится в [math]\displaystyle{ k }[/math]-конъюнктивной нормальной форме ([math]\displaystyle{ k }[/math]-КНФ), если она представляет собой произведение сумм, состоящих не более чем из [math]\displaystyle{ k }[/math] литералов. Задача [math]\displaystyle{ k }[/math]-выполнимости ([math]\displaystyle{ k }[/math]-ВЫП) состоит в выяснении выполнимости формулы, находящейся в [math]\displaystyle{ k }[/math]-КНФ.

Для [math]\displaystyle{ k=1 }[/math] и 2 известны полиномиальные алгоритмы, проверяющие [math]\displaystyle{ k }[/math]-выполнимость, т.е. 1-ВЫП, 2-ВЫП [math]\displaystyle{ \in \mathcal NP }[/math]. Ситуация изменяется при [math]\displaystyle{ k=3 }[/math], поскольку задача о 3-выполнимости является [math]\displaystyle{ {\mathcal NP} }[/math]- полной.


См. также

Литература

  • Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. — М.: Мир, 1979.
  • Касьянов В.Н. Лекции по теории формальных языков, автоматов и сложности вычислений. — Новосибирск: НГУ, 1995.