在optaplanner中获得更少的解决方案和更多的机会

时间:2014-08-24 08:46:06

标签: optaplanner

我的计划变量是可以由单个车辆执行的4个车辆行​​驶(路线)的组合。单独运行是计划实体。目标是找到车辆在路线上执行所有运行的满载路线的最大数量。运行只能与单个路径关联。硬约束确保运行落在包含特定运行的路线上。

我的问题是,当使用较少数量的路线(300)时,我似乎得到了合理的解决方案,但是当数量路线增加到30,000时,路线数量减少而不是增加。它应该增加,因为有更多的可能性。

对于得分,我正在最小化与跑步相关的数量路线,从而最大化最少数量路线的跑步次数。其他分数最小化/平衡路线松弛和旅行时间 - 这条规则在其他地方适用于我。我使用默认移动和交换。

1 个答案:

答案 0 :(得分:0)

一旦你超过10K的客户,正常的VRP实施就不会这样做。例如,为了保持RAM存储器中20K客户之间的实际距离,您需要一个长度为20K和20K的32位整数的二维数组。这几乎相当于2GB RAM。并且它不会线性扩展。

在美国的VRP中,将波士顿与圣地亚哥联系起来可能毫无用处。因此,性能也存在问题。

出于这个原因,我将在OptaPlanner 6.2(即将推出)中添加100K客户的示例,并通过限制波士顿连接到它附近的城市来解决它(它比这更复杂,但这是它的要点)。如果您在接下来的几周内需要一些东西,我建议您查看the testimonial page文章中描述的地理围栏方法。请注意,我的方法与地理围栏有些不同,而且还没有更好的证据(但我相信我的当​​然是好的)。