总和条件范围

conditional range in sum

我遇到一个情况,我需要对集​​合中接下来的 5 个元素求和。

我的条件是:sum(neighbor(x)) = 1 w.r.t x,从x+1到x+5

    Equation has_1_neighbor(x);
    has_1_neighbor(x).. Sum(x,x + 1,x+5,neighbor(x)) =e= 1; 

不幸的是,因为我需要在方程的定义域中包含 x,所以我实际上不允许对 x 求和。

有人知道如何实现这样的约束吗?

您可以使用 x 的别名,在总和和方程中使用该集合。

创建别名的语法很简单:

Alias(x,xx);