Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МГМ NEW_2010_v3.doc
Скачиваний:
25
Добавлен:
12.05.2015
Размер:
3.52 Mб
Скачать

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

Содержательная постановка задачи

Коммивояжеру нужно побывать в каждом из городов, начиная и заканчивая свой маршрут городом 1, при этом он не должен дважды заезжать ни в один городов. Пустьcij 0 – расстояние между городами i и j, , при этом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.