4.5. Список задач класса NP
В этот список попадают следующие задачи:
• Разрешимость логического выражения.
• Трехцветная раскраска графа.
• Построение клики из вершин на неориентированном графе.
• Покрытые множеств: пусть давно семейство подмножеств некоторого множества требуется найти подсемейство из такое, что
• Разбиение множества: то же условие, что и в предыдущем случае, но, кроме того, обязательно требуется (для всяких принадлежащих
Существование гамильтонова цикла на неориентированном графе.
• Задача о рюкзаке: для переменных принимающих значения 0 и 1, найти решение уравнения
В более общем виде это решение диофантова уравнения (т. е. уравнения в целых числах).
• Разбиение на две части: пусть дано чисел у,- из множества требуется разбить их на два непересекающихся подмножества таких, что
• Существование на ориентированном графе такого имеющего вид цикла маршрута коммивояжера, общая стоимость которого меньше заданного числа
Данный список можно продолжить: большая часть современных задач фактически относится к классу Кроме того, не следует забывать, что названные задачи являются модельными. Каждой из них соответствует несколько реальных формулировок условий задачи, таких, как упорядочение операций; распределение персонала; оптимизация перевозок, ректификации, размещения предприятий; управление производством; проектирование в области электроники или архитектуры.
Чтобы доказать, что некоторая задача из данного списка принадлежит классу достаточно выписать недетерминированный алгоритм, который решает с полиномиальной сложностью. Например, рассмотрим задачу существования на ориентированном графе гамильтонова цикла со стоимостью, меньшей или равной
(см. скан)
Каждая копия этого алгоритма действительно приводит к полиномиальному числу шагов, точнее причем независимо от значения следовательно, задача существования цикла стоимостью, не большей попадает в класс
Замечание. Задача об оптимальном гамильтоновом цикле не попадает в класс . В самом деле, в качестве подзадачи в нее входит доказательство несуществования циклов, по стоимости превышающих Следовательно, к классу NP эта задача не относится. Она является дополнительной по отношению
к рассмотренной выше, так как теперь мы отыскиваем те циклы, которые не являются решениями той задачи. Однако нельзя утверждать, что если некоторая задача принадлежит классу то и дополнительная к ней задача тоже входит в
На первый взгляд такое положение не соответствует “интуиции”, поскольку в классе Р аналогичное утверждение является справедливым. Но перейти к дополнительной задаче в классе NP означает поменять местами в соответствующем недетерминированном алгоритме все случаи успехов и неудач. Для задачи конечный успех означает неудачу во всех ветвях исходного недетерминированного алгоритма. Следовательно, для получения ответа нужно подождать, пока закончат работу все Сложности суммируются, а поскольку число не обязательно полиномиально, ничто не обеспечивает того, чтобы при
В частности, для задачи существования на графе гамильтонова цикла стоимостью, не меньшей нам не удается написать соответствующий недетерминированный алгоритм; следовательно, данная задача не относится к классу NP и главным образом потому, что разность между и реальной стоимостью некоторого гамильтонова цикла заранее может быть сколь угодно велика (она не ограничена полиномом, зависящим от числа городов, которые нужно посетить). Итак, задача об оптимальном маршруте коммивояжера не попадает в класс
Из задач на оптимизацию в класс NP попадает только задача поиска существования решения с заданной стоимостью. В общем случае задача оптимизации в настоящее время не может быть отнесена к какому-либо классу.