我一直得到语法错误,我不知道为什么

时间:2016-09-08 14:35:28

标签: mathematical-optimization linear-programming ampl glpk

这是我的模特。

set ch ;
set k ;
param a{i in ch , j in k};
param b{i in ch };
param c{j in k };

var x{i in ch , j in k}>= 0;

minimize cost: sum{i in ch , j in k} x[i,j]* a[i,j];

s.t. D{i in ch }: sum{j in k} x[i,j] >= b[i];
s.t. E{j in k }: sum{i in ch } x[i,j] <= c[j];

data;

set ch := ch1 ch2 ch3;
set k := k1 k2;

param a : ch1 ch2 ch3 :=
k1 100 180 100
k2 50 120 80;
param b := ch1 50
ch2 80
ch3 100;
param c := k1 400
k2 90;

solve;

display x{i in ch , j in k};

end;

解决模型时遇到以下错误:

cau5.mod:25: syntax error in data section

这实在令人困惑,因为有一个模型具有相同的格式但解决得很好。请有人帮忙。

1 个答案:

答案 0 :(得分:2)

问题是您在a的数据表中交换了行键和列键。您可以添加(tr),这意味着“转置”以解决此问题:

param a (tr) : ch1 ch2 ch3 :=
k1 100 180 100
k2 50 120 80;