NP-полные задачи
Сложность задач n n Задачи формулируем как множества языков, распознаваемых МТ. То есть, на вход МТ подаётся «вопрос» и она отвечает «да» (входное слово распознаётся) или «нет» . Рассматриваем детерминированную машину Тьюринга (ДМТ) и недетерминированную (НМТ) Класс P – множество всех языков, допускаемых ДМТ с полиномиальной временной сложностью, т. е. {L | M ДМТ, полином p(n): временная сложность M оценивается полиномом p(n) и M распознаёт в точности L ( L(M)=L ) } Так же определяется класс NP для НМТ.
Пример задачи из класса NP Задача о клике: Вход: граф G(V, E), число k Требуется определить, содержит ли G клику (полный подграф) размером k. Алгоритм для НМТ: n n выбираем k вершин графа проверяем, что любые две вершины из выбранных соединены ребром
NP-полные задачи Определение. Язык L 0 NP называется полным для класса NP (NP-полным), если по M ДМТ, такому что L(M) = L 0, с временной сложностью T(n) и L NP можно эффективно построить M’ ДМТ, L(M’) = L с временной сложностью T(p. L(n)), где p. L(n) – полином. Говорят, что L сводиться к L 0.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. NP-полные задачи Выполнимость булевой функции Выполнимость КНФ Выполнимость 3 -КНФ Клика размером k Гамильтонов цикл в ориентированном графе Вершинное покрытие k вершинами Рёберное покрытие k рёбрами Раскраска в k цветов k вершин, разрезающих все циклы k рёбер, разрезающих все циклы Разбиение множества чисел на две части с равной суммой 12. Покрытие k множествами