Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мат. мет. исл. оп Погорелов / Лекции по мат. мет. ИО.doc
Скачиваний:
67
Добавлен:
26.03.2015
Размер:
3.62 Mб
Скачать

14.3. Полиномиальная формулировка зк

Покидая город, коммивояжер должен выбрать для очередного посещения только один следующий город и, аналогично, по прибытии в какой-либо город он приезжает в него из какого-то одного города. Поэтому должно выполняться:

, (14.4)

. (14.5)

Этих ограничений недостаточно для того, чтобы воспрепятствовать образованию циклов, таких, как показаны на рис. 14.1. Такие циклы мы будем называть подциклами.

Рис. 14.1. Подциклы в несвязном графе

Рассмотрим цикл . Пустьбудет номером в цикле, под которым посещается городi. Итак, мы имеем ,, и в общем случае

.

Мы требуем, чтобы , когда

.

Кроме того, является целым числом, величина которого лежит между 0 и n – 1. Таким образом,

Эти ограничения могут быть записаны так

. (14.6)

Они исключают подциклы. Чтобы убедиться в этом, предположим, что мы имеем решение, которое удовлетворяет этим ограничениям и состоит из двух или более подциклов. Рассмотрим подцикл, который не включает в себя город под номером 0, и пусть он имеет r ≥ 2 дуг. Суммируем ограничения (14.6) по дугам этого подцикла, что приводит к результату

,

и, следовательно, здесь может быть только один цикл, обходящий все города.

Таким образом, ЗК может быть сформулирована как задача ЦЛП, имеющая переменных иограничений. То есть

минимизировать

при условиях (14.4), (14.5), (14.6), и .

14.4. Решение с помощью метода ветвей и границ

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

Нам не нужно беспокоится о сведении задачи к целочисленным решениям, так как сетевой симплекс-алгоритм всегда находит решение в целых числах. Итак, рассмотрим

минимизировать при условиии (14.4), (14.5) и .

Если оптимальное решение сводится к циклу, включающему все города, то мы получили оптимальное решение исходной задачи коммивояжера. Если – нет, то продолжаем дальше с помощью алгоритма ветвей и границ, используя правило ветвления, которое делит задачу на две подзадачи путем дополнительных ограничений вида . Соответственно устанавливаем. Добавление этих ограничений приводит нас к обычной задаче коммивояжера и обычной задаче назначений, которые обеспечивают соответствующую нижнюю границу решения. Естественный метод отбора ограниченийзаключается в выборе одного или более подциклов и удалении одной из их дуг.

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

14.5. Приближенный алгоритм для задачи коммивояжера

Определение 14.1. -приближенный алгоритм задачи минимизации с оптимальной стоимостьювыполняется за полиномиальное время и возвращает допустимое решение со стоимостью, так что

.

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

Пусть М является стоимостью минимального остовного дерева графа, которое легко может быть получено с помощью жадного алгоритма Прима. Начнем с произвольного узла и обойдем все узлы этого дерева. При этом каждая его дуга будет пройдена ровно два раза, так что общая стоимость пути составит 2М.

Этот путь может быть преобразован в цикл, обходящий все города. Согласно неравенству треугольника, полученный цикл будет иметь стоимость, меньшую чем 2М. К тому же, каждый гамильтонов цикл содержит остовное дерево (отбросив любую дугу цикла, получим остовное дерево), стоимость которого больше (или равна) М. Таким образом, прямой алгоритм, основанный на использовании минимального остовного дерева, дает

.

Это приближенный алгоритм с . Его особенностью является необходимость выполнения неравенств треугольника.

Лекция 15. ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ