Применение методов решения задачи коммивояжера на практике
Автор работы: Пользователь скрыл имя, 16 Апреля 2014 в 17:25, курсовая работа
Краткое описание
В современном мире происходит стремительное развитие науки и техники. С каждым годом число предприятий по производству различного рода продукции становится всё больше и больше. Но чтобы предприятие успешно развивалось и приносило прибыль, нужно взвешивать все плюсы и минусы не только вопросов касающихся затрат на закупку сырья и оборудования, но и вопросов связанных с транспортировкой груза к месту реализации, с нахождением оптимального маршрута и минимизацией затрат. Именно задача коммивояжера помогает найти кратчайший путь с минимальными затратами.
Содержание
Введение…………………………………………………………………..…...6 1 Общие сведения о задаче коммивояжёра………………………………....8 Экономические ситуации, приводящие к задаче коммивояжера…....9 Постановка и математическая модель задачи коммивояжера…..…10 Методы решения задачи коммивояжера………………………..……12 Метод ветвей и границ………………………………………………….12 Венгерский метод…………………………………………..…………..14 Применение методов решения задачи коммивояжера на практике...16 3.1 Решение задачи коммивояжера методом ветвей и границ….……….16 3.2 Решение задачи коммивояжера венгерским методом……………….…25 Заключение……………………………………………………………..….…32 Глоссарий ………………………………………………………………..…..33 Список используемых источников…………
Наибольшая сумма констант
приведения равна (1 + 3) = 4 для ребра (5,2),
следовательно, множество разбивается
на два подмножества (5,2) и (5*,2*). Нижняя
граница этого подмножества:
H(5*,2*) = 8 + 4 = 12
Исключение ребра (5,2) проводим
путем замены элемента d52 = 0 на M, после
чего осуществляем очередное приведение
матрицы расстояний для образовавшегося
подмножества (5*,2*), в результате получим
редуцированную матрицу. (Таблица 7)
Включение ребра (5,2) проводится
путем исключения всех элементов 5-ой строки
и 2-го столбца, в которой элемент d25 заменяем
на М, для исключения образования негамильтонова
цикла.
В результате получим другую
сокращенную матрицу (5 x 5), которая подлежит
операции приведения.
Нижняя граница подмножества
(5,2) равна: H(5,2) = 8 + 0 = 8 ≤ 12
Поскольку нижняя граница этого
подмножества (5,2) меньше, чем подмножества
(5*,2*), то ребро (5,2) включаем в маршрут с
новой границей H = 8
Шаг №2. Определяем ребро ветвления
и разобьем все множество маршрутов относительно
этого ребра на два подмножества (i,j) и
(i*,j*).
С этой целью для всех клеток
матрицы с нулевыми элементами заменяем
поочередно нули на М (бесконечность) и
определяем для них сумму образовавшихся
констант приведения, они приведены в
скобках. (Таблица 9)
Таблица 9 Определение ребра
ветвления (5,2), матрица размерностью 5´5
i j
1
3
4
5
6
di
1
M
2
1
3
0(1)
1
2
0(3)
0(0)
3
M
6
0
3
5
M
2
0(2)
2
2
Продолжение таблицы 9 Сумма
образовавшихся констант приведения,
матрица размерностью 5´5
Наибольшая сумма констант
приведения равна (0 + 3) = 3 для ребра (2,1),
следовательно, множество разбивается
на два подмножества (2,1) и (2*,1*).
Нижняя граница гамильтоновых
циклов этого подмножества:
H(2*,1*) = 8 + 3 = 11
Исключение ребра (2,1) проводим
путем замены элемента d21 = 0 на M, после
чего осуществляем очередное приведение
матрицы расстояний для образовавшегося
подмножества (2*,1*), в результате получим
редуцированную матрицу. (Таблица 10)
Включение ребра (2,1) проводится
путем исключения всех элементов 2-ой строки
и 1-го столбца, в которой элемент d12 заменяем
на М, для исключения образования негамильтонова
цикла.
В результате получим другую
сокращенную матрицу (4 x 4), которая подлежит
операции приведения.
Чтобы исключить подциклы, запретим
следующие переходы: (1,5),
Поскольку нижняя граница этого
подмножества (2,1) меньше, чем подмножества
(2*,1*), то ребро (2,1) включаем в маршрут с
новой границей H = 8
Шаг №3. Определяем ребро ветвления
и разобьем все множество маршрутов относительно
этого ребра на два подмножества (i,j) и
(i*,j*).
С этой целью для всех клеток
матрицы с нулевыми элементами заменяем
поочередно нули на М (бесконечность) и
определяем для них сумму образовавшихся
констант приведения, они приведены в
скобках. (Таблица 12)
Таблица 12 Определение ребра ветвления (2,1) матрица размерностью
4´4
Наибольшая сумма констант
приведения равна (0 + 2) = 2 для ребра (6,3),
следовательно, множество разбивается
на два подмножества (6,3) и (6*,3*).
Нижняя граница гамильтоновых
циклов этого подмножества:
H(6*,3*) = 8 + 2 = 10
Исключение ребра (6,3) проводим
путем замены элемента d63 = 0 на M, после
чего осуществляем очередное приведение
матрицы расстояний для образовавшегося
подмножества (6*,3*), в результате получим
редуцированную матрицу. (Таблица 13)