1. Приступим к решению. Определим верхнюю границу маршрута ZB(T) (вообще-то, ее вычисление не обязательно, но в некоторых случаях позволяет сократить расчеты). Верхняя граница – это стоимость взятого наугад маршрута. Пусть он будет состоять из звеньев (1,4)(4,5)(5,3)(3,6)(6,2)(2,1). Тогда в соответствии с табл.2 ZВ(T) = 16+18+27+0+5+7=73. Отсюда заключаем, что стоимость оптимального маршрута
.2. Найдем нижнюю границу всего маршрута Н . Для этого проводится так называемая редукция строк и столбцов матрицы (см. табл.2). Редукция строк заключается в вычитании из каждой строки матрицы числа, равного минимальному значению элемента этой строки. В первой строке – это число С1=16. Результат редукции представлен в табл.3.
Таблица 3
Пункты | 1 | 2 | 3 | 4 | 5 | 6 | Сi |
1 | 11 | 27 | 0 | 14 | 10 | 16 | |
2 | 6 | 15 | 0 | 29 | 29 | 1 | |
3 | 20 | 13 | 35 | 5 | 0 | 0 | |
4 | 5 | 0 | 9 | 2 | 2 | 16 | |
5 | 7 | 41 | 22 | 43 | 0 | 5 | |
6 | 18 | 0 | 0 | 4 | 0 | 5 |
Бесконечные стоимости C11 =C22 =…=C66 =
– это математический прием, запрещающий перелет к самому себе.В результате редукции в каждой строке будет не меньше одного нулевого элемента.
Аналогичным образом проводится редукция столбцов, в результате которой в каждом столбце будет, по крайней мере, по одному нулевому элементу (табл.4).
Таблица 4
Пункты | 1 | 2 | 3 | 4 | 5 | 6 | Сi |
1 | 11 | 27 | 0 | 14 | 10 | 16 | |
2 | 1 | 15 | 0 | 29 | 29 | 1 | |
3 | 15 | 13 | 35 | 5 | 0 | 0 | |
4 | 0 | 0 | 9 | 2 | 2 | 16 | |
5 | 2 | 41 | 22 | 43 | 0 | 5 | |
6 | 13 | 0 | 0 | 4 | 0 | 5 | |
Qi | 5 | 0 | 0 | 0 | 0 | 0 | H=48 |
После редукции в каждой строке и столбце будет не меньше, чем по одному нулю. Если бы вдруг оказалось в каждой строке и столбце ровно по одному нулю, то они образовали бы тогда замкнутый маршрут с очевидно нулевой редуцированной стоимостью. А чтобы вернуться к настоящей стоимости, нужно к этой нулевой стоимости прибавить то, что мы уже вычли при редукции, т.е. нижняя граница вычисляется по формуле:
.Это легко понять, если учесть, что в каждой строке и в каждом столбце есть только один элемент любого маршрута Т.
3. В табл.4 в строках и столбцах есть по несколько элементов с Cij=0, поэтому необходимо рассмотреть варианты и сделать выбор, какое первое звено включить в маршрут. Выбирается то звено, которое имеет минимальную стоимость и максимальное значение штрафа Фij . Штраф определяет ту цену, которую мы заплатим, если не включим звено (i, j) в маршрут Т. Поэтому если мы включим звено (i, j), которое назовем опорным, а не включим какое-то другое, то за это другое заплатим меньший штраф.
Штраф вычисляется по формуле
Фij =Ai+Bj ,
где Аi=min
, j-кроме опорного; Вj= min , i-кроме опорного.На каждом шаге мы выбираем звено с максимальным выигрышем (min{Cij} и max{Фij}). Поскольку min{Cij} – это обязательно ноль, полученный в результате редукции, то Ai и Bj – это следующие минимальные после нуля числа. Если в строке несколько нулей, то Аi = 0. Аналогично обстоит дело и с Вj . Покажем это для нашего примера. Рассчитаем штраф для всех звеньев, претендующих на то, чтобы быть включенными в маршрут Т . Это все звенья с нулевой стоимостью (табл.5).
Таблица 5
Пункты | 1 | 2 | 3 | 4 | 5 | 6 | Сi | Аi |
1 | 11 | 27 | 0 | 14 | 10 | 16 | 10 | |
2 | 1 | 15 | 0 | 29 | 29 | 1 | 1 | |
3 | 15 | 13 | 35 | 5 | 0 | 0 | 5 | |
4 | 0 | 0 | 9 | 2 | 2 | 16 | 0 | |
5 | 2 | 41 | 22 | 43 | 0 | 5 | 2 | |
6 | 13 | 0 | 0 | 4 | 0 | 5 | 0 | |
Qj | 5 | 0 | 0 | 0 | 0 | 0 | H=48 | |
Bj | 1 | 0 | 9 | 0 | 2 | 0 |
По найденным Ai и Bj рассчитываем штрафы Фij для звеньев с нулевой стоимостью, т.е. для (1,4), (2,4), (3,6) и т.д. Эти звенья с полученными штрафами сведем в табл. 6.