NP-
Download
1 / 20

NP- полнота - PowerPoint PPT Presentation


  • 123 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' NP- полнота' - fredricka-elijah


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

NP-полнота

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


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

  • Условие.Задан граф G=(V,E) и целое число k.

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

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


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

Теорема 3.1 (Karp 1972)

Задача «Независимое множество» является NP-полной.


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

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

  • «Выполнимость»:

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

    • набордизъюнкций Z ={Z1,…,Zm} c Zi={λi1,…, λiki} (i = 1,…,m), где λij− литералы на X.

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


Сведение

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

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



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

  • Пусть в Gесть независимое множество размера m.

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

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

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


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

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

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

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


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

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

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

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


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

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

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

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


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

Теорема 3.2 (Karp 1972)

Задача «Вершинное покрытие» и задача «Клика» являются NP-полными.


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

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

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


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

Теорема 3.3 (Karp 1972)

Задача «Гамильтонов цикл» является NP-полной.


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

  • «Вершинное покрытие» → «Гамильтонов цикл»

  • «Вершинное покрытие»:G = (V,E),k ≥ 0, целое.

  • Построим граф G′ = (V′,E′), такой что G′ имеет гамильтонов цикл тогда и только тогда, когда в G есть вершинное покрытиеH, состоящее из не более чем kэлементов.

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


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

  • |V′| = 12m+k

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

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


V i v j
Компонента (vi, vj)

uij1

uji1

uij2

uji2

uij3

uji3

uij4

uji4

uij5

uji5

uij6

uji6

vi ∊H,

vj ∉H

vi ∉H,

vj ∊H

vi ∊H,

vj ∊H


Компонентаvi

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

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


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

uijr1

uij11

uij21

uij31

uij16

uijr6

uij26

uij36


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

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


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

uijr1

uij11

uij21

uij31

uij16

uijr6

uij26

uij36