减少 GAMS 中的搜索 space

reduce searching space in GAMS

现在,我有了如下示例的 GAMS 代码。语句二元变量 x(i,j) 表示 GAMS 将创建一百个变量 x,索引为 (i,j)。如何让GAMS只在r(i,j)存在时才创建变量x(i,j),减少变量x的个数?

set i nodes /1*10/;
alias (i, j);
parameter r(i,j) factor /1.2 1 ......  7.8 1/;
binary variables x(i,j);

使用变量时需要使用$-condition。宣言

binary variables x(i,j);

本身不产生任何变量。它们是在使用时创建的,例如,在方程式中。看看这个虚拟方程式的例子:

equation dummy(i);
dummy(i).. sum(j, x(i,j)) =l= 5;

如您所说,这将生成 100 x 个变量,但现在让我们使用 $-condition 修改它:

dummy(i).. sum(j$r(i,j), x(i,j)) =l= 5;

这将只创建那些 r 不为 0 的 x 变量。您必须在使用 x 的任何地方使用相同的 $-condition。

希望对您有所帮助! 卢茨