【问题标题】:Optaplanner : Step changes listener in construction heuristic phaseOptaplanner:在构造启发式阶段逐步更改侦听器
【发布时间】:2015-04-02 04:48:24
【问题描述】:

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

【问题讨论】:

    标签: drools optaplanner


    【解决方案1】:

    要在步骤和阶段级别上侦听事件,您需要使用名为 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,在未来的版本中不向后兼容,没有文档记录,不适合胆小的人,使用风险自负,你已经不在堪萨斯了,Dorothy,... :)

    【讨论】:

    • 请务必先阅读文档中的“范围(求解器、阶段、步骤、移动)”。
    猜你喜欢
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-14
    相关资源
    最近更新 更多