问题描述
每个驾驶员(车辆)在上班8小时后需要休息30分钟。引用previous issue,这是我的代码:
# Add breaks
node_visit_transit = {}
for n in range(routing.Size()):
if n >= len(data['node_name']):
node_visit_transit[n] = 0
else:
if n in data['pickups']:
node_visit_transit[n] = int(data['load_time'][n])
else:
node_visit_transit[n] = int(data['unload_time'][n])
break_intervals = {}
for v in range(data['num_vehicles']):
break_intervals[v] = [
routing.solver().FixedDurationIntervalVar(
MAX_TIME_BETWEEN_BREAKS,MAX_TIME_BETWEEN_BREAKS,BREAK_DURATION,False,'Break for vehicle {}'.format(v))
]
time_dimension.SetBreakIntervalsOfVehicle(
break_intervals[v],v,node_visit_transit)
但是,添加此代码段时找不到解决方案,而以前存在解决方案。一些问题:
-
node_visit_transit
的用途是什么?从Github代码来看,它似乎考虑了某种形式的加载时间(基于负载需求),因此我在这里将其调整为适合加载/卸载时间。 - 我可以正确使用
FixedDurationIntervalVar
吗?我希望驾驶员在BREAK_DURATION
小时内上班后休息MAX_TIME_BETWEEN_BREAKS
,无论开始时间如何。我担心这会迫使他们在绝对时间MAX_TIME_BETWEEN_BREAKS
休息一下,即如果MAX_TIME_BETWEEN_BREAKS = 8
,那么他们都会在08:00休息一下。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)