1. метод ветвей и границ (алгоритм Литтла или исключения подциклов). Пример решения методом ветвей и границ;
2. венгерский метод. Пример решения венгерским методом.
ПРИМЕР. В качестве начального маршрута выбирается любой, например, X0 = (1,2);(2,3);(3,4);(4,5);(5,6);(6,1). Оценка для этого маршрута равна F(X0) = 43 + 65 + 73 + 22 + 8 + 80 = 291. Для определения нижней границы множества используют операцию редукции, для чего в каждой строке матрицы D находят минимальный элемент: di = min(j) dij
i j | di | ||||||
M | |||||||
M | |||||||
M | |||||||
M | |||||||
M | |||||||
M |
Затем вычитают di из элементов рассматриваемой строки. Поэтому во вновь полученной матрице в каждой строке будет как минимум один ноль.
i j | ||||||
M | ||||||
M | ||||||
M | ||||||
M | ||||||
M | ||||||
M |
Такую же операцию редукции проводят по столбцам: dj = min(i) dij
|
|
i j | ||||||
M | ||||||
M | ||||||
M | ||||||
M | ||||||
M | ||||||
M | ||||||
dj |
После вычитания минимальных элементов получаем полностью редуцированную матрицу, где величины di и djназываются константами приведения.
i j | ||||||
M | ||||||
M | ||||||
M | ||||||
M | ||||||
M | ||||||
M |
Сумма констант приведения определяет нижнюю границу H = ∑di + ∑dj = 9+52+13+17+8+10+0+20+0+5+0+0 = 134. Элементы матрицы dij соответствуют расстоянию от пункта i до пункта j. Длина маршрута определяется выражением: F(Mk) = ∑dij. Причем каждая строка и столбец входят в маршрут только один раз с элементом dij.
Затем в ходе последующих итераций, определяется ребро ветвлений. Все множество маршрутов относительно этого ребра разбивается на два подмножества (i,j) и (i*,j*).