Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект.docx
Скачиваний:
35
Добавлен:
28.05.2022
Размер:
2.46 Mб
Скачать
      1. Задача коммивояжера

Рассмотрим задачу, которая по формулировке напоминает задачу об остове минимального веса, но по сложности принципиально отличается от нее.

Задача 4.9.1 . Пусть имеется n городов, соединенные дорогами известной длины. Коммивояжер, живущий в одном из городов, должен объехать их все и вернуться домой таким образом, чтобы проделанный им путь был минимальным. Но есть еще одно ограничение. Поскольку продукция у коммивояжера не очень надежная, коммивояжер не может позволить себе вернуться в один из пройденных городов.

Сформулируем задачу в терминах графов.

Задача 4.9.2 . Дан граф G = (V, E) и весовая функция W :

W : E R+.

Требуется найти замкнутый маршрут минимального веса, который проходил бы по всем вершинам графа ровно по одному разу.

Задача разпадается на два вопроса: Во-первых, стоит вопрос, существует ли вообще замкнутый маршрут, который проходил бы по всем вершинам графа ровно по одному разу. Во-вторых, если такие маршруты существуют, требуется найти тот из них, который имеет минимальный вес.

Чтобы избежать такой неоднозначности вопроса, можно добавить к G ребра бесконечно большого веса между всеми несмежными вершинами. То есть мы договориваемся, что данный в задаче граф полный, а весовая функция может быть бесконечной для некоторых ребер. Тогда ответ на вопрос о существовании искомого маршрута всегда положителен и можно сосредоточиться на поиске минимума.

Покажем, что эта задача, если ее сформулировать в форме распознавания, будет N P -полной задачей. Для доказательства этого факта построим цепочку N P -полных задач, к каждой из которых полиномиально сводятся предыдущие.

Можно переформулировать задачу коммивояжера.

Задача 4.9.3 . Дан полный граф G = Kn и весовая функция W :

W : E(Kn) R+.

Требуется найти гамильтонов цикл минимального веса.

Докажем N P -полноту задачи коммивояжера, построив последовательность полиномиальных сводимостей задач теории графов.

      1. Задача о клике

Напомним, что клика - это максимальный по включению вершин полный подграф графа.

В оптимизационной форме задача о клике выглядит следующим образом:

Задача 4.9.4 . Дан граф G = (V, E). Необходимо найти наибольшую клику графа (клику графа с наибольшим для этого графа числом вершин).

Используем обозначение ϕ(G) - размер наибольшей клики в гарфе G. Тогда задачу о клики можно переформулировать в форме распознавания следующим образом.

Задача 4.9.5 (КЛИКА). Дан граф G = (V, E) и целое число b > 0. Правда ли, что ϕ(G) b.

То есть необходимо ответить на вопрос, существует ли в графе в графе

G полный подграф с b вершинами.

Докажем N P -полноту задачи о клике, сведя к ней известную нам N P - полную задачу о выполнимости.

Задача 4.9.6 (ВЫПОЛНИМОСТЬ). Дана конъюнктивная нормальная форма A = D1 D2 ... Dk. Требуется ответить

на вопрос, является ли эта формула выполнимой (то есть, найдется ли набор значений переменных, чтобы формула A принимала значение 1.

Теорема 4.9.1 . ВЫПОЛНИМОСТЬ КЛИКА.

Доказательство. Покажем, что задача о выполнимости сводится за полиномиальное время к задаче о клике.

Пусть нам поставлена следующая задача о выполнимости: дана конъюнктивная нормальная форма A = D1 D2 ... Dk, где Di -

дизъюнкт, i = 1, k. Построим граф G = (V, E) следующим образом:

V (G) = {(α, i) | α - литерал в Di}, E(G) = {((α, i), (β, j)) | i /= j, α /= β}.

        1. Пусть A выполнима. Значит на определенном наборе значений переменных A = 1. Тогда в каждом дизъюнкте Di найдется хотя бы один литерал αi = 1.

Рассмотрим вершины (αi, i) и (αj , j) при i /= j. Поскольку на

выбранном наборе значений переменных αi = 1 и αj = 1, то αi /= αj .

Следовательно вершины (αi, i) и (αj , j) соеденины ребром в графе G. Таким образом множество вершин {(αi, i) | i = 1, k} порождает полный

подграф в графе G.

        1. Пусть теперь в графе G есть клика размера k с вершинами (α1, 1), (α2, 2), ...(αk, k). Тогда αi /= αj , i, j = 1, k. Слендовательно можно

таким образом подобрать значения переменных, чтобы все αi принимали значение 1 одновременно. Следовательно A - выполнима.

        1. Итак, мы показали, что формула A является выполнимой тогда и только тогда, когда в графе G имеется клика размера k.

Осталось заметить, что построение графа G можно выполнить за полиномиальное время от размера СКНФ A.

D

Переформулированная в форме распознавания задача о клике принадлежит классу N P , так как, если ответ на задачу "да" и нам дано множество вершин, образующих полный подграф в графе G, мы можем за полиномиальное время проверить правда ли каждая из этих вершин смежна с каждой.

Следствие 4.9.2 . Задача о клике является N P -полной задачей.

Соседние файлы в предмете Дискретная математика