【问题标题】:How to impletement a multi-objective optimization in Optaplanner?如何在 Optaplanner 中实现多目标优化?
【发布时间】:2018-12-31 01:38:51
【问题描述】:

我想用 Optaplanner 实现一个多目标优化,我已经阅读了文档中的“Pareto Scoring”章节。了解optaplanner中多目标规划的原理,但不知道具体如何实现,有如下疑问:

  1. 如何设计一个自定义的分数定义类,应该从哪个类扩展,基本上应该有什么文件?

  2. 作为一个多目标规划,我要为用户提供多种解决方案。但最好的解决方案只有一个,如何在规划时保留多个解决方案?这是否意味着,在 bestScoreChange 事件中,我必须计算分数,为每个目标找到并保留最佳解决方案?

【问题讨论】:

  • 你有一个你想要实现的例子吗?如果您有两个不同的目标,您是否可以简单地使用两组不同的规则同时运行两个不同的求解器?
  • 我正在开发一个作业车间项目,系统每天都会制定生产计划。我从用户那里得到了生产计划的两个目标——尽快开始任务并最小化成本,这些目标是不同的。 optaplanner 解决后,我想为这些每个目标提供最佳解决方案。我认为将目标拆分为一组不同的规则并并排运行它们是行不通的,因为这些目标彼此之间存在一些依赖关系。

标签: optaplanner


【解决方案1】:

如果你真的只有 2 个目标,你也可以通过在 @ConstraintConfiguration 类的 @ConstraintWeights 中运行两次不同分数级别的 Solver 来伪造它。

真正的帕累托求解要复杂得多,需要对 BestScolutionRecaller 进行调整,这只是冰山一角。

【讨论】:

    猜你喜欢
    • 2021-02-15
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    • 2016-11-17
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多