0
在Optaplanner中,我注意到每个步骤都有可变更改监听器。而SolverEventListener for bestSolutionChanged是在每个阶段之后计算的。但是,我无法找到每一步结束时的变化。 任何建议听建设启发式阶段的步骤变化? 在此先感谢。Optaplanner:在施工启发阶段更改监听器
在Optaplanner中,我注意到每个步骤都有可变更改监听器。而SolverEventListener for bestSolutionChanged是在每个阶段之后计算的。但是,我无法找到每一步结束时的变化。 任何建议听建设启发式阶段的步骤变化? 在此先感谢。Optaplanner:在施工启发阶段更改监听器
要收听步骤和阶段级别的事件,您需要使用名为PhaseLifecycleListener
的内部侦听器。例如内部benchmarker代码使用它:
StepScoreSingleStatisticListener listener = new StepScoreSingleStatisticListener();
((DefaultSolver) solver).addPhaseLifecycleListener(listener);
// solver.solve(...);
((DefaultSolver) solver).removePhaseLifecycleListener(listener);
的实现可能是这个样子:
private class StepScoreSingleStatisticListener extends PhaseLifecycleListenerAdapter {
@Override
public void stepEnded(AbstractStepScope stepScope) {
...
}
}
警告:这是内部API,在将来的版本不向后兼容,不记录,不为心情不好,使用后果自负,你不再在堪萨斯州多萝西,... :)
请务必先阅读文档中的“范围(求解器,阶段,步骤,移动)”。 – 2015-04-03 07:01:05