我正在使用OptaPlanner的车辆路由模块。在此示例中,无论是否突破了严格的限制(容量等),车辆都必须拜访所有客户。 从代码上讲,从技术上讲,是否有可能实现甚至没有硬性规定中断甚至没有车辆和客户分配的问题。
答案 0 :(得分:1)
如果我正确地理解了这个问题,那么您所说的是过度规划的情况,即所有客户的需求之和大于车辆总容量。
您希望OptaPlanner仅提出可行的解决方案,即不超出任何车辆的容量(因为这在物理上是不可能的),即使是以不拜访所有客户(这在物理上是可能的)为代价的。
我认为,由于车辆路由域的建模方式,目前尚无法实现。它称为variable chaining。在这种情况下,每个初始化的实体(客户)都是链的一部分。未访问的客户将是不属于任何链的客户,即未初始化的实体,但求解程序无法对实体进行初始化。
作为一种解决方法,您可以使用容量不受限制的幻影车实体,并将其用作回退来拜访由于容量限制而无法被真实车辆访问的客户的方法。通过这种方法,您将不得不调整计分功能,以激励在鬼车上使用真实车辆。