Constraints GAMS:我如何表达约束$x{a,I,v&{x2B;1,l}-x{a,I,v,l}\leq y{a,I,v,l}$?

Constraints GAMS:我如何表达约束$x{a,I,v&{x2B;1,l}-x{a,I,v,l}\leq y{a,I,v,l}$?,constraints,conditional,gams-math,Constraints,Conditional,Gams Math,我在制定GAMS中的约束时遇到问题 我的限制如下: x{a,i,v+1,l}-x{a,i,v,l}\leq y{a,i,v,l} 和和(v,y{a,i,v,l})\leq 1 我已经尝试过几次了,但我认为(我知道)我做错了 我在gams中写道: con15(a、i、v、l)$(ord(v)lt 17)。。x(a,i,v,l)$(ord(v)eq ord(v)+1)- x(a,i,v,l)=l=u(a,i,v,l) con16(a,i,l)。。和(v,u(a,i,v,l))=l=1 一点额外的信息

我在制定GAMS中的约束时遇到问题

我的限制如下:

x{a,i,v+1,l}-x{a,i,v,l}\leq y{a,i,v,l}

和和(v,y{a,i,v,l})\leq 1

我已经尝试过几次了,但我认为(我知道)我做错了

我在gams中写道:

con15(a、i、v、l)$(ord(v)lt 17)。。x(a,i,v,l)$(ord(v)eq ord(v)+1)- x(a,i,v,l)=l=u(a,i,v,l)

con16(a,i,l)。。和(v,u(a,i,v,l))=l=1

一点额外的信息:

i“员工”/i1*i11/

l“天”/l1*l31/

a“依赖飞行计划的项目”/a1/

v“小时”/v1*v18/

在约束con15中,我说它只适用于小于或等于17的ord(v),这是因为我们有v1到v18

x和y也是二进制的

当我运行GAMS时,我得到了正常的编译和解决方案。问题是该解决方案违反了约束条件con16和con15

我是否使用ord和$correct


贝斯特·赫斯基首先,我想你可以用card()使你的等式更一般。这将告诉您集合中元素的数量

此外,“lt”表示严格低于。如果你想包含等式,你必须写“le”

我想试试这个:

con15(a,i,v,l)$(ord(v)lt卡(v))。。x(a,i,v+1,l)-x(a,i,v,l)=l=u(a,i,v,l)

con16(a,i,l)。。和(v,u(a,i,v,l))=l=1

我希望这有帮助


Salva。

最近,我在自己的一个项目中遇到了类似的问题,我是GAMS新手,但希望这能有所帮助:

结果表明,有序集和加法不太合拍:试着用v-1而不是v+1将你的问题重新表述为一个方程。有序集合从某个起点开始计数(和计算),直到定义的终点:将+1添加到尚未计算的点会导致我的模型出现问题,您的模型可能也会出现问题。祝你好运