强文 Hello 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最终版本中执行此操作?我只看到了获得最佳解决方案的方法。我确信我错过了什么,只是不确定是什么。任何指针都将非常感激。
感谢您的时间,
爱丽丝
答案 0 :(得分:1)
可能有更好的解决方案,但我建议您通过以下方式为解算器添加SolverEventListener
solver.addEventListener(new SolverEventListener<Solution>() {
@Override
public void bestSolutionChanged(BestSolutionChangedEvent<Solution> event) {
// TODO Auto-generated method stub
}
});
每次找到更好的解决方案时,都会调用bestSolutionChanged方法。从这里你需要克隆(我认为,Geoffrey会更清楚)解决方案并将其保存到列表中(可能保留最后5个最佳解决方案或者什么?我会检查克隆过程需要多长时间,因为该方法应该返回很快。