22. Np- полные задачи. Теорема Кука-Карпа-Левина. Np-полнота задачи о клике
Задача называется NP-полной, если к ней полиномиально сводится любая задача из NP.
Если хотя бы одна NP-полная задача полиномиально разрешима, то P = NP
NP-полные задачи – это самые сложные задачи (не удастся найти для неё полиномиальный алгоритм) Если А – NP- полная и AB, то В – NP- полная
1)Задача “3-Выполнимость”
Вход: булева функция f(x1,…,xn), заданная в виде КНФ, причем все ЭД содержат ровно 3 переменные.
Вопрос: существует ли такие x1,…,xn , что f(x1,…,xn)=1?
2)Задача “Клика”
Вход: граф G и натуральное число k
Вопрос: содержит ли граф клику размера k?
3)Задача “Вершинное покрытие”
Вход: граф G и натуральное число k
Вопрос: содержит ли граф вершинное покрытие размера k?
4)Задача “3-мерное сочетание”
Вход: Множество MXYZ, |X|=|Y|=|Z|=q
Вопрос: существует ли подмножество NM такое, что |N| = q и никакие два элемента из N не имеют ни одной равной координаты (т.е. для любых (a,b,c), (u,v,w)N,a≠u,b≠v,c≠w)?
5)Задача “Гамильтонов цикл”
Вход: граф G
Вопрос: существует ли цикл, проходящий через каждую вершину графа ровно 1 раз (гамильтонов цикл)
6)Задача “Разбиение”
Вход: массив X из n натуральных чисел x1,…,xn
Вопрос: можно ли разбить X на два подмассива Y и Z таких, что суммы их элементов равны?
Задача “Выполнимость”
Вход: булева функция f(x1,…,xn), заданная в виде КНФ
Вопрос: существует ли такие x1,…,xn , что f(x1,…,xn)=1?
Теорема Кука-Карпа-Левина. Задача “SAT”(Задача “Выполнимость”) является NP-полной.
Теорема. Задача “Клика” является NP-полной.
Доказательство.
Докажем сначала, что “Клика”NP. Сведем к задаче “Клика” задачу “3-выполнимость”. Пусть F= C1&…&Ck – вход задачи “3-выполнимость”,
где Сi – это ЭД.
Литерал – это либо переменная, либо отрицание переменной.
Каждая ЭД Ci содержит ровно 3 литерала. Посторим граф G следующим образом. и если и только если rs и литералы, соответствующие этим вершинам, не являются отрицаниями друг друга.
Теперь нам нужно показать, что F выполнима тогда и только тогда, когда в построенном графе есть клика порядка k. Пусть F выполнима. Тогда после подстановки соответствующего набора переменных в каждой ЭД должен быть истинный литерал. Пусть это литералы . Покажем, что - клика. Действительно, все эти литералы взяты из разных ЭД. Кроме того, они все равны 1 => никакие 2 из них не могут быть отрицаниями друг друга.
Обратно, пусть в построенном графе есть клика порядка k. Эта клика содержит ровно по одной вершине из каждой тройки. Если литерал, соответствующий вершине клики – это отрицание, то присвоим соответствующей переменной значение 0. Если же этот литерал – не отрицание, то присвоим значение 1. Могло бы получиться противоречие, если бы в клику входили два литерала, один из которых равен x1, а другой – отрицанию x1. Но такого не будет по определению графа.
- 1.Трудоемкость алгоритмов
- 2.Алгоритмы сортировки
- 3.Сортировка слиянием
- 4.Бинарные поисковые деревья
- 5.2-3-4 Деревья
- 6.Хеширование
- 7. Поиск подстроки. Алгоритм Кнута-Морриса- Пратта.
- 8. Графы. Структуры данных для представления графов
- 9. Алгоритм нахождения Эйлерова цикла
- 10 .Поиск в ширину(волновой алгоритм)
- 11.Поиск в глубину
- 12.Жадные алгоритмы и матроиды
- 13.Задача об остовном дереве. Алгоритмы Прима и Краскала, их реализация
- 14. Алгоритм Дийкстры
- 15. Алгоритм Флойда
- 16. Паросочетания в двудольных графах
- 17. Потоки и разрезы в сетях. Алгоритм Форда-Фалкерсона
- 18. Задача о рюкзаке
- 21. Классы p и np. Полиномиальное сведение.
- 22. Np- полные задачи. Теорема Кука-Карпа-Левина. Np-полнота задачи о клике
- 23. Алгоритмы с гарантированной оценкой точности. Задача упаковки
- 24.Метод локального поиска и поиска с запретами. Задача о максимальном разрезе.
- 25.Метод ветвей и границ. Задача коммивояжера.
- 26. Задача коммивояжера с неравенством треугольника. Алгоритм Кристофидеса
- 27.Задача о независимом множестве, точные и эвристические алгоритмы ее решения
- 28.Задача о раскраске графа, точные и эвристические алгоритмы ее решения.
- 31.Задача о раскраске хордальных графов
- 32.Генетические алгоритмы
- 33. Page Rank
- 34 Криптосистема с открытым ключом. Криптосистема rsa
- 35.Задача разделения секрета.
- 36. Алгоритмы сжатия информации