0

我有一个确定性模型,我想每次更改两个参数时多次运行我的模型Var1,并Var2查看它们如何影响结果。我可以这样总结我的模型:

...
equations obj,a,b;

obj...  Ax+By=e=cost;
a...    x+y=l=var1 * z1;
b...    x+y=l=var2 * z2;

solve;
dispaly cost.l;
dispaly y.l;
dispaly x.l;

其中 x,y 是变量,var1、z1、var2 和 z2 是参数。我想为 var1 尝试 10 个不同的值,为 var2 尝试 10 个不同的值并得到结果。

请告诉我最好的方法是什么?

4

1 回答 1

0

您可以在此处查看如何使用循环语句。

在您的情况下,您必须定义一组 i,其中包含 10 个值和两个参数 var1_values(i)、var2_values(i)。

在你的循环中,你必须包括

var1 = var1_values(i);
var2 = var2_values(i);
solve;
*you can also store values to new parameters
display cost.l;
display y.l;
display x.l;

但不是方程。您可能故意省略了求解语句中的信息,但您必须指定要求解的模型以及是否要最小化或最大化变量(在这种情况下可能是 obj)。如果您不指定这一点,GAMS 只会找到一个可行的解决方案,该解决方案在您的模型中不会是唯一的。

于 2012-05-18T10:03:40.010 回答