4635
правок
Glk (обсуждение | вклад)  (Создана новая страница размером '''<math>cal NP</math>-Полная задача''' (''<math>cal NP</math>-Complete problem'') -  такая задача <math>A</math> ...)  | 
				KEV (обсуждение | вклад)  Нет описания правки  | 
				||
| Строка 1: | Строка 1: | ||
'''<math>  | '''<math>\mathcal NP</math>-Полная задача''' (''[[NP-Complete problem|<math>\mathcal NP</math>-Complete problem]]'') - такая задача <math>A</math> из класса <math>\mathcal NP</math> всех задач,  | ||
такая задача <math>A</math> из класса <math>\  | недетерминированно разрешимых за полиномиальное время, что любая задача из <math>\mathcal NP</math> ''[[полиномиальная сводимость(трансформируемость)|полиномиально сводится]]'' к <math>A</math>. Если требование принадлежности <math>A</math> классу <math>\mathcal NP</math> не  | ||
недетерминированно разрешимых за полиномиальное время, что  | рассматривается, то используется термин ''<math>\mathcal NP</math>-трудная'' задача.  | ||
любая задача из <math>\  | |||
требование принадлежности <math>A</math> классу <math>\  | |||
рассматривается, то используется термин ''<math>\  | |||
задача.  | |||
Найдется немного научных терминов, так быстро завоевавших  | Найдется немного научных терминов, так быстро завоевавших широкую известность, как понятие "<math>{\mathcal NP}</math>-полная задача". За короткий промежуток времени с момента введения этого понятия С.Куком в начале 70-х годов оно стало символом тех трудностей, которые встречаются на пути создания достаточно общих и эффективных методов решения задач дискретной математики.  | ||
широкую известность, как понятие "<math>{\  | <math>{\mathcal NP}</math>-полные задачи являются "самыми трудными" в классе <math>{\mathcal NP}</math>.  | ||
короткий промежуток времени с момента введения этого понятия  | Если какая-нибудь <math>{\mathcal NP}</math>-полная задача может быть решена за полиномиальное время, то и любая задача из <math>{\mathcal NP}</math> полиномиально разрешима, а если какая-то задача из <math>{\mathcal NP}</math> труднорешаема, то и любая <math>{\mathcal NP}</math>-полная задача является труднорешаемой. При этом, для того чтобы доказать <math>{\mathcal NP}</math>-полноту некоторой задачи из <math>{\mathcal NP}</math>, достаточно показать, что какая-то из  | ||
С.Куком в начале 70-х годов оно стало символом тех  | <math>{\mathcal NP}</math>-полных задач полиномиально сводится к ней.  | ||
трудностей, которые встречаются на пути создания достаточно  | |||
общих и эффективных методов решения задач дискретной  | |||
математики.  | |||
<math>{\  | |||
трудными" в классе <math>{\  | |||
Если какая-нибудь <math>{\  | |||
задача может быть решена за полиномиальное время, то и любая задача из  | |||
<math>{\  | |||
труднорешаема, то и любая <math>{\  | |||
труднорешаемой. При этом, для того чтобы доказать <math>{\  | |||
некоторой задачи из <math>{\  | |||
<math>{\  | |||
Вопрос о взаимоотношении классов <math>{\  | Вопрос о взаимоотношении классов <math>{\mathcal P}</math> и <math>{\mathcal NP}</math> имеет  | ||
фундаментальное значение, но все еще открыт. Известно, что  | фундаментальное значение, но все еще открыт. Известно, что  | ||
<math>{\  | <math>{\mathcal P}\subseteq {\mathcal NP}</math> и если <math>L\in {\mathcal NP}</math>, то существует такой полином <math>p(n)</math> и ''ДМТ'' <math>M</math>, что <math>L</math> допускается на <math>M</math> с [[временная сложность|временной сложностью]] <math>O(2^{p(n)})</math>. Однако до сих пор не доказано, содержит класс <math>{\mathcal NP}</math> труднорешаемые задачи или нет, т.е. <math>{\mathcal NP\setminus P}\neq \emptyset</math> или <math>{\mathcal NP=P}</math>. Вместе с тем известно, что в предположении <math>{\mathcal P}\neq {\mathcal NP}</math> класс <math>{\mathcal NP}</math> не просто содержит два непересекающихся подкласса: класс <math>{\mathcal P}</math> и класс <math>{\mathcal NP}</math>-полных задач, а также должен включать задачи, не принадлежащие ни одному из этих подклассов (т.е. при <math>{\mathcal P}\neq  | ||
такой полином <math>p(n)</math> и ''ДМТ'' <math>M</math>, что <math>L</math> допускается на <math>M</math> с временной  | {\mathcal NP}</math> должны существовать задачи из <math>{\mathcal NP}</math>, которые  | ||
сложностью <math>O(2^{p(n)})</math>. Однако до сих пор  | неразрешимы за полиномиальное время и не являются <math>{\mathcal NP}</math>-полными).  | ||
не доказано, содержит класс <math>{\  | |||
т.е. <math>{\  | |||
известно, что в предположении <math>{\  | |||
не просто содержит два непересекающихся подкласса: класс <math>{\  | |||
класс <math>{\  | |||
принадлежащие ни одному из этих подклассов (т.е. при <math>{\  | |||
{\  | |||
неразрешимы за полиномиальное время и не являются <math>{\  | |||
NP}</math>-полными).  | |||
Известна <math>{\  | Известна <math>{\mathcal NP}</math>-полнота сотен задач.  | ||
Среди них:  | Среди них:  | ||
(''Гамильтонов цикл'').  | (''[[Гамильтонов цикл]]'').  | ||
Имеет ли данный неориентированный граф гамильтонов  | Имеет ли данный [[неориентированный граф]] гамильтонов цикл?  | ||
цикл?  | |||
(''Раскрашиваемость'').  | (''Раскрашиваемость'').  | ||
Является ли данный неориентированный граф  | Является ли данный неориентированный граф  | ||
<math>k</math>-раскрашиваемым?  | [[k-раскрашиваемый граф|<math>k</math>-раскрашиваемым]]?  | ||
(''Множество вершин, разрезающих контуры''). Имеет ли данный  | (''[[Множество вершин, разрезающих контуры]]''). Имеет ли данный  | ||
ориентированный граф <math>k</math>-элементное множество вершин, ''разрезающих'' все его контуры, т.е. содержащих хотя бы по одной вершине каждого из них?  | [[ориентированный граф]] <math>k</math>-элементное множество вершин, ''разрезающих'' все его контуры, т.е. содержащих хотя бы по одной вершине каждого из них?  | ||
(''Множество дуг, разрезающих контуры''). Имеет ли данный  | (''[[Множество дуг, разрезающих контуры]]''). Имеет ли данный  | ||
ориентированный граф <math>k</math>-элементное множество дуг,  | ориентированный граф <math>k</math>-элементное множество дуг,  | ||
''разрезающих'' все его контуры, т.е. содержащих хотя бы по одной  | ''разрезающих'' все его контуры, т.е. содержащих хотя бы по одной  | ||
дуге каждого из них?  | дуге каждого из них?  | ||
(''Ориентированный гамильтонов цикл''). Имеет ли данный ориентированный  | (''Ориентированный [[гамильтонов цикл]]''). Имеет ли данный ориентированный  | ||
граф ориентированный гамильтонов цикл?  | граф ориентированный гамильтонов цикл?  | ||
(''Разбиение'').  | (''[[Разбиение]]'').  | ||
Существует ли разбиение данного конечного множества  | Существует ли разбиение данного конечного множества  | ||
элементов, имеющих неотрицательный вес, на два подмножества, равных по  | элементов, имеющих неотрицательный вес, на два подмножества, равных по  | ||
суммарному весу составляющих их элементов?  | суммарному весу составляющих их элементов?  | ||
(''Изоморфизм неориентированному подграфу''). Содержит ли данный  | (''[[Изоморфизм неориентированному подграфу]]''). Содержит ли данный  | ||
неориентированный граф <math>G</math>  | неориентированный граф <math>G</math>  | ||
подграф, изоморфный данному неориентированному графу <math>H</math>?  | [[подграф]], изоморфный данному неориентированному графу <math>H</math>?  | ||
(''Остовное дерево ограниченной степени''). Существует ли в данном  | (''[[Остовное дерево ограниченной степени]]''). Существует ли в данном  | ||
неориентированном графе остовное дерево, в котором все вершины имеют  | неориентированном графе [[остовное дерево]], в котором все [[вершина|вершины]] имеют  | ||
степень не более <math>k</math>?  | [[степень вершины|степень]] не более <math>k</math>?  | ||
(''Минимальный эквивалентный по  достижимости  ориентированный  | (''[[Минимальный эквивалентный по  достижимости  ориентированный  | ||
граф''). Можно ли удалить из данного ориентированного графа  | граф]]''). Можно ли удалить из данного ориентированного графа  | ||
часть дуг так, чтобы отношение достижимости между вершинами  | часть [[дуга|дуг]] так, чтобы отношение [[достижимая вершина|достижимости]] между вершинами  | ||
не изменилось, но результирующий граф содержал бы не более  | не изменилось, но результирующий граф содержал бы не более  | ||
<math>k</math> дуг.  | <math>k</math> дуг.  | ||
(''Самый длинный путь''). Имеется ли в данном неориентированном графе  | (''[[Самый длинный путь]]''). Имеется ли в данном неориентированном графе  | ||
простой путь длины не меньше <math>k</math>?  | [[простой путь]] [[длин пути|длины]] не меньше <math>k</math>?  | ||
(''Доминирующее множество''). Существует ли в данном неориентированном  | (''[[Доминирующее множество]]''). Существует ли в данном неориентированном  | ||
графе доминирующее множество, состоящее из не более <math>k</math> вершин?  | графе доминирующее множество, состоящее из не более <math>k</math> вершин?  | ||
(''3-раскрашиваемость''). Можно ли данный неориентированный граф раскрасить  | (''[[3-Раскрашиваемость|3-раскрашиваемость]]''). Можно ли данный неориентированный граф раскрасить  | ||
в три цвета?  | в три цвета?  | ||
(''Нумерация графа по Гранди''). Можно ли сопоставить с вершинами данного  | (''[[Нумерация графа по Гранди]]''). Можно ли сопоставить с вершинами данного  | ||
ориентированного графа <math>G=(V,A)</math> различные неотрицательные числа таким  | ориентированного графа <math>G=(V,A)</math> различные неотрицательные числа таким  | ||
образом, чтобы для каждого <math>p\in V</math> число <math>F(p)</math>, сопоставленное с  | образом, чтобы для каждого <math>p\in V</math> число <math>F(p)</math>, сопоставленное с  | ||
| Строка 96: | Строка 70: | ||
множеству <math>\{ F(q):q\in V, (p,q)\in A\}</math>?  | множеству <math>\{ F(q):q\in V, (p,q)\in A\}</math>?  | ||
(''Минимум суммы квадратов''). Может ли данное конечное множество <math>A</math>  | (''[[Минимум суммы квадратов]]''). Может ли данное конечное множество <math>A</math>  | ||
элементов, имеющих неотрицательный размер <math>S(a)</math>, быть разбито на <math>k</math>  | элементов, имеющих неотрицательный размер <math>S(a)</math>, быть разбито на <math>k</math>  | ||
подмножеств <math>A_1,\ldots, A_k</math> так, чтобы <math>\sum^{k}_{i=1}\left(  | подмножеств <math>A_1,\ldots, A_k</math> так, чтобы <math>\sum^{k}_{i=1}\left(  | ||
| Строка 102: | Строка 76: | ||
положительные числа?  | положительные числа?  | ||
(''Расщепление множества''). Существует ли разбиение данного конечного  | (''[[Расщепление множества]]''). Существует ли разбиение данного конечного  | ||
множества <math>A</math> на два таких, что ни одно из них не содержит ни одного  | множества <math>A</math> на два таких, что ни одно из них не содержит ни одного  | ||
из элементов заданного семейства подмножеств <math>A</math>?  | из элементов заданного семейства подмножеств <math>A</math>?  | ||
См. также ''Задача о вершинном покрытии, Задача о выполнимости, Задача о клике, Задача о неэквивалентности регулярных выражений, Задача о разбиении, Задача о точном покрытии 3-множествами,  | ==См. также ==  | ||
Задача о трехмерном сочетании, Классы <math>\  | ''[[Задача о вершинном покрытии]], [[Задача о выполнимости]], [[Задача о клике]], [[Задача о неэквивалентности регулярных выражений]], [[Задача о разбиении]], [[Задача о точном покрытии 3-множествами]], [[Задача о трехмерном сочетании]], [[Классы P и NP|Классы <math>\mathcal P</math> и <math>\mathcal NP</math>]], [[Задача легко разрешимая]], [[Метод локальной замены]], [[Метод построения компонент]], [[Задача распознавания свойств]], [[Метод сужения задачи]], [[Полиномиальная сводимость (трансформируемость)]], [[NP-Полная задача|<math>\mathcal NP</math>-полная задача]], [[Труднорешаемая задача]].''  | ||
Метод сужения задачи, Полиномиальная сводимость (трансформируемость), <math>\  | |||
==Литература==  | ==Литература==  | ||
[Ахо-Хопкрофт-Ульман],  | [Ахо-Хопкрофт-Ульман],  | ||