重新使用计算结构进行移动和分数计算

Re-use computed structures for moves & score calculation

计算分数时,在我的 MoveIteratorFactories 中,我需要根据给定的解决方案计算相同的数据结构。

对于任何给定的解决方案,仅计算一次这些数据结构的最佳方法是什么?

谢谢,

安托万

使用 影子变量 (PlanningVariableListener),您可以将这些计算机结构存储在您的领域模型中,在这种情况下,它们也可用于您的自定义移动工厂。

在内部,OptaPlanner(自 6.2 起)使用供需系统来提供此类计算结构,而无需 1) 要求它们在域模型上(通过外部化供应)和 2) 无需进行更多计算不止一次(因为多个需求获得相同的供应)和 3)仅在需要时进行计算(没有需求意味着没有外部化供应)。但那是内部 API,所以你不应该使用它...