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

3.4 Метод ветвей и границ для решения задачи коммивояжера

Пусть – некоторый допустимый маршрут коммивояжера, где числа указывают порядок обхода городов. Переезды коммивояжера называются дугами маршрута. Через D обозначено множество всех допустимых маршрутов коммивояжера, а через l(x) – длина маршрута x, которая равна .

1. Вычисление оценки для множества D.

Положим . Тогда для любого j и

.

Положим . Тогда для любого i и

. (3.10)

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

.

Из (3.10) следует, что для любого допустимого маршрута . Очевидно, что после операции приведения длины всех маршрутов уменьшаются на одну и ту же величину . Следовательно, оптимальный маршрут, найденный с использованием приведенной матрицы, оптимален и для исходной задачи. При этом длины оптимальных маршрутов задачи с матрицей C и задачи с матрицей связаны соотношением

. (3.11)

2. Выбор множества для ветвления. На первом шаге это множество D. Его нижняя оценка . На остальных шагах из числа кандидатов на ветвление (из множества висячих вершин дерева ветвления) выбирается множество с наименьшей оценкой.

3. Разбиение множества на подмножества (ветвление). Через E обозначим приведенную матрицу, соответствующую множеству . Описанным далее – в п. 5 способом выбирается дуга (p, q). Множество разбивается на два подмножества и и исключается из числа кандидатов на ветвление. Подмножество состоит из всех маршрутов множества , не содержащих дугу (p, q); подмножество – из всех маршрутов, содержащих дугу (p, q) (рис. 5).

Рис. 5

4. Преобразование матрицы стоимостей и вычисление оценок. Матрица , соответствующая множеству , получается из E заменой . Для множества соответствующая матрица получается из E вычеркиванием p-й строки и q-го столбца. Кроме того, как правило, требуется запрещение некоторого элемента для исключения из замкнутого маршрута, проходящего по уже включенным в маршрут дугам, но не являющегося полным (т.е. не содержащим все n городов).

Оценки для вновь образованных множеств вычисляются следующим образом:

где и есть суммы констант приведения матриц и .

Легко показать, что

. (3.12)

5. Выбор дуги для ветвления.

По-прежнему E – приведенная матрица, соответствующая множеству . Выбор дуги для ветвления основан на стремлении сделать оценку побольше для того, чтобы увеличить вероятность выбора для дальнейшего ветвления множества . Исходя из первого условия, будем рассматривать лишь дуги (k, l), для которых

. (3.13)

Чтобы выполнить второе условие, среди дуг, удовлетворяющих (3.13), выберем дугу (p, q), для которой значение будет максимальным. Для этого, используя (3.12), вычислим функцию

для каждой дуги (k, l) такой, что . В качестве дуги (p, q) выберем ту, для которой

.