在一步中,让我们说本地搜索OptaPlanner通过移动然后调用undoMove来评估N个不同的移动,然后在最后从N评估中进行最佳移动。是否有办法找出移动的时间什么时候是undoMove?
答案 0 :(得分:1)
变量侦听器在undoMove结束时触发(因为从6.3开始每个移动都必须ScoreDirector.triggerVariableListeners()
。)
默认情况下,在undoMove之后不会重新计算得分(因为它可以预测,因此它会浪费掉)。但是使用enviromnentMode FAST / FULL_ASSERT,但不是NON_INTRUSIVE_FULL_ASSERT。当然,在撤消移动之后,你不应该使用它们来强制重新计算得分:你不应该依赖撤销移动后重新计算的分数。