【问题标题】:How to implement a problemFactChange while using optaplanner-spring-boot-starter?如何在使用 optaplanner-spring-boot-starter 时实现 questionFactChange?
【发布时间】:2021-04-13 15:34:25
【问题描述】:

我将 Optaplanner 8.3.0.Final 与 optaplanner-spring-boot-starter 一起使用,一切都按预期工作,只是我不知道如何实现 issueFactChange。

这个问题:How is the scoreDirector accessed when using the autowired SolverManager with Optaplanner? 提到自动装配solverfactory,然后使用 Solverfactory .getScoreDirectorFactory()。但是我看不到如何使用它来访问有线求解器管理器正在使用的求解器,我相信这就是我所需要的“addProblemFactChange”,当求解器可以这样做时,它应该会改变问题事实。

【问题讨论】:

    标签: spring-boot optaplanner


    【解决方案1】:

    SolverManager 缺少 addProblemFactChange() 方法的 API 差距。

    Vote for it.

    解决方法

    如果没有高级 SolverManager API,解决方法是改用低级 Solver API:

    @Autowired
    SolverFactory<MySolution> solverFactory
    
    public void runSolver() { // don't call this directly in an HTTP servlet/rest thread
        Solver<MySolution> solver = solverFactory().buildSolver();
        solver.solve(myProblem); // hogs the current thread
    }
    
    public void doChange() {
        solver.addProblemFactChange( ... /* do change */);
    }
    

    【讨论】:

    • Ge0ffrey,再次感谢您的帮助。我想我已经问了十年了。没有它,我无法使用 Optaplanner。使用 autowired solverFactory 创建的 Solver 是否链接到 SolverManager 使用的求解器?或者解决方法是否意味着完全使用 SolverFactory?我正在使用 SolverManager 中的功能,例如 Listen 和线程。
    • 我投了赞成票。某处是否还有“付费”链接?然后,如果解决方法不够,我可以为客户提供一个选项。
    • Red Hat(雇用所有 OptaPlanner 全职开发人员、QA 等)提供支持和咨询订阅。如果有客户请求,例如针对此功能,它是任何和所有社区请求的重中之重。见optaplanner.org/product/services.html
    • 这个是加到api里的吗?我还需要solverManager中的addProblemFactChange
    猜你喜欢
    • 2023-04-04
    • 2023-01-07
    • 2019-10-28
    • 2014-04-07
    • 2016-01-29
    • 1970-01-01
    • 2019-06-23
    • 1970-01-01
    • 2015-07-07
    相关资源
    最近更新 更多