Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodicheskie_posobiya_i_rekomendatsii.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
526.85 Кб
Скачать

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) с матрицей

Выбор наибольшего элемента в первой строке и столбце в искомое подмножество исключает из дальнейшего рассмотрения (в силу заданных ограничений) элементы . Поэтому из второго столбца выбирается и затем - из третьего столбца . Имеем . Но это решение не экстремальное: подмножество удовлетворяет ограничениям и .

Рассмотрим более широкий класс задач.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]