我使用分区搜索功能来解决非常大的VRPTW类问题。我已经实现了一个能够很好地完成工作的SolutionPartitioner。
不幸的是,有时会有1000个客户的分区,在这种情况下,我会使用附近的选择来加速计算。不幸的是,对于其他较小的分区(200个以下的客户),相同的附近选择配置比没有附近选择的结果更糟。
此外,使用一些启发式方法,我可以指定一组自定义的“智能”移动(在移动工厂中),这有助于更快地找到最佳解决方案,但有时将所有这些移动用于每个创建的分区都是不合适的。
是否可以单独为每个分区配置本地搜索选项?
答案 0 :(得分:0)
目前在7.7中,不可能为不同的分区配置不同的子解算器算法,因为PartitionedSearchPhaseConfig.java
不支持(但是?)。
请在文本文件中创建一个解决方案配置XML的样子。然后create a jira为它。
这与(未实现的)对超启发式的支持有关,它可以配置求解器配置以根据输入大小调整算法,例如使用不同的选择器。
我认为超启发式可能直接解决了这个问题,并且它被分区的事实并不重要,因为<hyperheuristic>
将嵌套到<partionedSearch>
并且会切换到附近和非根据需要在每个分区附近。