首页 > 解决方案 > 如何在 Optaplanner 中实现多目标优化?

问题描述

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

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

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

标签: optaplanner

解决方案


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

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


推荐阅读