OptaPlanner –通过附近选择扩展车辆路线

OptaPlanner 6.2引入了附近选择功能,以解决车辆路径问题(VRP)和旅行商问题(TSP)的大规模优化。此功能通过优先考虑相邻位置的移动,提高了元启发式算法的效率,减少了评估时间,同时保持解决方案质量。通过使用如抛物线分布的概率分布,算法能够在大型VRP问题中实现更好的可扩展性。
摘要由CSDN通过智能技术生成

OptaPlanner 6.2在车辆路径问题(VRP),旅行商问题(TSP)和类似用例方面取得了重大进步。 邻近选择的新功能使它可以更有效地扩展到更大的问题,而不会牺牲潜在的最佳解决方案(这是劣等技术所常见的)。

让我们仔细看一下“车辆路径问题”附近的选择。 在这种用例中,我们必须使用许多车辆将物品运送到多个地理位置。 每辆车都必须尊重其容量(硬约束),我们需要使总行驶时间最小化(软约束)。 当然,实践中还会有其他特定于业务的约束。

附近位置

元启发式算法尝试通过更改当前解决方案(称为move )来研究其他解决方案,以改善当前解决方案。 例如,这里我们有一个VRP解决方案,我们尝试了3种不同的方法,希望找到更好的解决方案:

附近的选择动机

使用普通动作选择器时,这3个动作中的每个动作都具有相同的选择变化。 一些观察:

  • 将位置A移动到附近位置B后面可能会有所改善。 尽管如此,我们还需要考虑其他举措,因为其他限制因素(例如时间窗口)可能会使该解决方案不可行(或回报率较低)。
  • 将位置A移动到附近位置E可能是对原始解决方案的改进。 由于其他限制因素(例如车辆容量),它甚至可能是最佳选择。
  • 将位置A移动到非附近位置Z后面(在黄色链中)不太可能会有所改善。 尽管我们应该指出,我们不能完全排除它,因为其他约束(例如时间窗口)可能使其仅移动而导致可行的解决方案。

总的来说,我们观察到搬到附近的地点通常更有利可图 。 请注意,附近位置的集合因位置而异。

缩放问题

假设我们的VRP问题中有2 000地点。 这样一来,只有4 000 000举动改变了一个位置。 如果我们每秒可以评估100 000动作,那么我们需要40秒才能尝试仅1个位置的所有动作。 我们的算法将需要多次更改每个位置:让我们假设仅4次,导致8 000步,这将导致3 20 000秒或3天以上。 随着数据集的增长,情况变得更糟:每个位置的移动数量增加,评估时间减少,步数也增加...

在实践中,基准测试表明正态分布(对于BZ具有相同的选择概率)不能很好地扩展。

分区,地理围栏,MapReduce等

解决此缩放问题的一种传统方法是分区(也称为地理围栏):在求解之前,将位置分为几类,然后将车辆分布在它们之间。 如先前的博客中所示分区在很大程度上牺牲了解决方案的质量,从而降低了速度

这种方法的最大问题是固有的Catch 22 :在解决每个问题之前确定每辆车可以访问哪些位置,并知道每辆车要访问哪些位置...

附近选择

因此,我采用了一种不同的方法,称为“附近选择”:对于每个位置,我们都希望移至附近位置。

nearSelectionRandomDistribution

请注意,与正常选择不同,选择BC的机会要高得多。 而且与分区不同,我们仍然可以选择CE

OptaPlanner支持不同形式的概率分布:

  • 块分布:仅选择最近的n个,且概率相等。
  • 线性分布:以较高的概率选择最近的元素。 概率线性降低。
  • 抛物线分布(推荐):以较高的概率选择最近的元素。
  • Beta分布:根据Beta分布进行选择。 减慢求解器的速度。

基准结果

以下是一个大型VRP数据集的结果,该数据集具有2750个位置的真实时间距离(从带有GraphHopper的OpenStreetMap中收集)。 在附近的选择配置中,我使用了40个最近位置的抛物线分布。

比利时路时间N2750-K55_NearbyWithLA

附近选择带来的可扩展性增益是巨大的。

结论

如果您正在处理VRP用例,并且需要更好地扩展,请升级到OptaPlanner 6.2并使用附近的选择!

翻译自: https://www.javacodegeeks.com/2015/02/optaplanner-scaling-vehicle-routing-with-nearby-selection.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值