在车辆路线或TSP问题的背景下:假设我们希望将两个地点之间的旅行时间具体化为一个成本矩阵问题的事实。
我们可以重写地理定位类的distanceTo
-method,以简单地查找矩阵中的值。但要做到这一点,我们需要在地理位置实例中存储矩阵实例的引用。
这对溶液克隆和相关的规划实体有什么影响?在计划过程中,矩阵是否会被深入克隆/不同的规划-实体会指向不同的矩阵-实例?当然,这是应该避免的,因为矩阵在计划和深度克隆过程中不会发生变化,这可能会导致性能下降。相反,每个地理位置的矩阵引用应该指向内存中相同的矩阵对象.
是FieldAccessingSolutionCloner
适当地处理了这个问题,还是我们需要提供我们自己的SolutionCloner
?
发布于 2019-05-01 09:52:34
SolutionCloner执行一个规划克隆,它不克隆问题事实,除非问题事实引用了计划解决方案或计划实体。您的类模型应该是这样设计的,在那里不需要计划克隆您的距离矩阵.
optaplanner中的VRP示例没有克隆它的距离矩阵(位置实例没有计划克隆)。
重要的是要理解,任何直接或间接引用计划实体或计划解决方案的内容都必须是计划克隆的,或者对工作解决方案的更改会影响到最佳解决方案,从而破坏它。
https://stackoverflow.com/questions/55891590
复制相似问题