- •6.1. Продолжительность симплекс-алгоритма
- •6.2. Размер экземпляра задачи лп
- •6.3. Задача эквивалентной допустимости
- •6.4. Начальные сведения о методе эллипсоида
- •6.5. Описание метода эллипсоида на интуитивном уровне
- •7.1. Алгоритм Хачияна
- •7.2. Обоснование метода эллипсоида
- •8.1. Терминология теории графов
- •8.2. Задача потока минимальной стоимости
- •8.3. Метод остовного дерева
- •8.4. Условия оптимальности
- •8.5. Стержневое правило для изменения базиса
- •8.6. Поиск начального допустимого решения
- •8.7. Целочисленность оптимальных решений
- •9.1. Транспортная задача
- •9.2. Табличная форма
- •9.3. Задача назначений
- •9.4. Лп-ослабления
- •9.5. Задача о максимальном потоке
- •10.1. Теорема максимального потока – минимального разреза
- •10.2. Управление проектом
- •10.3. Задача кратчайшего пути
- •10.4. Уравнение Беллмана
- •11.1. Алгоритм Беллмана-Форда
- •11.2. Алгоритм Дейкстры
- •11.3. Преформулировка с неотрицательным
- •11.4. Задача минимального остовного дерева (мод)
- •11.5. Жадный алгоритм Прима для задачи мод
- •12.1. Задача максимального разреза
- •12.2. Задача полуопределенного программирования
- •12.3. Игра «Симметричное рандеву»
- •12.4. Методы внутренней точки для лп и поп
- •13.1. Основы метода
- •13.2. Задача о ранце
- •13.3. Метод Дакина
- •14.1. Виды алгоритмов
- •14.2. Точные методы
- •14.3. Полиномиальная формулировка зк
- •14.4. Решение с помощью метода ветвей и границ
- •14.5. Приближенный алгоритм для задачи коммивояжера
- •15.1. Эвристики задачи коммивояжера
- •15.2. Метод ближайшего соседа
- •15.3. Метод ближайшего соседа для зк
- •15.4. Имитация отжига
- •15.5. Генетические алгоритмы
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. ЭВРИСТИЧЕСКИЕ АЛГОРИТМЫ
