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 中指定范围界限 ab(代码中的 L[i]..M[i])。如果预先知道范围边界而不是优化过程的结果,那么您应该使用参数而不是变量。

param L{i in Dias} = ...
param M{i in Dias} = ...

否则您将不得不重新制定您的模型。