OptaPlanner中加什么约束比较好
What's the better what to add constrains in OptaPlanner
我正在为优化问题构建 OptaPlan 解决方案。
我有一个 List<Integer>
叫做权重
这些是我模型中唯一的planning variable
,其他都是影子。
我想确保权重总和 (weights[0] + weights[1] + weights[2]... = 1000)
,而权重以外的变量 (shadow
) 将确保什么是最佳解决方案(使用 SimpleScore
)。
使用简单的 EasyScoreCalculator
可能会产生大量的问题来搜索我的问题。我相信每次 weights[0] + weights[1] + weights[2]... != 1000
的惩罚分数是一种未优化的(慢)方法。
最好的方法是什么。
你应该惩罚这个总和与 1000 之间的差值。例如,如果重量总和为 920,则惩罚 -80。如果权重为1019,惩罚-19.
看看云平衡问题,我怀疑您只需要将包含 @PlanningVariable Boolean 等于 true 的项目的所有权重相加即可。
我正在为优化问题构建 OptaPlan 解决方案。
我有一个 List<Integer>
叫做权重
这些是我模型中唯一的planning variable
,其他都是影子。
我想确保权重总和 (weights[0] + weights[1] + weights[2]... = 1000)
,而权重以外的变量 (shadow
) 将确保什么是最佳解决方案(使用 SimpleScore
)。
使用简单的 EasyScoreCalculator
可能会产生大量的问题来搜索我的问题。我相信每次 weights[0] + weights[1] + weights[2]... != 1000
的惩罚分数是一种未优化的(慢)方法。
最好的方法是什么。
你应该惩罚这个总和与 1000 之间的差值。例如,如果重量总和为 920,则惩罚 -80。如果权重为1019,惩罚-19.
看看云平衡问题,我怀疑您只需要将包含 @PlanningVariable Boolean 等于 true 的项目的所有权重相加即可。