ЭЛЕКТРОННЫЙ ЛАБОРАТОРНЫЙ ПРАКТИКУМ
ПО УЧЕБНОМУ ПРЕДМЕТУ
"ЭКОНОМИКО-МАТЕМАТИЧЕСКИЕ МЕТОДЫ"
№17. Решение задачи коммивояжера с использованием метода ветвей и границ
Цель: научить использовать метод ветвей и границ для решения задачи коммивояжера.
Оборудование: практикум, тетрадь для лабораторных и практических работ.
Литература:
- Плотников А. Д. Математическое программирование: экспресс-курс. - Мн.: Новое знание, 2007. С. 147-156.
- Таха, Хемди. Введение в исследование операций - М.: Издательский дом "Вильямс", 2005. С. 446-465.
Время выполнения: 2 часа.
ВОПРОСЫ ВХОДНОГО КОНТРОЛЯ:
- Сформулируйте постановку задачи коммивояжера.
- Опишите математическую модель задачи коммивояжера.
- Опишите процесс редукции матрицы.
- Опишите процесс решения задачи коммивояжера методом ветвей и границ.
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ:
Постановка задачи коммивояжера
Имеется n городов. Расстояния между любой парой городов известны и оставлют aij (i,j = 1,n, i!=j). Если прямого маршрута между городами i и j не существует, то aij = ∞. Растояния между городами удобно записывать в виде матрицы A = (aij), где aii = ∞.
i\j | 1 | 2 | ... | n |
---|---|---|---|---|
1 | ∞ | a12 | ... | a1n |
2 | a21 | ∞ | ... | a2n |
... | ... | ... | ... | ... |
n | an1 | an2 | ... | ∞ |
Коммивояжер, выезжая из какого-либо города, должен посетить все города, побывав в каждом из них один, и только один раз, и вернуться в исходный город. Необходимо определить такую последовательность объезда городов, при которой длина маршрута была бы наименьшей.
Если городам поставить в соответствие вершины графа, а соединяющим их дорогам — дуги, то в терминах теории графов задача заключается в определении гамильтонова контура минимальной длины. Гамильтоновым контуром (по имени английского математика Гамильтона) называется путь, проходящий через все вершины графа, у которого начальная вершина совпадает с конечной. Здесь под длиной контура понимают не количество дуг, входящих в контур, а сумму их длин.
Для записи постановки задачи в терминах целочисленной линейной оптимизации определим булевы переменные следующим образом:
- xij = 1, если коммивояжер переезжает из города i в город j;
- xij = 0, в противном случае.
Тогда задача заключается в отыскании значений переменных xij, минимизирующих
при ограничениях
Методы решения задачи коммивояжера
- метод ветвей и границ;
- венгерский метод..
Алгоритм метода ветвей и границ
- Операция редукции по строкам: в каждой строке матрицы находят минимальный элемент dmin и вычитают его из всех элементов соответствующей строки. Нижняя граница: H=∑dmin.
- Операция редукции по столбцам: в каждом столбце матрицы выбирают минимальный элемент dmin, и вычитают его из всех элементов соответствующего столбца. Нижняя граница: H=H+∑dmin.
- Константа приведения H является нижней границей множества всех допустимых гамильтоновых контуров.
- Поиск степеней нулей для приведенной по строкам и столбцам матрицы. Для этого временно нули в матице заменяэт на знак «∞» и находят сумму минимальных элементов строки и столбца, соответствующих этому нулю.
- Выбирают дугу (i,j), для которой степень нулевого элемента достигает максимального значения.
- Разбивают множество всех гамильтоновых контуров на два подмножества: подмножество гамильтоновых контуров содержащих дугу (i,j) и не содержащих ее (i*,j*). Для получения матрицы контуров, включающих дугу (i,j), вычеркивают в матрице строку i и столбец j. Чтобы не допустить образования негамильтонова контура, заменяют симметричный элемент (j,i) на знак «∞». Исключение дуги достигается заменой элемента в матрице на ∞.
- Проводят приведение матрицы гамильтоновых контуров с поиском констант приведения H(i,j) и H(i*,j*).
- Сравнивают нижние границы подмножества гамильтоновых контуров H(i,j) и H(i*,j*). Если H(i,j)<H(i*,j*), то дальнейшему ветвлению в первую очередь подлежит множество (i,j), иначе - разбиению подлежит множество (i*,j*).
- Если в результате ветвлений получается матрица (2x2), то определяют полученный ветвлением гамильтонов контур и его длину.
- Сравнивают длину гамильтонова контура с нижними границами оборванных ветвей. Если длина контура не превышает их нижних границ, то задача решена. В противном случае развивают ветви подмножеств с нижней границей, меньшей полученного контура, до тех пор, пока не получится маршрут с меньшей длиной.
МЕТОДИЧЕСКИЕ УКАЗАНИЯ:
Решить задачу коммивояжера методом ветвей и границ
Город | A | B | C | D | E |
---|---|---|---|---|---|
A | ∞ | 20 | 18 | 12 | 8 |
B | 5 | ∞ | 14 | 7 | 11 |
C | 12 | 18 | ∞ | 6 | 11 |
D | 11 | 17 | 11 | ∞ | 12 |
E | 5 | 5 | 5 | 5 | ∞ |
Решение.
СОДЕРЖАНИЕ РАБОТЫ:
Вариант №1
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 3 | 6 | 5 | 8 |
№2 | 2 | М | 2 | 6 | 1 |
№3 | 4 | 6 | М | 7 | 5 |
№4 | 5 | 4 | 6 | М | 8 |
№5 | 5 | 3 | 1 | 5 | М |
Вариант №2
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 6 | 5 | 1 | 2 |
№2 | 7 | М | 6 | 3 | 6 |
№3 | 1 | 6 | М | 1 | 7 |
№4 | 2 | 1 | 4 | М | 3 |
№5 | 8 | 4 | 7 | 7 | М |
Вариант №3
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 5 | 4 | 6 | 7 |
№2 | 8 | М | 2 | 4 | 4 |
№3 | 2 | 8 | М | 5 | 5 |
№4 | 3 | 2 | 6 | М | 7 |
№5 | 6 | 3 | 1 | 4 | М |
Вариант №4
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 7 | 1 | 8 | 6 |
№2 | 5 | М | 1 | 3 | 5 |
№3 | 8 | 4 | М | 8 | 2 |
№4 | 5 | 3 | 1 | М | 2 |
№5 | 7 | 2 | 3 | 6 | М |
Вариант №5
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 3 | 8 | 4 | 2 |
№2 | 2 | М | 5 | 4 | 8 |
№3 | 4 | 6 | М | 5 | 5 |
№4 | 3 | 3 | 8 | М | 5 |
№5 | 4 | 1 | 3 | 8 | М |
Вариант №6
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 7 | 8 | 4 | 7 |
№2 | 8 | М | 3 | 1 | 8 |
№3 | 2 | 4 | М | 8 | 5 |
№4 | 1 | 4 | 2 | М | 8 |
№5 | 5 | 7 | 4 | 8 | М |
Вариант №7
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 5 | 4 | 1 | 3 |
№2 | 7 | М | 4 | 8 | 2 |
№3 | 4 | 4 | М | 7 | 7 |
№4 | 7 | 3 | 7 | М | 3 |
№5 | 4 | 6 | 3 | 8 | М |
Вариант №8
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 4 | 4 | 6 | 8 |
№2 | 7 | М | 1 | 5 | 7 |
№3 | 2 | 8 | М | 8 | 6 |
№4 | 5 | 3 | 4 | М | 4 |
№5 | 7 | 2 | 1 | 4 | М |
Вариант №9
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 3 | 7 | 5 | 6 |
№2 | 6 | М | 1 | 6 | 7 |
№3 | 6 | 7 | М | 5 | 8 |
№4 | 4 | 5 | 5 | М | 1 |
№5 | 6 | 2 | 4 | 7 | М |
Вариант №10
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 8 | 2 | 1 | 4 |
№2 | 5 | М | 1 | 3 | 5 |
№3 | 7 | 4 | М | 5 | 3 |
№4 | 6 | 7 | 5 | М | 6 |
№5 | 8 | 8 | 3 | 6 | М |
Вариант №11
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 3 | 6 | 1 | 3 |
№2 | 4 | М | 1 | 2 | 1 |
№3 | 7 | 4 | М | 6 | 6 |
№4 | 6 | 2 | 5 | М | 2 |
№5 | 7 | 2 | 2 | 5 | М |
Вариант №12
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 7 | 2 | 8 | 3 |
№2 | 3 | М | 2 | 3 | 6 |
№3 | 8 | 8 | М | 2 | 6 |
№4 | 8 | 7 | 4 | М | 2 |
№5 | 1 | 6 | 8 | 5 | М |
Вариант №13
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 8 | 3 | 7 | 4 |
№2 | 6 | М | 7 | 5 | 4 |
№3 | 2 | 4 | М | 7 | 6 |
№4 | 7 | 6 | 7 | М | 2 |
№5 | 7 | 7 | 8 | 2 | М |
Вариант №14
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 6 | 4 | 1 | 8 |
№2 | 3 | М | 1 | 7 | 8 |
№3 | 6 | 3 | М | 1 | 1 |
№4 | 3 | 6 | 6 | М | 5 |
№5 | 4 | 4 | 5 | 4 | М |
Вариант №15
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 6 | 7 | 4 | 5 |
№2 | 1 | М | 4 | 8 | 2 |
№3 | 8 | 3 | М | 4 | 2 |
№4 | 6 | 6 | 7 | М | 4 |
№5 | 2 | 7 | 2 | 5 | М |
Вариант №16
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 1 | 6 | 6 | 7 |
№2 | 3 | М | 7 | 4 | 1 |
№3 | 8 | 3 | М | 7 | 3 |
№4 | 2 | 5 | 5 | М | 7 |
№5 | 1 | 4 | 7 | 7 | М |
Вариант №17
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 2 | 5 | 1 | 4 |
№2 | 8 | М | 8 | 3 | 5 |
№3 | 8 | 3 | М | 3 | 5 |
№4 | 3 | 8 | 4 | М | 1 |
№5 | 2 | 5 | 3 | 3 | М |
Вариант №18
Решите задачу коммивояжера методом ветвей и границ.
Город | A | B | C | D | E |
---|---|---|---|---|---|
№1 | М | 1 | 7 | 2 | 5 |
№2 | 5 | М | 1 | 8 | 2 |
№3 | 2 | 8 | М | 4 | 7 |
№4 | 1 | 4 | 4 | М | 4 |
№5 | 6 | 3 | 8 | 4 | М |
ВОПРОСЫ ВЫХОДНОГО КОНТРОЛЯ:
- Сформулируйте постановку задачи коммивояжера.
- Опишите математическую модель задачи коммивояжера.
- Опишите процесс редукции матрицы.
- Опишите процесс решения задачи коммивояжера методом ветвей и границ.
ДОМАШНЕЕ ЗАДАНИЕ:
Выучить алгоритм решения задачи коммивояжера методом ветвей и границ.