Курсовая работа: Решение задачи коммивояжера методом ветвей и границ
3. Математическая модель задачи коммивояжера
Задача коммивояжера может
быть сформулирована как целочисленная введением булевых переменных , если маршрут
включает переезд из города i
непосредственно в город j и
в противном
случае. Тогда можно задать математическую модель задачи, то есть записать
целевую функцию и систему ограничений
(1)
Условия (2) – (4) в
совокупности обеспечивают, что каждая переменная равна или нулю, или единице. При
этом ограничения (2), (3) выражают условия, что коммивояжер побывает в каждом
городе один раз в него прибыв (ограничение (2)), и один раз из него выехав
(ограничение (3)).
Однако этих ограничений не достаточно для постановки задачи коммивояжера, так как они не исключают решения, где вместо простого цикла, проходящего через n вершин, отыскиваются 2 и более отдельных цикла (подцикла), проходящего через меньшее число вершин. Поэтому задача, описанная уравнениями (2) – (4) должна быть дополнена ограничениями, обеспечивающими связность искомого цикла.
Для того, чтобы исключить при постановке задачи все возможные подциклы в систему ограничений задачи включают следующее ограничение:
, где
,
и
.
4. Алгоритм решения
Дана матрица расстояний, представленная в таблице 1. Необходимо с помощью алгоритма Литтла решить задачу коммивояжера.
Табл.1
j i |
1 | 2 | 3 | 4 | 5 | 6 |
1 | ∞ | 7 | 16 | 21 | 2 | 17 |
2 | 13 | ∞ | 21 | 15 | 43 | 23 |
3 | 25 | 3 | ∞ | 31 | 17 | 9 |
4 | 13 | 10 | 27 | ∞ | 33 | 12 |
5 | 9 | 2 | 19 | 14 | ∞ | 51 |
6 | 42 | 17 | 5 | 9 | 23 | ∞ |
1) Справа к таблице присоединяем столбец Ui, в котором записываем минимальные элементы соответствующих строк. Вычитаем элементы Ui из соответствующих элементов строки матрицы.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9