Optimization ampl语法错误>&燃气轮机&燃气轮机;x[<;<;<;

Optimization ampl语法错误>&燃气轮机&燃气轮机;x[<;<;<;,optimization,syntax-error,ampl,Optimization,Syntax Error,Ampl,我是AMPL新手,似乎无法克服以下语法错误: 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 >=0; var x binary; CODE.txt, line 18 (offset 332): syntax error context: minimize Total_Cost: sum

我是AMPL新手,似乎无法克服以下语法错误:

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 >=0;
var x binary;

CODE.txt, line 18 (offset 332):
    syntax error
context:  minimize Total_Cost: sum {i in I, j in J, k in K}  >>> x[ <<< i,j,k] * d[i];
set I:={1,2,3,4};
集合J:={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
集合K:={1,2,3,4,5,6};
var d>=0;
var x二进制;
CODE.txt,第18行(偏移量332):
语法错误

上下文:最小化总成本:sum{i in i,j in j,k in k}>>x[经过一些实验后,我发现了我的错误,因此将在这里分享,以防其他人遇到相同的问题

我只是在最初声明变量时忘记了指定下标

以下是我的修改(工作)代码:


当你声明一个变量时,你也必须声明他的索引。在你的例子中,问题在于“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;
问候

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;