Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дроздов С. Комбинаторные задачи и элементы теории вычислительной сложности.DOC
Скачиваний:
159
Добавлен:
02.05.2014
Размер:
648.7 Кб
Скачать

2.5. Теорема Кука

Эта теорема (S.A.Cook, 1971г.) – тот самый первый шаг, о котором говорилось выше: доказательство NP-полноты одной конкретной задачи.

Как вообще можно доказать сводимость всех NP-задач к данной задаче? Можно воспользоваться определениемNP-задачи: для нее имеется НМТ, принимающая индивидуальные задачи за полиномиальное время. А каждую НМТ можно описать, закодировав ее правила перехода. ТогдалюбуюNP-задачу можно сформулировать следующим образом. Дано описание НМТ для данной массовой задачиZи дано описание индивидуальной задачиz Î Zв виде записи с длинойlна ленте этой НМТ. Верно ли, что существует допустимое вычисление этой НМТ при этом исходном состоянии ленты, которое не более, чем заP(l)тактов приводит в состояниеqy? Заметьте, что специфика конкретной задачиZздесь исчезла, или вернее – она закодирована в правилах НМТ. Назовем такую «универсальную»NP-задачуZ0.

Теперь нам нужно сделать следующее. Нужно выбрать некоторую задачу распознавания Z1и предложить алгоритм, который за полиномиальное (относительноl) время будет переводить описание индивидуальной задачиz0 Î Z0в описание эквивалентной индивидуальной задачиz1 Î Z1. Тогда ясно, что задачаZ1являетсяNP-трудной, поскольку мы фактически умеем полиномиально сводить к ней любуюNP-задачу.

Рассмотрим задачу о выполнимости КНФ.

Даны переменные X = {xi, i=1...N}и конъюнктивная нормальная форма (КНФ)G(X). Существует ли такой планX, для которогоG(X) = 1?

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

Приведем эскиз доказательства (т.е. не будем добиваться полной строгости рассуждений, но покажем их общий ход).

Пусть n– число состояний НМТ,m– число букв ленточного алфавита,l– длина описания некоторой индивидуальнойNP-задачиz Î Zна ленте НМТ,P(l)– полином из определенияNP-задачи (т.е. это верхняя оценка числа тактов, за которые НМТ принимает любую индивидуальную задачуz Î Z, имеющую длинуlи ответ «Да».) Введем три набора булевых переменных, которые в совокупности описывают функционирование заданной НМТ.

1) {Qik, 0£i£P(l), 0£k£n};Qik = 1, если на тактеiНМТ находится в состоянииk.

2) {Hij, 0£i£P(l), -P(l)£j£P(l)};Hij = 1, если на тактеiтекущей ячейкой ленты является ячейкаj.

3) {Aijr, 0£i£P(l), -P(l)£j£P(l), 0£r£m};Aijr = 1, если на тактеiв ячейкеjзаписана букваar.

Любой набор значений переменных Qik, Hij, Aijrописывает некоторое вычисление НМТ, т.е. одну ветвь дерева вычислений НМТ, включая ее начальное состояние и все переходы. Но не любой набор значений описывает корректное поведение машины, некоторые наборы могут описывать такую чушь, как одновременное пребывание в нескольких состояниях, несколько букв в одной ячейке, неправильные переходы и т.п. Чтобы выделить допустимые вычисления НМТ, следует наложить еще некоторые условия на значения переменных. Таковые условия можно объединить в 6 групп. Опишем их сначала словесно.

1.На любом такте работы НМТ находится ровно в одном состоянии.

2.На любом такте работы головка НМТ находится ровно в одной позиции ленты.

3.На любом такте работы каждая ячейка ленты содержит ровно одну букву ленточного алфавита.

4.На тактеi = 0НМТ находится в состоянииq0, головка на ячейке 1, на ленте записано описание решаемой индивидуальной задачи.

5.Не позднее, чем черезP(l)тактов НМТ приходит в состояниеqy(принимает задачу).

6.Все изменения конфигурации НМТ между тактамиiиi+1происходят в соответствии с правилами перехода данной НМТ.

Такое подробное изложение довольно очевидных вещей нужно для того, чтобы от словесных условий перейти к формально заданным.

Для формализации условий корректности вполне подходит аппарат КНФ. Выпишем соответствующие КНФ.

1.(Qi0 Ú Qi1 Ú ... Ú Qin) & (~Qi0 Ú ~Qi1) & (~Qi0 Ú ~Qi2) & ... & (~Qi,n-1 Ú ~Qi,n), 0£i£P(l)(т.е. хотя бы однаQijистинна, но не две одновременно!).

2.Аналогичная конструкция для переменныхHij.

3.ДляAijrтак же по смыслу, только индексов больше:(Aij0 Ú Aij1 Ú ... Ú Aijm) & (~Aij0 Ú ~Aij1) & ... & (~Ai,j,m-1 Ú ~Ai,j,m), 0£i£P(l), -P(l)£j£P(l).

4. Q00 & H01 & A0,1,v1 & A0,1,v2 & ... & A0,l,vl & A0,l+1,0.

Здесь av1, av2, ... avl- входное слово на ленте (описание решаемой задачи).

5.QP(l),1(полагая, что принимающее состояниеqyпронумеровано какq1).

6.Это условие следует разбить на два:

6.1.Если на тактеiголовканенаходится в позицииj, то буква в этой ячейке не изменится при переходе к тактуi+1.

~Aijr Ú Hij Ú Ai+1,j,r , 0£i£P(l), -P(l)£j£P(l), 0£r£m.

Эта дизъюнкция кажется несколько загадочной, однако заметим, что ее отрицание означало бы следующее: в ячейке jбыла букваar, головки там не было, но буква изменилась! Ясно, что этого не может быть, поэтому записанная дизъюнкция истинна.

6.2.Если на тактеiНМТ была в состоянииqk, головка находилась в позицииjи там была записана букваar, то на тактеi+1НМТ должна оказаться в одной из тех конфигураций(q'k, j', a'r), которые получаются применением одного из правил перехода этой НМТ с подходящей левой частью:

~Qik Ú ~Hij Ú ~Aijr Ú (Hi+1,j'Qi+1,k'Ai+1,j,r' Ú Hi+1,j''Qi+1,k''Ai+1,j,r'' Ú …)

Здесь 0£i£P(l), -P(l)£j£P(l), 0£k£n, 0£r£m.

Индексы с разным числом штрихов относятся к правым частям различных правил перехода с одной и той же левой частью. Выражение в скобках не находится в конъюнктивной нормальной форме. В ходе приведения этого выражения к КНФ его длина может сильно возрасти, однако можно показать, что длина выражения остается ограниченной некоторым полиномом от l.

Только в условии 6.2 фигурируют правила перехода конкретной НМТ.

Наконец, соединим все выписанные выражения из всех 6 групп с помощью операций конъюнкции. Результатом будет КНФ G(Q, H, A), зависящая как от рассматриваемой массовой задачиZ, так и от ее индивидуального представителяz.

Предположим, эта КНФ выполнима, т.е. существует набор Qik, Hij, Aijr, выполняющий все 6 условий. Но по смыслу условий это означает, что существует принимающее вычисление НМТ, т.е. исходная задача распознаванияΠZимеет ответ «Да». И наоборот, если существует принимающее вычисление, то его ход можно закодировать набором переменныхQik, Hij, Aijr, которые по построению будут выполнять КНФG(Q, H, A). Тем самым мы доказали эквивалентность задачиzи задачи о выполнимости КНФG(Q, H, A). Таким образом, задачаZбыла сведена к задачи о выполнимости (сокращенно – задаче ВЫП). Было ли это сведение полиномиальным по времени относительноl? Да, ибо все сведение задачи заключалось просто в выписывании логических выражений, длина и количество которых ограничены полиномом отl.

Поскольку Z– произвольная задача изNP, то доказана полиномиальная сводимость любойNP-задачи к задаче ВЫП. В то же время задача ВЫП, очевидно, проверяема за полиномиальное время (на самом деле даже за линейное: для проверки нужно просто подставить значения переменных в КНФ и убедиться, что все элементарные дизъюнкции истинны), а потому эта задача принадлежитNP. Значит, задача ВЫП являетсяNP-полной, что и требовалось доказать.