NP-полная задача: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Строка 7: | Строка 7: | ||
'''Задачей распознавания''' для языка <math>L</math> называется определение того, принадлежит ли данное слово языку <math>L</math>. |
'''Задачей распознавания''' для языка <math>L</math> называется определение того, принадлежит ли данное слово языку <math>L</math>. |
||
Пусть <math>L_1</math> и <math>L_2</math> два языка над алфавитом <math>\Sigma</math>. Язык <math>L_1</math> называется [[Сведение по Карпу|сводимым (по Карпу)]] к языку <math>L_2</math>, если существует [[функция (математика)|функция]], <math>f: \Sigma^* \to \Sigma^*</math>, вычислимая за [[класс P|полиномиальное время]], обладающая следующим свойством: |
Пусть <math>L_1</math> и <math>L_2</math> - два языка над алфавитом <math>\Sigma</math>. Язык <math>L_1</math> называется [[Сведение по Карпу|сводимым (по Карпу)]] к языку <math>L_2</math>, если существует [[функция (математика)|функция]], <math>f: \Sigma^* \to \Sigma^*</math>, вычислимая за [[класс P|полиномиальное время]], обладающая следующим свойством: |
||
* <math>x\in L_1 </math> тогда и только тогда, когда <math>f(x)\in L_2</math>. Сводимость по Карпу обозначается как <math>L_1 {\le}_p L_2</math> или <math>L_1 \varpropto L_2</math>. |
* <math>x\in L_1 </math> тогда и только тогда, когда <math>f(x)\in L_2</math>. Сводимость по Карпу обозначается как <math>L_1 {\le}_p L_2</math> или <math>L_1 \varpropto L_2</math>. |
||
Версия от 09:51, 24 января 2014
В теории алгоритмов NP-полная задача — задача из класса NP, к которой можно свести любую другую задачу из класса NP за полиномиальное время. Таким образом, NP-полные задачи образуют в некотором смысле подмножество «самых сложных» задач в классе NP; и если для какой-то из них будет найден «быстрый» алгоритм решения, то и любая другая задача из класса NP может быть решена так же «быстро».
Формальное определение
Алфавитом называется всякое конечное множество символов (например, {} или {}). Множество всех возможных слов (конечных строк, составленных из символов этого алфавита) над некоторым алфавитом обозначается . Языком над алфавитом называется всякое подмножество множества , то есть .
Задачей распознавания для языка называется определение того, принадлежит ли данное слово языку .
Пусть и - два языка над алфавитом . Язык называется сводимым (по Карпу) к языку , если существует функция, , вычислимая за полиномиальное время, обладающая следующим свойством:
- тогда и только тогда, когда . Сводимость по Карпу обозначается как или .
Язык называется NP-трудным, если любой язык из класса NP сводится к нему. Язык называют NP-полным, если он NP-труден, и при этом сам лежит в классе NP.
Таким образом, если будет найден алгоритм, решающий некоторую (любую) NP-полную задачу за полиномиальное время, то все NP-задачи окажутся в классе P, то есть будут решаться за полиномиальное время.
NP-полнота в сильном смысле
Задача называется NP-полной в сильном смысле, если у неё существует подзадача, которая:
- не является задачей с числовыми параметрами (т.е. максимальное значение величин, встречающихся в этой задаче, ограничено сверху полиномом от длины входа),
- принадлежит классу NP,
- является NP-полной.
Класс таких задач называется NPCS. Если гипотеза P ≠ NP верна, то для NPCS задачи не существует псевдополиномиального алгоритма.
Гипотеза P ≠ NP
Вопрос о совпадении классов P и NP уже более 30 лет является открытой проблемой. Научное сообщество склоняется к отрицательному ответу на этот вопрос[1] — в этом случае решать NP-полные задачи за полиномиальное время не удастся.
Примеры NP-полных задач
- Задача о выполнимости булевых формул
- Кратчайшее решение «пятнашек» размера
- Задача коммивояжёра
- Проблема Штейнера
- Проблема раскраски графа
- Задача о вершинном покрытии
- Задача о покрытии множества
- Задача о клике
- Задача о независимом множестве
- Сапер (игра)
- Тетрис[2]
См. также
Примечания
- ↑ William I. Gasarch (2002). "The P=?NP poll" (PDF). SIGACT News. 33 (2): 34—47. doi:10.1145/1052796.1052804.
- ↑ Erik D. Demaine, Susan Hohenberger, David Liben-Nowell. Tetris is Hard, Even to Approximate (англ.). preprint.
Литература
- Томас Х. Кормен и др. Глава 34. NP-полнота // Алгоритмы: построение и анализ = INTRODUCTION TO ALGORITHMS. — 2-е изд. — М.: «Вильямс», 2006. — С. 1296. — ISBN 0-07-013151-1.
Ссылки
- NP-полнота
- Вычислительная сложность игр и головоломок (англ.)
- A compendium of NP optimization problems. Editors — Pierluigi Crescenzi, Viggo Kann (англ.)
Это заготовка статьи по информатике. Помогите Википедии, дополнив её. |