我真的希望有人可以帮忙... 这就是我在.mod文件中拥有的
set I := 1..10;
set J := 1..10;
set K := 1..2;
set W := 1..20;
param v{K, W};
param d{I, J};
var x1, integer;
var y1, integer;
var x2, integer;
var y2, integer;
var assist{W}, binary;
这是代码生成错误:
minimize nome: sum{w in W} (if (assist[w] == 0) then
(if (x1 >= v[1,w]) then
(if (y1 >= v[2,w]) then
(d[x1 - v[1,w],y1 - v[2,w]])....
错误以最后一行为例:
Variables in subscripts are not yet allowed.
context: (d[x1 - v[1,w],y1 - >>> v[2,w]] <<< )
这是约束之一(其他都一样):
subject to rangex1:
x1 > 0 && x1 <= 10;
答案 0 :(得分:1)
如错误消息所述,您不能在AMPL的下标中使用决策变量。在这种情况下,x1和y1是决策变量,因此不允许d[x1 - v[1,w],y1 - v[2,w]]
。您需要以避免出现此问题的方式来重新制定该问题。