【发布时间】:2021-05-29 03:35:27
【问题描述】:
根据 Google-OR 文档:https://developers.google.com/optimization/reference/constraint_solver/routing/RoutingModel#AddDimension add dimension 只允许设置某些东西的上限。
我正在尝试在提货和交付问题 (https://developers.google.com/optimization/routing/pickup_delivery) 中设置车辆在路线上的距离下限。我试过了:
def negative_distance_callback (from_index, to_index):
"""
return the negative distance, use for minimization
"""
return -1 * distance_callback(from_index, to_index)
transit_neg_callback_index = routing.RegisterTransitCallback(negative_distance_callback)
dimension_name = 'Negative_Distance'
routing.AddDimension(
transit_neg_callback_index,
0, # no slack
-1000, # vehicle minimum travel distance
True, # start cumul to zero
dimension_name)
negative_distance_dimension = routing.GetDimensionOrDie(dimension_name)
negative_distance_dimension.SetGlobalSpanCostCoefficient(100)
这个想法是创建一个负距离回调并尝试最大化它。
但是,我遇到了错误:Check failed: min_capacity >= 0 (-1000 vs. 0)
如何使用 Google-OR 设置 PDP 问题的最小约束?
非常感谢
【问题讨论】:
标签: optimization or-tools