4194
правки
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>\ | |||
==Литература== | ==Литература== | ||
[Ахо-Хопкрофт-Ульман], | [Ахо-Хопкрофт-Ульман], |