首页 > 解决方案 > Optaplanner:查看中间分数

问题描述

有没有办法在求解器运行时不时跟踪分数?

我目前实例化我的求解器如下

SolverFactory solverFactory = SolverFactory.createFromXmlResource("solver/SolverConfig.xml");
Solver solver = solverFactory.buildSolver();
solver.addEventListener(new SolverEventListener() {
    @Override
    public void bestSolutionChanged(BestSolutionChangedEvent event) {
        logger.info("New best score : " + event.getNewBestScore().toShortString());
    }
});
solver.solve(planningSolution);

这样,每次最好成绩发生变化时,我都能看到日志。

但是,我想在每 100 步或每 10 秒后查看分数。那可能吗?

标签: optaplanner

解决方案


如果您打开 DEBUG(或 TRACE)日志记录,您会看到它。如果您想在 java 中收听它,公共 API 不支持,但PhaseLifecycleListener在内部实现中没有向后兼容性保证......


推荐阅读