Optaplanner:查看中间分数

Optaplanner : View intermediate score

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

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

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 秒后查看分数。这可能吗?

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