ORTools-车辆路线安排-最大限度减少途中的包裹时间

问题描述

我正在创建用于车辆接送和运输的解决方案。我的目标是将每个包装的运输时间减到最少(领域是食品运送,我们不会使食品准备和运送之间的时间尽可能短)。我的想法是为每个收货/送货对创建一个变量,并告诉路由将其最小化:

solver = routing.solver()

diff = solver.Intvar(0,MAX_TIMESTAMP_VALUE,f'diff_{pickup_node}_{delivery_node}')
solver.Add(diff == time_dimension.CumulVar(delivery_index) - time_dimension.CumulVar(pickup_index))

routing.AddWeightedVariableMinimizedByFinalizer(diff,1) 

不幸的是,这行不通-求解器似乎完全忽略了该目标,并产生了与没有目标相同的解决方案。有人可以告诉我,这是什么问题?

解决方法

这不是目标。 终结器只是告诉求解器它需要修复这个额外的变量,并指出需要朝哪个方向分支。