1 / 20

NP- полнота

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

Download Presentation

NP- полнота

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Задача «Независимое множество» • Условие.Задан граф G=(V,E) и целое число k. • Вопрос.Существует ли независимое множество на k вершинах? • Независимым множеством называется такое подмножество вершин V′ V, что любые две его вершины не соединены ребром в G.

  3. Независимое множество Теорема 3.1 (Karp 1972) Задача «Независимое множество» является NP-полной.

  4. Идея доказательства • «Выполнимость» → «Независимое множество» • «Выполнимость»: • множество переменных X, • набордизъюнкций Z ={Z1,…,Zm} c Zi={λi1,…, λiki} (i = 1,…,m), где λij− литералы на X. • Построим граф G, такой что G имеет независимое множество размера m тогда и только тогда, когда существует набор значений истинности, при котором выполнены все mдизъюнкций.

  5. Сведение • Zi: клика на kiвершинах (вершина соответствует литералу в дизъюнкции) • Вершины разных клик связаны между собой ребром, если они соответствуют литералу и его отрицанию.

  6. Пример

  7. Доказательство • Пусть в Gесть независимое множество размера m. • Тогда, оно содержит по одному элементу в каждой клике и не содержит двух вершин, соответствующих литералу и его отрицанию. • То есть, эти вершины определяют по литералу в каждой дизъюнкции. • Положим каждому такому литералу значение trueи дополним до набора значений истинности, который выполняет все дизъюнкции.

  8. Доказательство • Пусть существует набор значений истинности, при котором выполнены все mдизъюнкций. • Выберем в каждой дизъюнкции один литерал со значением true. • Множество соответствующих вершин определяет искомое независимое множество.

  9. Задача «Вершинное покрытие» • Условие.Задан граф G и целое число k. • Вопрос.Существует ли вершинное покрытие мощности k? • Вершинное покрытие это множество вершин V′ V такое, что каждое ребро имеет граничную точку в V′.

  10. Задача «Клика» • Условие.Задан граф G и целое число k. • Вопрос.Существует ли клика мощности k? • Кликой называется такое подмножество вершин V′ V, что любые две его вершины соединены ребром в G.

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

  12. Задача «Гамильтонов цикл» • Условие.Задан граф G. • Вопрос.Существует ли в G гамильтонов цикл?

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

  14. Идея доказательства • «Вершинное покрытие» → «Гамильтонов цикл» • «Вершинное покрытие»:G = (V,E),k ≥ 0, целое. • Построим граф G′ = (V′,E′), такой что G′ имеет гамильтонов цикл тогда и только тогда, когда в G есть вершинное покрытиеH, состоящее из не более чем kэлементов. • Пусть |E| = m.

  15. Построение графа G′ • |V′| = 12m+k • Каждому ребру (vi, vj) в исходном графе соответствует 12 вершин uij1, uij2, uij3, uij4, uij5, uij6, uji1, uji2, uji3, uji4, uji5, uji6. • kдополнительных вершин a1, a2,…, ak.

  16. Компонента (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

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

  18. Компонента вершины uijr1 uij11 uij21 uij31 uij16 uijr6 uij26 uij36

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

  20. Компонента вершины uijr1 uij11 uij21 uij31 uij16 uijr6 uij26 uij36

More Related