or-tools单驱动程序优先解决方案问题

问题描述

在我的应用程序中,我有一个驾驶员和许多车辆。也就是说,他可以在上次旅行结束后驾驶下一辆车 就约束而言,就像

routing.solver().AddConstraint(
                             time_dimension.CumulVar(routing.End(int(pre_vehicle_id))) <=
                             time_dimension.CumulVar(routing.Start(int(vehicle_id)))
                        )

经过多次尝试,我发现只有将第一个解决方案策略设置为PARALLEL_CHEAPEST_INSERTION时,此类约束才有效。

在这里,我有一些问题:

  • 有时它会无故失败,或者需要很长时间才能获得第一个解决方案。 这是一个错误吗?或者我做错了。实现这种约束的正确方法是什么

解决方法

路由求解器正在尽最大努力用不同的驱动程序构建并行路由。 您的额外约束只是打破了求解器正在构建的所有可行路线,因此很难找到可行的解决方案。

要解决您的问题,您只需要一个驱动程序(路由API中的车辆)。

由于容量限制,一辆车不足以访问所有节点。您需要从reload model那里获得灵感,在该节点上,初始节点副本处的重新加载对应于车辆更换。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...