首页 > 解决方案 > 即使可以为空的解决方案在 VRS 中也可以,不允许硬性规则中断

问题描述

我正在使用 OptaPlanner 的车辆路由模块。在网站上的这个例子中,无论是否打破硬约束(容量等),车辆都必须访问所有客户。在代码中是否有可能在技术上实现没有硬性规则甚至更少或没有车辆和客户的分配发生。

标签: javaoptaplanner

解决方案


如果我正确理解了这个问题,那么您说的是过度约束的规划情况,即所有客户的需求总和大于车队的总容量。

您希望 OptaPlanner 仅提出可行的解决方案,即不超过任何车辆的容量(因为这在物理上是不可能的),即使以不拜访所有客户为代价(这在物理上是可能的)。

我相信由于车辆路由域的建模方式,目前这是不可能的。它被称为变量链接。在这种情况下,每个初始化的实体(客户)都是链的一部分。未访问的客户将是不属于任何链的客户,因此是未初始化的实体,但求解器无法取消初始化实体。

作为一种解决方法,您可以使用具有无限容量的幽灵车辆实体并将其用作后备来访问由于容量限制而无法被真实车辆访问的客户。使用这种方法,您必须调整评分功能以激励使用真实车辆而不是幽灵车辆。


推荐阅读