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 的项目的所有权重相加即可。