当我执行时,当我尝试使用可变限制进行求和时,我遇到了问题 在AMPL中,它返回错误"下限变量"和#34;上界变量"在最后一行,但我真的没有得到它,这就是使用min和max的确切想法! WTF 非常感谢
var Y{i in Dias,j in Bloques} binary;
var B{i in Dias,j in Bloques}= Y[i,j]*j;
var L{i in Dias}=min{n in Bloques}if B[i,n]>0 then B[i,n];
var M{i in Dias}=max{n in Bloques}if B[i,n]>0 then B[i,n];
#this line gives error
var V{i in Dias}= sum{z in (L[i]..M[i])}1-Y[i,z];
答案 0 :(得分:0)
您无法使用决策变量在a
(代码中为b
)中指定范围界限a..b
和L[i]..M[i]
。如果预先知道范围界限而不是优化过程的结果,那么您应该使用参数而不是变量。
param L{i in Dias} = ...
param M{i in Dias} = ...
否则你将不得不重新制定你的模型。