- •Методические указания
- •1 Ветвление
- •1.1 Бинарное ветвление
- •1.2 Ветвление по компонентам
- •2 Оценка
- •3 Рекорд
- •5 Схема метода ветвей и границ
- •6 Стратегия
- •7 Метод ветвей и границ для решения задачи целочисленного линейного программирования
- •7.1 Ветвление
- •7.2 Вычисление оценки
- •7.3 Тест
- •7.4 Примеры использования метода ветвей и границ для решения задач целочисленного линейного программирования
- •7.5 Задания для самостоятельной работы
- •8 Метод ветвей и границ решения задачи коммивояжера
- •8.1 Ветвление и оценка
- •8.2 Схема метода ветвей и границ решения задачи коммивояжера
- •8.3 Примеры решения задачи коммивояжера
- •8.4 Задания для самостоятельной работы
- •9 Метод ветвей и границ решения задачи о кратчайшем пути
- •9.1. Отношение доминирования
- •9.2 Задачи для самостоятельной работы
- •Список литературы
8 Метод ветвей и границ решения задачи коммивояжера
Содержательная постановка задачи
Коммивояжеру
нужно побывать в каждом из
городов, начиная и заканчивая свой
маршрут городом 1, при этом он не должен
дважды заезжать ни в один городов. Пустьcij 0
– расстояние между городами i
и j,
,
при этомc ii =
иcij = ,
если прямого маршрута из города i
в город j
не существует. Необходимо найти кратчайший
цикл обхода всех городов.
Цикл
– это набор изn
упорядоченных пар городов, которые
образовывают маршрут, проходящий через
каждый город лишь один раз:
.
Общая стоимость переездов (длина) цикла t:
.
В
выражении для
содержитсятолько
один элемент
для каждой строки и только
один элемент
для каждого столбца матрицы
![]()
.
Математическая постановка задачи
Переменные:
|
|
|
Целевая функция:
|
|
(22) |
Ограничение:
|
|
(23) |
обеспечивают только один выезд из любого города,
|
|
(24) |
обеспечивают только один въезд в каждый город,
|
|
(25) |
Все три группы ограничений обеспечивают равенство каждой переменной xij или 0, или 1. Но их недостаточно, чтобы решение обязательно было циклом. Например, следующие решения удовлетворяют условиям (23)-(25) (в каждой строке и в каждом столбце имеем только по одному единичному элементу), но каждый из них включает в себя подциклы (циклы, которые включают в себя меньше, чем n городов):
решение
включает в себя 2 подцикла (1-4) (4-1) и
(2-3) (3-2);решение
также включает в себя 2 подцикла:
(1-2) (1-1) и (3-5) (5-4) (4-3).
Чтобы
решение обязательно было циклом, введем
переменные
и наложим на них следующие
ограничений:
|
|
(26) |
Ограничение (26) исключают все подциклы и при этом они не исключают ни один полный цикл [3].
Определим стратегию метода ветвей и границ для решения данной задачи, то есть определим
правило ветвления;
способ оценивания получаемых подмножеств;
тест.
Введем понятия приведенной матрицы и процесса приведения. Если от всех элементов каждой строки и каждого столбца матрицы C вычесть минимальный из них, то получим матрицу, у которой в каждой строке и в каждом столбце есть, по крайней мере, один ноль. Полученная матрица называется приведенной, а процесс образования нулей – приведением. Сумма вычитаемых в процессе приведения элементов, которые называются константами приведения, обозначается h.
Приведение матрицы
Пусть
– минимумы по строкам матрицы
.
Определим
матрицу
таким образом:
.
И пусть
– минимумы по столбцам матрицы
.
Определим матрицу
так:
.
Матрица
является приведенной.
Таким
образом, из неотрицательной матрицы
получили неотрицательную матрицу
с суммой констант приведения:
.
Если
– суммарная стоимость некоторого цикла
для матрицы
(к приведению), а
– суммарная стоимость этого же цикла
для приведенной матрицы
,
тогда
.
Поскольку
приведенная матрица содержит только
неотрицательные элементы, то
является нижней оценкой суммарной
стоимости цикла
при исходной матрице.
Рассмотрим
пример приведения матрицы
.
Минимумы по строкам (константы приведения первого этапа приведения) будем записывать по правую сторону соответствующих строк матрицы, а минимумы по столбцам (константы приведения второго этапа приведения) – снизу соответствующих столбцов.


Сумма констант приведения: h = 1+3+2+4+2+4+1=17. Это означает, что любой цикл исходной задачи имеет длину (суммарную стоимость) не меньшую 17.
Метод ветвей и границ для задачи коммивояжера базируется на следующем утверждении: оптимальный цикл для задачи со приведенной матрицей стоимостей совпадает с оптимальным циклом исходной задачи.
Из
этого утверждения вытекает: из того,
что задача коммивояжера с матрицей
расстояний
имеет решение
с длиной цикла
=1,
следует, что задача коммивояжера с
матрицей расстояний
имеет такое же оптимальное решение,
стоимость которого составляет
=
17 + 1=18.

