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