Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Готовая методичка по ТПР13.02.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.35 Mб
Скачать

3.2 Математическая модель

Для каждой пары городов i и j введем переменную , которая может принимать следующие значения:

Тогда длина маршрута вычисляется по формуле:

.

Ограничения задачи:

, (3.1)

(3.2)

интерпретируются следующим образом. Уравнения (3.1) характеризуют то требование к маршруту, что въезжать в каждый город j можно ровно один раз; уравнения (3.2) обеспечивают ровно один выезд из каждого города i. Однако этих условий недостаточно для полного описания маршрутов, так как возможны неполные обходы городов, к примеру, как на рисунке

Поэтому для исключения подциклов необходимо добавить следующее условие: пусть S – некоторое подмножество данного множества городов, – остальные города. Так как коммивояжер должен объехать все n городов, то во всяком его маршруте должна присутствовать хотя бы одна дуга с началом в множестве S и с концом в множестве . Аналитически это требование можно записать так:

для любого S. (3.3)

Таким образом, математической моделью задачи коммивояжера является следующая задача целочисленного линейного программирования:

(3.4)

при ограничениях (3.1), (3.2), (3.3) и

, (3.5)

– целочисленные, . (3.6)

3.3 Метод ветвей и границ

Метод ветвей и границ [3, 4, 5] относится к группе комбинаторных методов дискретного программирования. Методы этой группы исходят прежде всего из конечности множества допустимых решений задачи. Центральную идею комбинаторных методов составляет замена полного перебора всех допустимых решений их частичным направленным перебором. Впервые метод ветвей и границ был предложен в 1960 г. в работе Лэнд и Дойг для решения задачи целочисленного линейного программирования. Настоящую известность этот метод приобрел лишь после выхода в 1963 г. работы Литтла и др., в которой метод был применен к задаче коммивояжера. В этой работе было впервые предложено и общепринятое теперь название метода.

Различные методы типа ветвей и границ существенно используют специфику конкретных задач и поэтому заметно отличаются друг от друга. Однако все они основаны на последовательном разбиении допустимого множества на подмножества (ветвлении) и вычислении оценок (границ), позволяющем отбрасывать подмножества, заведомо не содержащие оптимальных решений задачи. Изложим идею метода ветвей и границ для следующей комбинаторной задачи:

(3.7)

где – конечное множество.

Пусть есть подмножество D. В зависимости от специфики задачи выбирается некоторый способ вычисления нижней границы (оценки) значений целевой функции f, т.е. такого числа , что для любого имеет место неравенство

(3.8)

По некоторому правилу множество D разбивается на конечное число (обычно попарно непересекающихся) подмножеств. Получается начальное дерево ветвления с корнем D и листьями (висячими вершинами) (рис. 4).

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

Рис. 4

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

, (3.9)

то – оптимальное решение задачи (3.7) и процесс решения завершается. Иначе решение задачи продолжается с некоторого подмножества, для которого (3.9) не выполняется. При этом подмножества, для которых (3.9) имеет место, объявляются неперспективными и исключаются из последующего рассмотрения.

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