【问题标题】:GAMS Definition of a Subset with k and k+1具有 k 和 k+1 的子集的 GAMS 定义
【发布时间】:2017-04-07 10:03:08
【问题描述】:

所以我有以下设置:

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

我通过 GDX 导入通过 Excel 表定义我的集合和参数,因此我可以动态更改集合和参数,以便使用线性规划模型进行计算研究。

我如何用 k´ 定义这种集合,以便它与 d_kk´(从 k 到 k´ 的距离)和 t_jkk´ 等参数一起工作?

请记住,对于每个指数,解决方案必须至少在 1,...,100 范围内有效。

非常感谢。 干杯, 山姆

【问题讨论】:

  • edit您的问题显示the code you have so far。您应该至少包含您遇到问题的代码的大纲(但最好是minimal reproducible example),然后我们可以尝试帮助解决具体问题。您还应该阅读How to Ask
  • 这个问题有点难读。我认为你从 Excel 中得到的是一个集合 k,现在你想要一个集合 k1 少一个元素(第一个元素被删除)。这可以通过set k1(k); k1(k)$(ord(k)>1) = yes 完成;始终与display k1; 联系。由于k1 是一个动态集合,请记住声明parameter d(k,k) 而不是parameter d(k,k1)。 (引用d时可以使用d(k,k1))。

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


【解决方案1】:

听起来你想计算集合 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多