减少 GAMS 中的搜索空间



现在,我有了类似于以下示例的 GAMS 代码。语句二进制变量 x(i,j( 表示 GAMS 将使用 index(i,j( 创建一百个变量 x。如何让 GAMS 仅在 are(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);

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

binary variables x(i,j);

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

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

正如您所说,这将生成 100 x 变量,但现在让我们使用 $-条件对其进行修改:

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

这将仅创建 are 不为 0 的 x 变量。无论在哪里使用 x,您都必须使用相同的 $-条件。

希望对您有所帮助!卢茨

最新更新