Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » В.А. Носов - Основы теории алгоритмов и анализа их сложности (курс лекций)

В.А. Носов - Основы теории алгоритмов и анализа их сложности (курс лекций), страница 18

Описание файла

PDF-файл из архива "В.А. Носов - Основы теории алгоритмов и анализа их сложности (курс лекций)", который расположен в категории "лекции и семинары". Всё это находится в предмете "теория интеллектуальных систем" из седьмого семестра, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 18 страницы из PDF

Основные NP -полные задачи. Сильная NP -полнота1°. В данном разделе устанавливается NP -полнота некоторых известных вразличных приложениях задач, Предпочтение отдается графическим задачам какнаиболее наглядным. Доказательство получается преобразованием врассматриваемую задачу другой задачи, NP -полнота которой установлена. Длязадач с целочисленными параметрами вводится важное понятие - сильная NP полнота.1. Пусть f ( x1,..., xn ) - формула от булевых переменных x1,..., xn вконъюнктивной нормальной форме, где каждая дизъюнкция имеет не более, чемтри вхождения переменных.

Задача проверки выполнимости таких формулназывается задачей 3-выполнимости (идентифика-тор: 3ВЫП).Доказательство.Утверждение 1. Задача 3ВЫП является NP -полной.Достаточно доказать, что ВЫП ∝ 3ВЫП. Пусть F= D1 D2... Dm индивидуальная задача выполнимость от переменных x1,..., xn . ПустьDi = z1 ∨ z2 ∨...∨ zk и k >3, i ∈1,m . ПоложимDi′ = ( z1 ∨ z2 ∨ y1 )( y1 ∨ z3 ∨ y2 )( y2 ∨ z4 ∨ y3 )......( y k −5 ∨ zk −3 ∨ yk −4 )( y k −4 ∨ zk −2 ∨ yk −3 )( y k −3 ∨ zk −1 ∨ zk ) ,где y1 , y2,..., yk −3 - новые переменные.Покажем, что Di выполнено ⇔ ∃ значение y1 , y2,..., yk −3что Di′ выполненоDi не выполнено ⇔ ∀ значений y1 , y2,..., yk −3Di′ не выполненоИмеем Di =0 ⇒ z1 ∨ z2 ∨...∨ zk =0 ⇒ Di′ = y1 ( y1 ∨ y2 )( y2 ∨ y3 )...... ( y k −4 ∨ yk −3 ) y k −3 = 0∀ y1 , y2,..., yk −3Di =1 ⇒ z1 ∨ z2 ∨...∨ zk =1 ⇒ ∃ izi = 1, i ∈1,kУкажем значения переменных y1 , y2,..., yk −3 выполняющиеDi′ :z1 =1z2 =1z3 =1z4 =1y1 y2 y3 ...

yk −3000000100110... 0... 0... 0... 0100......zk =11 1 1 ... 1Проделаем теперь процедуру замены каждой дизъюнкции Di на Di′ длякаждого i ∈1,m с условием k >3. Получим задачу 3-выполнимости заполиномиальное время. По доказанному имеем ВЫП ∝ 3ВЫП. Утверждениедоказано.Замечание. Можно доказать, что задача 2-выполни-мости лежит в классе Р.2. Рассмотрим графическую задачу: по произвольному графу G(V,E) ичислу k узнать, имеется ли в графе G полный подграф с k вершинами (клика).(Граф называется полным, если любые две вершины соединены ребром).(Идентификатор: КЛИКА).Доказательство.Утверждение 2. Задача КЛИКА является NP -полной.Ясно, что КЛИКА ∈NP, т.к. словом-отгадкой для задачи служит список вершин,составляющих клику и детерминированный алгоритм за полиномиальное времяпроверяет наличие ребра между каждой парой вершин.Покажем, что ВЫП ∝ КЛИКА.Пусть F= D1D2...

Dk - произвольная индивидуальная задача ВЫП. Строимсоответствующий граф G F следующим образом:Каждому вхождению переменной в F сопоставим вершину графа иприсвоим ей обозначение ( xα ,i ), где xα - вхождение переменного (α∈<0,1>), i номер соответствующей дизъюнкции. Вершины ( xα ,i ) и ( y β ,j) соединим ребромв том и только в том случае, когда i ≠ j и xα не есть отрицание y β (т.е. x ≠ y или,если x = y, то α = β ). Допустим, что F - выполнила и пусть x10 ,..., xn0 соответствующий выполняющий набор. В каждом сомножителе F есть вхождениепеременной, обратившее его в 1. Выберем по одному такому вхождению изкаждой дизъюнкции. Рассмотрим соответствующее множество k вершин графаG F и покажем, что любые две такие вершины соединены ребром. Действительно,для вершин ( xα ,i ) и ( y β ,j) нет соединяющего ребра лишь в случае i = j либоxα = y β .

Но i ≠ j, т.к. вхождения переменных взяты из разных дизъюнкций. Еслиxα = y β , то одно и то же значение переменного x не может одновременнообратить в 1 xα и y β . Значит, из выполнимости F следует наличие кликиразмера k в G F .Обратно, пусть G F содержит клику размера k. Пусть это набор вершинαα1k( xi 1 , j1 ),...,( xi k , jk ) . Покажем, что формула F выполнима. Положимαqxiq = α q, q ∈1,k , и тогда xiq= 1 . Значения остальных переменных положим101произвольно.

Противоречия в выборе значений переменных нет, т.к. если ( xα , r)и ( x β , s) соединены ребром, то α = β.По построению G F вершинам соответствуют вхождения переменных изразных дизъюнкций и т.к. число вершин равно k, то каждая дизъюнкция имеетвхождение переменного, обращающего в 1 при данных значениях переменных,значит и F обращается в 1. Построение G F проводится за полиномиальное времяи, следовательно, ВЫП ∝ КЛИКА. Утверждение доказано.3. Говорят, что некоторое множество вершин V1 ⊆V графа G(V,E) образуетвершинное покрытие графа, если для любого ребра е∈Е найдется инцидентнаяему вершина v∈ V1 этого множества. Задача о вершинном покрытии(Идентификатор: ВП) состоит в том, чтобы по произвольному графу G(V,E) ичислу k узнать, имеет ли граф вершинное покрытие мощности k.Утверждение 3.

Задача ВП является NP -полной.Доказательство. Ясно,что ВП ∈NP , т.к. словом-догадкой является список вершин соответствующеговершинного покрытия и правильность ответа проверяется за полиномиальноевремя. Покажем, чтоКЛИКА ∝ ВП.Для графа G(V,E) строим граф G ′ , являющийся дополнением G до полногографа (т.е. G ′ =(V, E′ ), где e∈ E′ ⇔ e∈E). Покажем, чтоА есть полный ⇔ дополнение A ′ =V \Aподграф в Gесть ВП в G ′Действительно, пусть полный подграф с множеством вершин А лежит в G.Тогда если бы для ребра ( v1, v2 ) графа G ′ выполнялось бы v1 ∈А и v2 ∈A, тодолжно быть, что ребра ( v1, v2 ) нет в G. Значит, A ′ =V \A - вершинное покрытиедля G ′ .Обратно, если A ′ образует вершинное покрытие графа G ′ , то всякое ребро,оба конца которого находятся в А, не может принадлежать G ′ и содержится в G,т.е.

в G имеется полный подграф с множеством вершин A. Итак, задача о k вершинном полном подграфе сводится к задаче о вершинном покрытиимощности k ′ = n − k, n = V . Утверждение доказано.4. Говорят, что множество вершин V1 ⊆V графа G(V,E) независимо, еслиникакие две вершины из V1 не связаны ребром. Задача о независимом множествевершин (Идентификатор: НВ) заключается в том, чтобы для произвольного графаG(V,E) и целого числа k выяснить, существует ли в G независимое множество из kвершин.Утверждение 4. Задача НВ является NP -полной.Доказательствоаналогично предыдущему.Приведем теперь без доказательства некоторые известные NP -полныепроблемы.

За доказательствами можно обратиться к книге [4].1025. Задача ГАМИЛЬТОНОВ ЦИКЛ (Идентификатор: ГЦ). Дляпроизвольного графа G(V,E) требуется узнать, существует ли перестановкавершин i1, i2,..., i n , n = V , такая, что выполнено:( i1, i2 ) ∈ E, ( i2, i3 ) ∈ E,...,( in−1, in ) ∈ E, ( in , i1 ) ∈ E .(Ясно, что это перефразировка задач о гамнльтоновости бинарного отношения).6. Задача ЦЕЛОЧИСЛЕННЫЙ РЮКЗАК (Идентификатор: ЦР).

Дляпроизвольных натуральных чисел c j , j ∈1,n и k требуется узнать, существует линабор целых чисел x j ≥0, j ∈1,n , что выполненоn∑ j =1 c j x j= k.Вариантом данной задачи является (0,1) -рюкзак, в которой требуется установитьсуществование (0,1) -чисел x j , j ∈1,n с условиемn∑ j =1 c j x j= k.7. Множество ребер, разрезающих циклы. Для произвольного графа G(V,E)и целого числа k выяснить, существует ли множество E′ ⊆Е, такое, что E′ =k икаждый цикл графа G(V,E) содержит ребро из E′ .8. Множество вершин, разрезающих циклы.

То же, но только теперь ищетсяподмножество множества вершин.9. Изоморфизм подграфу. Для заданных двух графов G(V1,E1) иH(V2,E2) выяснить, содержит ли граф G подграф, изоморфный H.10. Проблема разрешимости диофантовых уравнений (в стандартномдвоичном кодировании данных) видаax2 + bx + c = 0, a,b,c ∈ Z.В настоящее время известно большое число NP -полных задач из разныхобластей дискретной математики (несколько тысяч). Мы ограничимсяприведением результата, полученного Шеффером Т.И. (1978), дающегобесконечную серию NP -полных проблем.Пусть S= {R1,..., R m } - любое конечное множество логических отношений.Логическое отношение определяется как некоторое подмножество из < 0,1 > kдля некоторого целого k ≥1, при этом k называется рангом отношения. ОпределимS-формулу как произвольную конъюнкцию скобок, каждая вида R i (ξ 1 , ξ 2,...) ,где ξ 1, ξ 2,...

- переменные, число которых соответствует рангу R i , i ∈1,m .Проблема S-выполнимости это проблема разрешения является ли данная Sформула выполнимой.Пример, пусть R(x, y, z) - 3-местное логическое отношение с таблицейистинности{(1,0,0),(0,1,0),(0,0,1)}.Тогда формула R(x, y, z)R(x, y, u)R(u, u, y) выполнима и (x, y, z, u)=(0,1,0,0) - еевыполняющий набор.103Результат Шеффера состоит в том, что проблема S-выполнимостиполиномиально разрешима, если множество удовлетворяет по крайней мереодному из приводимых ниже условий 1)-6). В противном случае проблема NP полна.1) Каждое отношение R i , i ∈1,m из S 0-выполнимо, т.е. (0,0,...,0)∈ R i .2) Каждое отношение R i , i ∈1,m из S 1-выполнимо, т.е. (1,1,...,1)∈ R i .3) Каждое отношение R i , i ∈1,m из S слабо положительно, т.е.

Свежие статьи
Популярно сейчас