定義中使用cities和road,而在程序中卻是citise和roads,
2.i=#ne#1是有毛病的,#ne#是不等於,而前面加個=是什麽意思呢?
修改的程序如下:
sets:
!Here is our primitive set of seven cities;
cities/A,B1,B2,C1,C2,C3,D/;
!The Derived set "roads" lists the roads that
exist between the cities;
roads(cities,cities)/
A,B1 A,B2 B1,C1 B1,C2 B1,C3 B2,C1 B2,C2 B2,C3
C1,D C2,D C3,D/: w,x;
endsets
data:
!Here are the distances that correspond
to above links;
w=2 4 3 3 1 2 3 1 1 3 4;
enddata
min=@sum(roads:w*x);
n=@size(cities);!he number of cities;
@for(cities(i)|i#ne#1#and#i#ne#n:
@sum(roads(i,j):x(i,j))=@sum(roads(j,i):x(j,i)));
@sum(roads(i,j)|i#eq#1:x(i,j))=1;
END
運行結果如下:
Global optimal solution found.
Objective value: 6.000000
Total solver iterations: 0
Variable Value Reduced Cost
N 7.000000 0.000000
W( A, B1) 2.000000 0.000000
W( A, B2) 4.000000 0.000000
W( B1, C1) 3.000000 0.000000
W( B1, C2) 3.000000 0.000000
W( B1, C3) 1.000000 0.000000
W( B2, C1) 2.000000 0.000000
W( B2, C2) 3.000000 0.000000
W( B2, C3) 1.000000 0.000000
W( C1, D) 1.000000 0.000000
W( C2, D) 3.000000 0.000000
W( C3, D) 4.000000 0.000000
X( A, B1) 1.000000 0.000000
X( A, B2) 0.000000 1.000000
X( B1, C1) 1.000000 0.000000
X( B1, C2) 0.000000 2.000000
X( B1, C3) 0.000000 1.000000
X( B2, C1) 0.000000 0.000000
X( B2, C2) 0.000000 3.000000
X( B2, C3) 0.000000 2.000000
X( C1, D) 1.000000 0.000000
X( C2, D) 0.000000 0.000000
X( C3, D) 0.000000 0.000000
Row Slack or Surplus Dual Price
1 6.000000 -1.000000
2 0.000000 0.000000
3 0.000000 -6.000000
4 0.000000 -4.000000
5 0.000000 -3.000000
6 0.000000 -1.000000
7 0.000000 -3.000000
8 0.000000 -4.000000