Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 2010.doc
Скачиваний:
49
Добавлен:
20.06.2014
Размер:
1.53 Mб
Скачать

Взаимоотношение между классами p и np

Вопрос об этом взаимоотношении играет фундаментальную роль в теории NP полных задач. Одно соотношение известно точно . Действительно, если задача разрешима полиномиальным детерминированным алгоритмом, то недетерминированный алгоритм может быть получен следующим образом: в качестве указанной структурыSвозьмём пустую структуру, а на стадии проверки используем полиномиальный детерминированный алгоритм решения задачи.

Имеется много причин считать, что написанное неравенство является строгим, т.е. класс P не совпадает с NP. Недетерминированные полиномиальные алгоритмы являются более мощными, чем полиномиальные детерминированные алгоритмы, и не известны общие методы превращения первого в последний. Самый сильный из известных в настоящее время результатов состоит в следующем:

Теорема 1:

Если , то существует такой полином p, что П может быть решена детерминированным алгоритмом с временной сложностью O(2p(n)).

Доказательство:

Пусть A – полиномиальный недетерминированный алгоритм решения задачи П.q(n)– полином, ограничивающий время работы алгоритмаA. Не теряя общности, можно сказать, чтоqможет быть вычислен за полиномиальное время. Этого можно добиться, взяв, например,при достаточно большихc1иc2. По определению класса NP для каждого входа длиныnнайдётся некоторое слово-догадка длины не более чемq(n). При этом алгоритмAна стадии проверки даст ответ “да” не более чем заq(n)шагов. Таким образом, общее число догадок, которое необходимо рассмотреть, не превосходитkq(n), гдеk– количество символов в собственном алфавитеVмашины Тьюринга. Теперь можно детерминированным образом выяснить, имеет ли алгоритмAна заданном входе длиныnпринимающее вычисление. Для этого достаточно на каждой изkq(n)догадок запустить детерминированную стадию проверки алгоритмаA. При этом мы позволим алгоритму работать либо до момента, когда он остановится, либо когда он сделаетq(n)шагов. Описанный моделирующий алгоритм выдаёт ответ “да”, если ему встретится слово-догадка, приводящее к принимающему вычислению с временем работы не более чемq(n), иначе ответом будет “нет”. Этот алгоритм является детерминированным решением задачиПи его временная сложность будет равнаq(n)kq(n). При подходящем выборе полиномаp(n), эта величина не превосходитO(2p(n)) ч.т.д.

Большое количество задач, типа КОММИВОЯЖЁР или ИЗОМОРФИЗМ ПОДГРАФУ, принадлежат NP, и, несмотря на длительные рассмотрения этих задач большим количеством исследователей, полиномиального алгоритма до сих пор не найдено, поэтому широко распространено мнение, что NPP. Хотя доказательство этого факта до сих пор отсутствует, со значительной долей уверенности можно предполагать, что класс NP имеет структуру:

Лекция 6 Полиномиальная сводимость и np-полные задачи

Будем говорить, что имеет место полиномиальная сводимость языка к языку, если существует функция, которая удовлетворяет двум условиям:

1. Существует ДМТ-программа, вычисляющая функцию с временной сложностью, ограниченной полиномом.

2. Для любого ,.

Полиномиальная сводимость обозначается значком «». L1L2.

Лемма 1:

Если L1L2, то ( также эквивалентно высказывание).

Доказательство:

Пусть и– алфавиты языковL1иL2, а функцияосуществляет полиномиальную сводимость. Пусть M – ДМТ-программа вычисленияf,M2– полиномиальная ДМТ-программа распознанияL2. Полиномиальная ДМТ-программа распознаванияL1может быть получена композицией программ M и M2. Ко входуприменяем программу M для того, чтобы построить. Затем кf(x)применяется программаM2, которая выясняет справедливость отношения. Так как по определению сводимости, то описанная ДМТ-программа распознает языкL1. Полиномиальность этой программы следует из полиномиальности программMиM2. Точнее, еслиpиp2полиномы, ограничивающие время работы программMиM2, то, и, следовательно, время работы только что определённой программы ограничено функцией, которая является полиномом от длиныxч.т.д.

Если П1иП2– задачи распознавания,e1иe2– их схемы кодирования, то будем писать(относительно заданных схем кодирования), если существует полиномиальная сводимость языкак. На уровне задач полиномиальная сводимость задачи распознаванияП1к задаче распознаванияП2означает наличие функции, удовлетворяющей двум условиям:

1) fвычисляется полиномиальным алгоритмом.

2) Для всех ,.

ПРИМЕР

Пусть G=(V, E) – граф с множеством вершинVи рёберE.Простым цикломв графеGназывается такая последовательность <v1, v2, … , vk> различных вершин из V, что,-1, и.

Гамильтоновым цикломв графеGназывается простой цикл, содержащий все вершины G.

Задача распознавания ГАМИЛЬТОНОВ ЦИКЛ (ГЦ) формулируется так:

Задан граф G=(V, E).

Вопрос:Верно ли, что графGсодержит гамильтонов цикл?

Покажем, что ГЦ сводится к задаче КОММИВОЯЖЁР. Для этого требуется указать функцию f, переводящую каждую индивидуальную задачуIиз задачи ГЦ в некоторую индивидуальную задачу из задачи КОММИВОЯЖЁР;fдолжна удовлетворять двум условиям, записанным ранее.

Пусть G=(V, E),|V|=mопределяет фиксированную индивидуальную задачу из массовой задачи ГЦ. Соответствующая индивидуальная задача из массовой задачи КОММИВОЯЖЁР определяется следующим образом. Множество городовCсовпадает с множеством вершин графаV. Для любых двух городов расстояниеd(vi, vj)=1, если существует ребро в исходном графе (). Если ребро отсутствует, то соответствующее расстояние равно 2. В качестве границыBберётся величинаm.

На неформальном уровне легко показать, что построенная функция преобразования fосуществляет сводимость и может быть вычислена за полиномиальное время. Для вычислениярасстояний необходимо лишь выяснить принадлежность каждой пары вершин множествуE, т.е. не более указанного количества раз просмотреть это множество. Само вычисление значенияmтребует только однократного просмотра множестваV, т.е. полиномиальные преобразования здесь очевидны. Для проверки справедливости второго требования необходимо показать, что графGсодержит гамильтонов цикл тогда и только тогда, когда вf(G) имеется проходящий через все города маршрут длины, не превосходящийB. Покажем это:

Пусть <v1, v2, …, vm>– гамильтонов цикл в графеG, тогда<v1, v2, …, vm>– маршрут длиныmв задаче коммивояжёрf(G). Это так, поскольку для любой пары(vi, vi+1)и пары(vm, v1) имеются рёбра в исходном графеG, т.е. расстояния между городами равны 1.

Обратно:

Пусть <vi1, vi2, …, vim>– маршрут вf(G), длина которого не превосходитB. Поскольку данный маршрут содержит ровноmпар городов, между которыми перемещается коммивояжёр, а любое расстояние в этой задаче не менее чем 1, то длина данного маршрута точно равнаm. Следовательно, расстояние между каждой парой городов равно 1, это означает, что между каждой парой соответствующих вершин графа имеется ребро. Поэтому набор<vi1,vi2, …,vim> определяет гамильтонов цикл в исходном графеG.

Итак, нами доказано, что ГЦ КОММИВОЯЖЁР. В приведённом доказательстве имеются все элементы доказательства полиномиальной сводимости одной задачи к другой. Этот пример может служить моделью доказательства в общем случае.

Отношение полиномиальной сводимости особенно удобно, поскольку является транзитивным. Это устанавливает следующая лемма.

Лемма 2:

Если и, то.

Доказательство:

Пусть – алфавиты языковL1, L2, L3, функцияреализует, а функцияреализует. Тогда функция, которая для всехопределяется соотношениемf(x) = f2(f1(x)), реализует полиномиальную сводимость. Действительно,f(x)L3 x L1, а полиномиальность вычисления функцииfдоказывается рассуждениями, аналогичными в приведённой лемме 1.

Языки L1 и L2(соответственно задачи распознаванияП1 и П2) полиномиально эквивалентны, если они сводятся друг к другу, т.е.и. Лемма 2 означает, что отношение полиномиальной сводимости является отношением эквивалентности. Кроме того, отношение сводимости определяет частичное упорядочивание возникающих классов эквивалентности языков (задач распознавания). На самом деле классP– «наименьший» относительно этого частичного порядка класс эквивалентности, и с вычислительной точки зрения его можно рассматривать как класс «самых лёгких» языков (задач распознавания). КлассNP-полных языков (задач распознания) даёт нам другой класс эквивалентности. В этом классе содержатся самые трудные языки (задачи распознавания) из классаNP.

ЯзыкLназываетсяNP-полным, еслиLNPи любой другой языкLNPсводится к L. Исходя из свойств полиномиальной сводимости, можно сказать, чтоNP-полные задачи являются самыми трудными задачами классаNP, поскольку полиномиальное решение любой задачи означает полиномиальное решение всех задач классаNP. С другой стороны, если хотя бы одна задача классаNP

труднорешаема, то и все NP-полные задачи труднорешаемы. Предположим, чтоPNP, тогда можно дать следующую уточнённую характеристику классаNP.

Показано, что помимоPиNPCкласса должны существовать задачи изNP, неразрешимые за полиномиальное время и не являющиесяNP-полными. Нас в основном будут интересовать задачи из классаNP-полных задач. Для доказательстваNP-полноты любой задачи, нужно показать, что к ней полиномиально сводятся все задачи классаNP.

Лемма 3:

Если L1, L2NP, L1NPC и , тоL2NPC.

Доказательство:

Поскольку L1NPC, то LNP L L1, тогда согласно лемме 2 имеем, что любая задача изNPсводится к L2, т.е.L2NPC.

На уровне задач распознавания эта лемма указывает простой путь доказательства NP-полноты, если нам известна хотя бы однаNP-полная задача.

Для доказательства NP-полноты задачиПнеобходимо показать:

1) П NP.

2) Какая либо известная NP-полная задача полиномиально сводится к задаче П.

Наличие класса NP-полных задач доказывает теорема Кука.