Optaplanner:在构建启发式阶段逐步改变监听器

Optaplanner : Step changes listener in construction heuristic phase

在 Optaplanner 中,我注意到每一步都有可变的变化监听器。 bestSolutionChanged 的​​ SolverEventListener 是在每个阶段之后计算的。但是,我找不到捕捉每个步骤结束时的变化。 有什么建议可以听取 Construction Heuristic 阶段的 Step 变化吗? 提前致谢。

要在步骤和阶段的级别上侦听事件,您需要使用名为 PhaseLifecycleListener 的内部侦听器。例如,内部基准代码使用它:

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,在未来的版本中不向后兼容,没有记录,不适合胆小的人,使用风险自负,你已经不在堪萨斯州了,多萝西,...: )