Задачи дискретной оптимизации на моей практике встречаются не часто, но решение именно таких задач делает бизнес более эффективным в явном виде (уменьшаются потери материалов и времени и т.д.).
В моем случае мы оптимизируем расход краски, упорядочивая очередь производственных заданий оптимальным образом.
Поиск оптимального решения привел меня к задаче коммивояжера и его решению посредством частного случая метода Границ и ветвей - алгоритму Литтла.
Возможно, кому-то из разработчиков придется решать подобную задачу, и мои наработки пригодятся.
Скачать исходный код
|
Наименование |
Файл |
Версия |
Размер |
|
|
|
Решение задачи коммивояжера алгоритмом Литтла
|
.epf |
|
16,91Kb |
43 |
Скачать
|
Результатом моей работы явилась обработка на управляемых формах, запустить которую можно в любой конфигурации. Посредством этой обработки можно демонстрировать результат работы алгоритма Литтла.
По кнопке "Заполнить начальными данными"в форме случайным образом генерируются точки.
По кнопке "Найти решения" программа формирует ребра таким образом, чтобы путь, пролегающий через каждую точку, был минимальным.
Для осознания алгоритма использовал следующие источники.
https://habrahabr.ru/post/332208/
https://habrahabr.ru/post/246437/
коммивояжер Литтла ветвей и границ