不允许违反硬性规则,即使可以为空的解决方案在 VRS 中也可以

No hard rule break allowed even nullable solution is ok in VRS

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

如果我没理解错的话,你说的是过度约束的规划情况,即所有客户的需求总和大于车队的总容量。

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

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

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