NP- полнота

20
NP-полнота Основные NP-полные задачи

description

NP- полнота. Основные NP- полные задачи. Задача «Независимое множество». Условие. Задан граф G= ( V , E ) и целое число k . Вопрос. Существует ли независимое множество на k вершинах? - PowerPoint PPT Presentation

Transcript of NP- полнота

Page 1: NP- полнота

NP-полнота

Основные NP-полные задачи

Page 2: NP- полнота

Задача «Независимое множество»

• Условие. Задан граф G=(V,E) и целое число k.• Вопрос. Существует ли независимое множество

на k вершинах?

• Независимым множеством называется такое подмножество вершин V′ V, что любые две его вершины не соединены ребром в G.

Page 3: NP- полнота

Независимое множество

Теорема 3.1 (Karp 1972) Задача «Независимое множество»

является NP-полной.

Page 4: NP- полнота

Идея доказательства

• «Выполнимость» → «Независимое множество» • «Выполнимость»:

– множество переменных X,

– набор дизъюнкций Z ={Z1,…,Zm} c Zi={λi1,…, λiki

} (i = 1,…,m), где λij − литералы на X.

• Построим граф G, такой что G имеет независимое множество размера m тогда и только тогда, когда существует набор значений истинности, при котором выполнены все m дизъюнкций.

Page 5: NP- полнота

Сведение

• Zi: клика на ki вершинах (вершина соответствует литералу в дизъюнкции)

• Вершины разных клик связаны между собой ребром, если они соответствуют литералу и его отрицанию.

XxxxljkivvGE

kjmivGV

klijklij

iij

:&&&:,:

1 ,1::

Page 6: NP- полнота

Пример

32143233123211 ,, ,, ,, ,,, ,4 xxxZxxZxxZxxxZm

1x1x

3x

3x

3x

2x

1x

2x

2x

3x

Page 7: NP- полнота

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

• Пусть в G есть независимое множество размера m.• Тогда, оно содержит по одному элементу в

каждой клике и не содержит двух вершин, соответствующих литералу и его отрицанию.

• То есть, эти вершины определяют по литералу в каждой дизъюнкции.

• Положим каждому такому литералу значение true и дополним до набора значений истинности, который выполняет все дизъюнкции.

Page 8: NP- полнота

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

• Пусть существует набор значений истинности, при котором выполнены все m дизъюнкций.

• Выберем в каждой дизъюнкции один литерал со значением true.

• Множество соответствующих вершин определяет искомое независимое множество.

Page 9: NP- полнота

Задача «Вершинное покрытие»

• Условие. Задан граф G и целое число k.

• Вопрос. Существует ли вершинное покрытие мощности k?

• Вершинное покрытие это множество вершин V′ V такое, что каждое ребро имеет граничную точку в V′ .

Page 10: NP- полнота

Задача «Клика»

• Условие. Задан граф G и целое число k.

• Вопрос. Существует ли клика мощности k?

• Кликой называется такое подмножество вершин V′ V, что любые две его вершины соединены ребром в G.

Page 11: NP- полнота

Вершинное покрытие и клика

Теорема 3.2 (Karp 1972) Задача «Вершинное покрытие» и задача «Клика»

являются NP-полными.

Page 12: NP- полнота

Задача «Гамильтонов цикл»

• Условие. Задан граф G.

• Вопрос. Существует ли в G гамильтонов цикл?

Page 13: NP- полнота

Гамильтонов цикл

Теорема 3.3 (Karp 1972) Задача «Гамильтонов цикл» является NP-полной.

Page 14: NP- полнота

Идея доказательства

• «Вершинное покрытие» → «Гамильтонов цикл» • «Вершинное покрытие»: G = (V,E), k ≥ 0, целое.• Построим граф G′ = (V′,E′), такой что G′ имеет

гамильтонов цикл тогда и только тогда, когда в G есть вершинное покрытие H, состоящее из не более чем k элементов.

• Пусть |E| = m.

Page 15: NP- полнота

Построение графа G′

• |V′| = 12m+k

• Каждому ребру (vi, vj) в исходном графе соответствует 12 вершин uij1, uij2, uij3, uij4, uij5, uij6, uji1, uji2, uji3, uji4, uji5, uji6.

• k дополнительных вершин a1, a2,…, ak.

Page 16: NP- полнота

Компонента (vi, vj)

uij1

uij2

uij3

uij4

uij5

uij6

uji1

uji2

uji3

uji4

uji5

uji6

vi ∊ H,vj ∉ H

vi ∉ H,vj ∊ H

vi ∊ H,vj ∊ H

Page 17: NP- полнота

Компонента vi

• Пусть r степень вершины vi. Упорядочим произвольным образом ребра, инцидентные vi: (vi, vj1

), (vi, vj2),…, (vi, vjr

).

• Все компоненты, соответствующие ребрам, инцидентным vi, соединяются вместе следующими ребрами:

. 11:, 16 1

rsuu

ss ijij

Page 18: NP- полнота

Компонента вершины

uij11

uij16

uij21

uij26

uijr1

uijr6

uij31

uij36

Page 19: NP- полнота

Дополнительные вершины в G′

• Дополнительная вершина al соединена с первой и последней вершиной компоненты vi. Пусть r степень вершины vi.

.,1:,

,,1:,

6

11

Vvklua

Vvklua

iijl

iijl

r

Page 20: NP- полнота

Компонента вершины

uij11

uij16

uij21

uij26

uijr1

uijr6

uij31

uij36