GAMS定义了k和k + 1的子集

时间:2017-04-07 10:03:08

标签: set subset linear-programming indices gams-math

所以我有以下几集:

i 1,2,3,...,I
j 1,2,3,...,J
k 1,2,3,...,K with k´2,3,4,...,K

我通过Excel Sheet通过GDX-import定义我的设置和参数,因此我可以动态更改Set和参数,以便使用线性编程模型进行计算研究。

如何使用k'定义这种类型的集合,以便它可以使用d_kk'(从k到k'的距离)和t_jkk'等参数?

请记住,解决方案必须在每个目标上大规模地工作至少1,......,100。

非常感谢。 干杯, SAM

1 个答案:

答案 0 :(得分:0)

听起来你想要计算集k中不同点之间的距离。使用别名集和多维数集:

Set i /1*I/
    j /1*J/
    k /1*K/
    kk(k,k);
alias(ka,k);

kk(k,ka)$(ord(k)<ord(ka))=yes;

parameter 
    x(k) 'x-koordinate'
    y(k) 'y-koordinate'
    d(k,k) 'Distance from k to ka';

x(k)=uniform(0,1);
y(k)=uniform(0,1);

d(k,ka)$kk(k,ka)=sqrt((x(k)-x(ka))^2+(y(k)-y(ka))^2);