问题描述
我想在我的车队中增加一个尺寸,以限制每辆车可以行驶的距离。我的优化目标是时间。因此,我为仪表添加了另一个维度。现在,我发现除了设置尺寸容量之外,还可以调用一个名为SetSpanUpperBoundForVehicle
的函数。我假设这具有平衡每条路线的仪表的作用?
示例
- 这是我的路由求解器类中的一些代码,它启用了最大车辆约束
- 参数
balance
存在,因此我可以使用启用和禁用SetSpanUpperBoundForVehicle
def add_max_vehicle_meters(self,capacity: int,balance: bool = True):
def meters_callback(ix: int,iy: int):
nx = self.x2n(ix)
ny = self.x2n(iy)
return self.matrices.meters[nx][ny]
self.meters_callback = meters_callback
self.meters_callback_index = self.routing_model.RegisterTransitCallback(meters_callback)
self.routing_model.AddDimension(evaluator_index=self.meters_callback_index,slack_max=0,capacity=capacity,fix_start_cumul_to_zero=True,name='meters')
log.info(f'added max max vehicle meters with capacity = {capacity}')
if balance:
meters_dimension = self.routing_model.GetDimensionorDie('meters')
for vehicle_ix in range(self.req.max_vehicles):
meters_dimension.SetSpanUpperBoundForVehicle(capacity,vehicle_ix)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)