楼主: 【炊烟】
5989 7

[学科前沿] 用GAMS如何编写如下约束条件,在线等。 [推广有奖]

  • 0关注
  • 4粉丝

已卖:40份资源

硕士生

75%

还不是VIP/贵宾

-

TA的文库  其他...

Robust optimization

威望
0
论坛币
248 个
通用积分
0.4018
学术水平
1 点
热心指数
2 点
信用等级
1 点
经验
9103 点
帖子
145
精华
0
在线时间
216 小时
注册时间
2011-5-19
最后登录
2023-10-8

楼主
【炊烟】 发表于 2014-9-7 20:20:34 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
p(j)+q(i,j)=l=0.05*x(i)*a(i,j)这样写为什么会报错?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:gams 约束条件 GAM AMS 在线等 在线 如何

gams1.JPG (15.93 KB)

gams1.JPG

沙发
qianhaoqi 在职认证  发表于 2014-9-8 23:03:00
你定义的约束方程是不是忘了写维度?

EQUATIONS
        CONS(i,j)
;
CONS(i,j)..    z(i) + p(i,j) =G= a(i,j) * x(j);

藤椅
【炊烟】 发表于 2014-9-9 10:26:52
qianhaoqi 发表于 2014-9-8 23:03
你定义的约束方程是不是忘了写维度?

EQUATIONS
嗯,非常感谢啊,但还是会出现domain violation for set的报错,还有,当j=1的时候需要单独列出,如何写?

板凳
【炊烟】 发表于 2014-9-9 10:34:21
qianhaoqi 发表于 2014-9-8 23:03
你定义的约束方程是不是忘了写维度?

EQUATIONS
face(1)..z- sum(m,u(m)*do1(m))+2*p(1)+sum(i,q(i,1)) =l= 0
或 scalar b /1/;
face(b)..z- sum(m,u(m)*do1(m))+2*p(b)+sum(i,q(i,b)) =l= 0都会出现domain violation for set,如何改写?

报纸
qianhaoqi 在职认证  发表于 2014-9-10 13:40:45
【炊烟】 发表于 2014-9-9 10:26
嗯,非常感谢啊,但还是会出现domain violation for set的报错,还有,当j=1的时候需要单独列出,如何写? ...
需要单独列出的,然后定义一个子集的映射,用自己去conditional控制equations
举例来说:

SETS
        i       / 1*2 /
        j       / 1*5 /
        ij(i,j) / 1*2.1 /
;

EQUATIONS
        CONS1(i,j)
        CONS2(i,j)
;
CONS1(i,j)$ij(i,j)..    z(i) + p(i,j) =G= a(i,j) * x(j);
CONS2(i,j)$(not ij(i,j))..    z(i) + p(i,j) =G= a(i,j) * x(j);

上面定义的ij(i,j)是一个映射集合,这个集合定义的是(i=1,j=1)和(i=2,j=1),所以对应的CONS1方程就仅仅包含j=1的所有情况,而CONS2方程对应的是剩下的所有情况~

地板
qianhaoqi 在职认证  发表于 2014-9-10 13:42:41
【炊烟】 发表于 2014-9-9 10:34
face(1)..z- sum(m,u(m)*do1(m))+2*p(1)+sum(i,q(i,1)) =l= 0
或 scalar b /1/;
face(b)..z- sum(m,u ...
conditional equation要用conditional的写法,GAMS里用的是dollar符号$,见上楼的例子可参考~或者查看GAMS的users guide里也有说明~

7
bkjg 发表于 2015-6-1 20:02:56
qianhaoqi 发表于 2014-9-10 13:42
conditional equation要用conditional的写法,GAMS里用的是dollar符号$,见上楼的例子可参考~或者查看GAM ...
请问$符号有什么用?

例如等式里 z=e=sum((i,j) $sam(i,j),(Q(i,j)-sam(i,j))**2);

8
qianhaoqi 在职认证  发表于 2015-6-2 14:39:54
bkjg 发表于 2015-6-1 20:02
请问$符号有什么用?

例如等式里 z=e=sum((i,j) $sam(i,j),(Q(i,j)-sam(i,j))**2);
$符号是表示行内条件判断,$sam(i,j)这个条件就是说只有sam这个二维变量中,第i行第j列的数据不为0时,才会对(i,j)这组维度进行加总,否则就跳过这一“sam单元格”。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 10:41