如何计算用于 MiniZinc 下游约束的数组元素子集的中间总和?

How can I calculate an intermediate sum of a subset of array elements to use in a downstream constraint in MiniZinc?

我有一个类型为 int [0,0,0,0,0] 的数组 a,长度为 l

我想计算所有具有奇数索引的元素的总和以用于下游约束,这里是一些“伪”MiniZinc 代码:

s = sum(i in 1..l | i mod 2 == 0) (a[i]);

solve maximize(s);

如何做到这一点?

我不知道什么是"downstream constraint",但是你可以使用"where"在循环中添加条件:

 constraint
     s = sum(i in 1..l where i mod 2 == 0) (a[i])
 ;