Практическое задание
задача коммивояжер ветвь граница
Требуется найти легчайший простой основной ориентированный цикл в полном взвешенном ориентированном графе на четырех вершинах (рис. 2):
Рис. 2 - Ориентированный граф задачи коммивояжера
Попробуем решить данную задачу методом «жадный алгоритм».
Из пункта 1 существует только один путь – путь к пункту 2, стоимость пути равна 78. Из пункта 2 существует только один путь – путь к пункту 3, стоимость пути равна 81. Из пункта 3 существует два пути – путь к пункту 1 и путь к пункту 4. Выберем самый кратчайший путь – это путь к пункту 4, стоимость пути равна 16. Из пункта 4 существует два пути – путь к пункту 1 и путь к пункту 2. Так как в пункте 2 мы уже были, то идем в пункт 1, стоимость пути равна 25.
Полный обход коммивояжера, исходя из предыдущего решения, равен 12341, а сумма пути равна: 78+81+16+25 = 200.
Описание работы программы
Программа реализована в среде Borland Pascal 7.0. Она включает несколько процедур и функций по обработке матриц согласно алгоритму метода ветвей и границ:
function to0 - функция получает нули в строках и столбцах матрицы и выдает сумму вычтенных ей элементов.
procedure chooseedge - выбор нуля, по которому будем ветвиться
procedure add - добавление ребра i->ip к частичному решению
procedure process - обход узла
procedure readdata – чтение данных из текстового файла input.txt
procedure out – вывод результатов на экране
В главной процедуре вызываются только две: readdata - чтение из файла и process - вывод на экран.
От пользователя требуется создать файл с исходными данными input.txt и запустить программу в среде Borland Pascal 7.0. Конечный результат представляет собой оптимальный маршрут и длину пути, выводимый на экране компьютера.
Заключение
В данной курсовой работе были рассмотрены основные теоретические вопросы по задаче коммивояжера. Приведено решение вручную задачи методом ветвей и границ. Изучено практическое применение задачи коммивояжера. Приведен текст программы, позволяющей решить задачу коммивояжера методом ветвей и границ, написанный на языке Turbo Pascal 7.0.
Существуют несколько методов решения задачи коммивояжера: метод полного перебора, с помощью метода ветвей и границ (алгоритм Литтла), алгоритма Крускала, «деревянного» алгоритма и т.д. Однако только метод ветвей и границ дает нам в итоге самое оптимальное решение.
Список использованных источников
-
Вентцель Е.С. Исследование операций: задачи, принципы, методология. – М.: Высшая школа, 2009. – 208 с.
-
Конюховский П.В. Математические методы исследования операций в экономике. Краткий курс. – СПб.: Питер, 2009. – 208 с.
-
Просветов Г.И. Математические методы в экономике: Учебно-методическое пособие. – М.: Издательство РДЛ, 2008. – 160 с.
-
Орлова И.В. Экономико-математическое моделирование: Практическое пособие по решению задач. – М.: Вузовский учебник, 2009. – 144 с.
-
Костевич Л.С. Математическое программирование: Информационные технологии оптимальных решений. – Мн.: Новое знание, 2008. – 424 с.
-
Акулич И.Л. Математическое программирование в примерах и задачах. – М.: Высшая школа, 2008. – 319 с.
-
Фомин Г.П. Математические методы и модели в коммерческой деятельности. Учебник. – М.: Финансы и статистика, 2009 г.
-
О.Е. Акимов «Дискретная математика. Логика, группы, графы», Москва, 2009, 376 с.