Я использую Google OR Tools для решения проблемы:
Транспортные средства всегда стартуют со склада со всеми грузами, загруженными для точек высадки. И есть пункты приема, откуда приходится загружать грузы. Тур должен быть завершен в течение 10 часов.
Пример:
Узлы = [A, B, C, D, E, F, G]
Вес = [50, 60, 30, 20, 80, 90, 40]
PointType = [D, D, P, D, P, D, D], где D = доставка и P = самовывоз.
Я пробовал использовать пример Самовывоз в OR Tools и использовал фиктивный узел самовывоза для каждого узел сброса и фиктивный узел сброса для каждого пикапа. Таким образом, уникальная комбинация пикапа и дропа.
Этот подход хорошо работает для 50-60 местоположений, но решатель не может вернуть какое-либо решение для большого количества местоположений (135 местоположений и, следовательно, 135 * 2 = 270 узлов, потому что по одному фиктивному узлу для каждого).
Есть ли другой способ решить эту проблему с помощью инструментов OR, который не требует использования фиктивных узлов, которые эффективно уменьшили бы общее количество узлов?