如何区分Move和undoMove?

时间:2016-04-14 16:08:36

标签: optaplanner

在一步中,让我们说本地搜索OptaPlanner通过移动然后调用undoMove来评估N个不同的移动,然后在最后从N评估中进行最佳移动。是否有办法找出移动的时间什么时候是undoMove?

1 个答案:

答案 0 :(得分:1)

变量侦听器在undoMove结束时触发(因为从6.3开始每个移动都必须ScoreDirector.triggerVariableListeners()。)

默认情况下,在undoMove之后不会重新计算得分(因为它可以预测,因此它会浪费掉)。但是使用enviromnentMode FAST / FULL_ASSERT,但不是NON_INTRUSIVE_FULL_ASSERT。当然,在撤消移动之后,你不应该使用它们来强制重新计算得分:你不应该依赖撤销移动后重新计算的分数。