Задачи дискретной оптимизации на моей практике встречаются не часто, но решение именно таких задач делает бизнес более эффективным в явном виде (уменьшаются потери материалов и времени и т.д.).
В моем случае мы оптимизируем расход краски, упорядочивая очередь производственных заданий оптимальным образом.
Поиск оптимального решения привел меня к задаче коммивояжера и его решению посредством частного случая метода Границ и ветвей - алгоритму Литтла.
Возможно, кому-то из разработчиков придется решать подобную задачу, и мои наработки пригодятся.
Скачать файл
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Результатом моей работы явилась обработка на управляемых формах, запустить которую можно в любой конфигурации. Посредством этой обработки можно демонстрировать результат работы алгоритма Литтла.
По кнопке "Заполнить начальными данными"в форме случайным образом генерируются точки.
По кнопке "Найти решения" программа формирует ребра таким образом, чтобы путь, пролегающий через каждую точку, был минимальным.
Для осознания алгоритма использовал следующие источники.
https://habrahabr.ru/post/332208/
https://habrahabr.ru/post/246437/
коммивояжер Литтла ветвей и границ