Задача о выполнимости: различия между версиями

Перейти к навигации Перейти к поиску
нет описания правки
Нет описания правки
Нет описания правки
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
'''Задача о выполнимости''' (''[[Satisfiability problem]]'') - одна из основных [[NP-полная задача|''<math>\mathcal NP</math>-полных'' задач]]. Формулируется следующим образом.
'''Задача о выполнимости''' (''[[Satisfiability problem]]'') одна из основных [[NP-Полная задача|''<math>\mathcal NP</math>-полных'' задач]]. Формулируется следующим образом.


У с л о в и е. Задано множество булевых переменных <math>V</math> и правильно построенное булево выражение <math>E</math> над <math>V</math>.
У с л о в и е. Задано множество булевых переменных <math>V</math> и правильно построенное булево выражение <math>E</math> над <math>V</math>.
Строка 7: Строка 7:
Можно показать, что даже при более жестких ограничениях на вид формулы задача выполнимости булевых формул также <math>{\mathcal NP}</math>-полна.
Можно показать, что даже при более жестких ограничениях на вид формулы задача выполнимости булевых формул также <math>{\mathcal NP}</math>-полна.


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


Строка 15: Строка 15:


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




==См. также==  
==См. также==  
''[[Задача о вершинном покрытии]], [[Задача о клике]], [[Задача о неэквивалентности регулярных выражений]], [[Задача о разбиении]], [[Задача о точном покрытии 3-множествами]], [[Задача о трехмерном сочетании]], [[Классы P и NP|Классы <math>\mathcal P</math> и <math>\mathcal NP</math>]], [[Метод локальной замены]], [[Метод построения компонент]], [[Метод сужения задачи]], [[Полиномиальная сводимость (трансформируемость)]], [[NP-Полная задача|<math>\mathcal NP</math>-полная задача]], [[Труднорешаемая задача]].''
* ''[[Задача о вершинном покрытии]],''
* ''[[Задача о клике]],''
* ''[[Задача о неэквивалентности регулярных выражений]],''
* ''[[Задача о разбиении]],''
* ''[[Задача о точном покрытии 3-множествами]],''
* ''[[Задача о трехмерном сочетании]],''
* ''[[Классы P и NP|Классы <math>\mathcal P</math> и <math>\mathcal NP</math>]],''
* ''[[Метод локальной замены]],''
* ''[[Метод построения компонент]],''
* ''[[Метод сужения задачи]],''
* ''[[Полиномиальная сводимость (трансформируемость)]],''
* ''[[NP-Полная задача|<math>\mathcal NP</math>-полная задача]],''
* ''[[Труднорешаемая задача]].''
==Литература==
==Литература==
[Ахо-Хопкрофт-Ульман],
* Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. —  М.: Мир, 1979.


[Касьянов/95]
* Касьянов В.Н.  Лекции по теории формальных языков, автоматов и сложности вычислений. — Новосибирск: НГУ, 1995.

Навигация