使用 optaplanner 返回调度问题的多个解决方案

2024-04-06

强文本您好 Optaplanner 专家,

我对 OptaPlanner 还很陌生,所以请原谅任何幼稚或基本的问题。我用它来安排:

set of jobs, A, B and C, which can be completed by 5 resources, say Will, Jane, Roy, Tom, Jeff. 

这些工作中的每一项都可以由 5 种资源中的任何一种来完成。将会有一些算法根据软约束来计算谁是最合适的,但我还没有做到。现在,我只需要想出多种解决方案,比如说

1. Will - A, Roy - B and Jeff - C
2. Roy - B, Tom - B and Jane - C
... and so on

有没有办法在 OptaPlanner 6.2.0 Final 版本中执行此操作?我只看到一种获得最佳解决方案的方法。我确信我错过了一些东西,只是不确定是什么。任何指示将不胜感激。

感谢您的时间,

Alice


可能有更好的解决方案,但我建议添加一个求解器事件监听器 http://docs.jboss.org/optaplanner/release/6.2.0.Final/optaplanner-docs/html_single/index.html#SolverEventListener通过以下方式到您的求解器:

solver.addEventListener(new SolverEventListener<Solution>() {
    @Override
    public void bestSolutionChanged(BestSolutionChangedEvent<Solution> event) {
        // TODO Auto-generated method stub  
    }
});

每次找到更好的解决方案时都会调用 bestSolutionChanged 方法。从这里开始,您将需要克隆(我认为杰弗里会更好)解决方案并将其保存到列表中(也许保留最后 5 个最佳解决方案或其他内容?我会检查克隆过程需要多长时间,因为该方法应该返回而不是迅速地。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 optaplanner 返回调度问题的多个解决方案 的相关文章

随机推荐