【发布时间】:2021-04-26 22:07:11
【问题描述】:
我有一个维度为 i 行 j 列的矩阵,其中的一个特定元素称为 x(i,j),其中 i 是植物,j 是市场。在标准 GAMS 表示法中:
Sets
i canning plants / seattle, san-diego /
j markets / new-york, chicago, topeka / ;
现在,我还希望创建一个循环,随着时间的推移——持续 5 个周期。本质上,说我定义
设置t时间段
/period1
period2
period3
period4
period5
/ ;
参数
time(t)
/ period1 1,
period2 2,
period3 3,
period4 4,
period5 5
/ ;
基本上,我想重新运行这个包含许多其他命令的循环,但我希望从第 2 阶段开始重新定义这个矩阵,看起来像这样:
x("seattle",j)=x("seattle",j)+s("new-york",j)
x("new-york",j)=0'
本质上,在循环中,我希望矩阵 x(i,j) 在第 2 期之后看起来有所不同,其中列 x("seattle",j) 被替换为以前的 x("seattle",j) +s("new-york",j) 列 x("new-york",j) 设置为 0。
循环开始如下:
loop
(t,
...
Option reslim = 20000 ;
option nlp = conopt3 ;
solve example using NLP maximizing VARIABLE ;
) ;
我不确定如何在循环中继续重新定义这个矩阵,每个周期>2。
请注意:在第 2 期之后,矩阵看起来相同。变化只发生一次(即,矩阵元素不会从前一个周期循环,而只是在周期 2 结束时切换 一次 ,然后在此后保持不变。
非常感谢您对此的任何帮助!
【问题讨论】:
标签: gams-math