- •2. Постановка задачи
- •3. Математическая модель задачи коммивояжера
- •4. Алгоритм решения
- •1) Справа к таблице присоединяем столбец Ui, в котором записываем минимальные элементы соответствующих строк. Вычитаем элементы Ui из соответствующих элементов строки матрицы.
- •2) Внизу полученной матрицы присоединяем строку Vj, в которой записываем минимальные элементы столбцов. Вычитаем элементы Vj из соответствующих столбцов матрицы.
- •3) В результате вычислений получаем матрицу, приведенную по строкам и столбцам, которая изображена в виде таблицы 2.
- •8) Матрицу гамильтоновых контуров получим из таблицы 2 путем замены элемента (1;5) на знак «∞».
- •Алгоритм крускал коммивояжер
Алгоритм крускал коммивояжер
Рис.25
Выводы
Задача коммивояжера является частичным случаем гамильтоновой задачи о путешественнике. Суть задачи коммивояжера состоит в нахождении суммарной минимальной характеристики (расстояния, стоимости проезда и т.д.), при этом коммивояжер должен пройти все n городов по одному разу, вернувшись в тот город, с которого начал.
Существуют несколько методов решения задачи коммивояжера: метод полного перебора, с помощью метода ветвей и границ (алгоритм Литтла), алгоритма Крускала, «деревянного» алгоритма и т.д. Однако только метод ветвей и границ дает нам в итоге самое оптимальное решение.
Основная идея
метода Литтла состоит в том, что вначале
строят нижнюю границу длин маршрутов
для всего множества гамильтоновых
контуров
.
Затем все множество контуров
разбивают на два подмножества таким
образом, чтобы первое подмножество
состояло
из гамильтоновых контуров, содержащих
некоторую дугу (i,j),
а другое подмножество
не содержало этой дуги.
Для практической реализации идеи метода ветвей и границ применительно к задаче коммивояжера нужно найти метод определения нижних границ подмножества и разбиения множества гамильтоновых контуров на подмножества (ветвление). Такое определение нижних границ базируется на том утверждении, что если ко всем элементам i-й строки или j-го столбца матрицы C прибавить или отнять число , то задача останется эквивалентной прежней, то есть оптимальность маршрута коммивояжера не изменится, а длина любого гамильтонова контура изменится на данную величину .
Используя ЭВМ,
методом ветвей и границ можно решить
задачи коммивояжера для
.
