lower/upper 中的变量绑定错误 AMPL
Variable in lower/upper bound error AMPL
当我尝试计算具有可变限制的总和时遇到问题,当我执行
在 AMPL 中,它 returns 错误 "Variable in Lower Bound" 和 "Variable in Upper Bound" 在最后一行,但我真的不明白,这就是使用 min 和 max 的确切想法!卧槽
非常感谢
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];
您不能使用决策变量在 a..b
中指定范围界限 a
和 b
(代码中的 L[i]..M[i]
)。如果预先知道范围边界而不是优化过程的结果,那么您应该使用参数而不是变量。
param L{i in Dias} = ...
param M{i in Dias} = ...
否则您将不得不重新制定您的模型。
当我尝试计算具有可变限制的总和时遇到问题,当我执行 在 AMPL 中,它 returns 错误 "Variable in Lower Bound" 和 "Variable in Upper Bound" 在最后一行,但我真的不明白,这就是使用 min 和 max 的确切想法!卧槽 非常感谢
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];
您不能使用决策变量在 a..b
中指定范围界限 a
和 b
(代码中的 L[i]..M[i]
)。如果预先知道范围边界而不是优化过程的结果,那么您应该使用参数而不是变量。
param L{i in Dias} = ...
param M{i in Dias} = ...
否则您将不得不重新制定您的模型。