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只会找到一个可行的解决方案,它在您的模型中不会是唯一的