lingo程序有点小问题,请高手帮忙修改一下。谢谢
sets:department/A..E/;
city/1..3/;
benefit(department,city):B,x;
dist(city,city):C;
comm(department,department):D;
matrix(department,city,department,city);
endsets
max=10000*@sum(benefit(i,j):B(i,j)*x(i,j))-@sum(matrix(i,j,k,l)|i#lt#k:C(j,l)*D(i,k)*x(i,j)*x(k,l);
@for(department(i):@sum(city(j):x(i,j))=1);
@for(city(j):@sum(department(i):x(i,j))<=3);
@for(benefit,@gin(x));
data:
B=0 10 0
0 15 20
0 10 15
0 20 15
0 5 15;
C=100 130 90
130 50 140
90 140 50;
D=0 0 1000 1500 0
0 0 1400 1200 0
1000 1400 0 0 2000
1500 1200 0 0 700
0 0 2000 700 0;
enddata
注:在lingo11.0上运行提示for函数应用不当,请高手纠正。多谢。 @for(benefit,@gin(x));
修改为:@for(benefit:@gin(x));
试试吧 @for(benefit:@gin(x)); 是冒号,不能用逗号 目标函数有点乱,其它如上所说,楼主再看看自己的目标函数,能够运行。 model:
sets:
department/A..E/;
city/1..3/;
benefit(department,city):B,x;
dist(city,city):C;
comm(department,department):D;
matrix(department,city,department,city);
endsets
max=10000*@sum(benefit(i,j):B(i,j)*x(i,j))-@sum(matrix(i,j,k,l)|i#lt#k:C(j,l)*D(i,k)*x(i,j)*x(k,l));
@for(department(i):@sum(city(j):x(i,j))=1);
@for(city(j):@sum(department(i):x(i,j))<=3);
@for(benefit:@gin(x));
data:
B=0 10 0
0 15 20
0 10 15
0 20 15
0 5 15;
C=100 130 90
130 50 140
90 140 50;
D=0 0 1000 1500 0
0 0 1400 1200 0
1000 1400 0 0 2000
1500 1200 0 0 700
0 0 2000 700 0;
enddata
这样不知道满不满足你的要求? 呵呵,是冒号 好好加油,比赛了
页:
[1]