放大语法错误>>> x [<<

时间:2018-04-23 23:08:33

标签: optimization syntax-error ampl

我是AMPL的新手,似乎无法解决以下语法错误:

NaN

我无法理解为什么错误似乎出现在方括号中,因为我认为下标应始终在方括号内定义。

任何提示都很可爱!

提前致谢。

2 个答案:

答案 0 :(得分:2)

经过一些实验,我发现了我的错误,所以会在这里分享,以防其他人遇到同样的问题。

我最初忘记在最初陈述变量

时指定下标

在下面找到我修改过的(工作)代码:

set I := {1, 2, 3, 4};
set J := {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
set K := {1, 2, 3, 4, 5, 6};

var d{I} >=0;
var x{I,J,K} binary;

minimize Total_Cost: sum {i in I, j in J, k in K}  x[i,j,k] * d[i];

答案 1 :(得分:0)

声明变量时,您也必须声明其索引。在您的情况下,问题出在" x"。

你必须像这样写你的模型:

set I := {1, 2, 3, 4};
set J := {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
set K := {1, 2, 3, 4, 5, 6};

var d{i in I} integer >=0;
var x{i in I, j in J, k in K} binary;

问候!