#or-tools
#или-инструменты
Вопрос:
Мне интересно, как мы можем минимизировать глобальный диапазон (makespan) в контексте CVRP. Я ссылаюсь ниже:
distance_dimension.SetGlobalSpanCostCoefficient(100)
В качестве очень упрощенного примера я пытаюсь решить пример CVRP (https://developers.google.com/optimization/routing/cvrp ) с указанным выше значением Setglobalspancostcofficient(100).
Тем не менее, результаты не отличаются ни с, ни без SetGlobalSpanCostCoefficient(100).
Я увеличил количество транспортных средств, чтобы показать разницу, но увеличенные транспортные средства все еще простаивают. Этого недостаточно для минимизации глобального диапазона.Я также пытаюсь увеличить большое число (например, 100) до большего числа, но решение по-прежнему остается неизменным.
Как я могу решить проблему CVRP при минимизации глобального диапазона?
Спасибо.
Комментарии:
1. Вы уверены, что это не оптимальное решение?
Ответ №1:
Установив ненулевой коэффициент (по умолчанию) для глобального диапазона, вы добавите его к целевой функции затрат, которая минимизируется решателем, поэтому она «уже» минимизирована, если она становится доминирующим фактором (сравните с суммой затрат arc)
обратите внимание, что в примере cvrp не используется локальный поиск…
search_parameters = pywrapcp.DefaultRoutingSearchParameters()
search_parameters.first_solution_strategy = (
routing_enums_pb2.FirstSolutionStrategy.PATH_CHEAPEST_ARC)
Поэтому сначала вы должны попробовать включить его.
например
search_parameters = pywrapcp.DefaultRoutingSearchParameters()
search_parameters.first_solution_strategy = (
routing_enums_pb2.FirstSolutionStrategy.PATH_CHEAPEST_ARC)
search_parameters.local_search_metaheuristic = (
routing_enums_pb2.LocalSearchMetaheuristic.GUIDED_LOCAL_SEARCH)
search_parameters.time_limit.FromSeconds(30)
search_parameters.log_search = True