Loops 如何在GAMS中编写循环中的循环

Loops 如何在GAMS中编写循环中的循环,loops,gams-math,Loops,Gams Math,我有一个确定性模型,每次更改两个参数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尝试

我有一个确定性模型,每次更改两个参数
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个不同的值,并得到结果

请告诉我这样做的最佳方法是什么?

您可以检查如何使用循环语句

在您的例子中,您必须定义一组10个值和两个参数var1_值(i)、var2_值(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;
但不是方程式。您可能故意忽略了solve语句中的信息,但必须指定要求解的模型以及是否要最小化或最大化变量(在本例中可能是obj)。如果您没有指定这一点,GAMS只会找到一个可行的解决方案,它在您的模型中不会是唯一的