
- •Методическое пособие по дисциплине Теория сложности вычислений
- •6.080200 Прикладная математика
- •Симферополь, 2004
- •Основные понятия теории алгоритмической
- •Сложности решения дискретных задач
- •1.Алгоритм
- •2. Класс p и эффективные вычисления
- •Значение разбиения задач на классы по сложности становится понятным, если рассмотреть следующие практические соображения.
- •3. Недетерминированные алгоритмы и класс np.
- •4. Класс nр - полных задач
- •Теорема 4.1 [1].
- •5. Теорема Кука: первая nр - полная задача
- •Теорема_5.1. (Сoоk s.A., 1971).
- •Введем вспомогательную функцию
- •6. Другие nр- полные задачи.
- •7. Пример доказательства np- полноты задачи методом сведения.
- •8. Список nр- полных задач.
- •9. Матроиды и жадные алгоритмы.
- •Задача 9.2. Дана матрица с целыми неотрицательными
- •Задача 9.3. Дано конечное множество е, семейство его подмножеств ( - булеан множества е) и функция
- •Множество b j не будет содержаться во множестве s, выбранном
- •Содержание
8. Список nр- полных задач.
Ниже приведена лишь небольшая часть задач. NР- полнота кото-рых установлена [1]. Эти задачи могут использоваться для доказа-тельства NР- полноты других задач и представляют известный прак-тический интерес.
8.1. Задача выполнимости КНФ.
8.2. Задача выполнимости 3-КНФ, когда дизъюнкция КНФ содержит не более 3 литералов.
8.3. Задача построения минимальной дизъюнктивной нормальной формы.
8.4. Истинность булевой формулы с кванторами вида
где
-
логические переменные;
-
один из кванторов или . - булева формула.
8.5. Задача о существовании конечного автомата не более чем с k внутренними состояниями, распознающего заданное подмножество последовательностей.
8.6. Существование бинарного дерева (БРД) решений не более чем с
листьями и задача синтеза БРД с минимальным числом листьев.
8.7. Задача о существовании вершинного покрытия графа мощности k.
8.8. Задача о раскраске графа в k цветов (каждая пара вершин, соеди-ненных дугой, - в разные цвета).
8.9. Задача о существовании гамильтонова цикла в графе и задача коммивояжера.
8.10. Задача распознавания в заданном графе Г1 подграфа, изо-морфного заданному графу Г2.
8.11. Задача о существовании в графе с размеченными дугами разреза с суммой весов дуг не меньшей k.
8.12. Задача о многопроцессорном расписании с заданным дирек-тивный сроком.
8.13. Задача составления учебного расписания. [1, стр. 311].
8.14. Задача целочисленного линейного программирования,
8.15. Задача о ранце (иногда называется также задачей о рюкзаке ).
8.16. Разрешимость квадратных диофантовых уравнений.
8.17. Разрешимость алгебраического уравнения и поле GF(2).
8.18. Задача о покрытии множества не более чем k его подмно-
жествами.
9. Матроиды и жадные алгоритмы.
Рассмотрим следующую задачу.
Задача 9.1.
Дана матрица с целыми неотрицательными
коэффициентами
.
Требуется найти такое подмножество ее
элементов, что: а) в каждом столбце
матрицы содержится не более одного
элемента из этого подмножества и б)
сумма выбранных элементов максимальна.
Эквивалентная формулировка этой задачи имеет вид:
Будем решать
задачу 9.1, выбирая последовательно
элементы из
,
причем каждый раз - наибольший из
оставшихся, проверяя
при этом выполнение условия
(9.2). Алгоритм такого типа называется
жадными или пожирающими (в англоязычной
литературе - GREEDY). Жадные алгоритмы
похожи на градиентные алгоритмы в
численных методах непрерывной математики.
Легко убедиться, что жадный алгоритм правильно решает задачу (9.1). Эта задача является индивидуальной задачей проблемы целочисленного линейного программирования (ЦЛП) с булевыми переменными и ограничениями, задание которых в этом частном случае определяет полиномиальную разрешимость задачи (9.1) со сложностью 0(n).
Рассмотрим еще один частный случай задачи ЦЛП.
Задача 9.2. Дана матрица с целыми неотрицательными
коэффициентами. Найти такое подмножество ее элементов, что
а) в каждом столбце и в каждой строке находится не более одного выбранного элемента и б) сумма выбранных элементов является макси-мальной.
Эквивалентная формулировка задачи:
Попробуем применить жадный алгоритм к задаче (9.3) с матрицей
Выбор
наибольшего элемента в первой строке
и столбце
в искомое подмножество
исключает
из дальнейшего рассмотрения (в силу
заданных ограничений) элементы
.
Поэтому из второго столбца выбирается
и затем - из третьего столбца
.
Имеем
.
Но это решение не экстремальное:
подмножество
удовлетворяет ограничениям и
.
Рассмотрим более широкий класс задач.