最短路径用lingo解决

来源:百度知道 编辑:UC知道 时间:2024/07/04 18:29:05
s到A1的距离为6,S到A2,A3的距离均为3,A1`A2`A3到B1的距离分别为6 8 7 ,A1`A2`A3到B2的距离分别为5 6 4,B1 B2到C1的距离分别为6 8,B1 B2到C2的距离分别为7 9,C1到T的距离为5,C2到T的距离为6,S经到A B C到T.求S到T最短路径用Lingo解

sets:
cities/S,A1,A2,A3,B1,B2,C1,C2,T/;
roads(cities,cities)/S,A1 S,A2 S,A3 A1,B1 A1,B2 A2,B1 A2,B2 A3,B1 A3,B2 B1,C1 B1,C2 B2,C1 B2,C2
C1,T C2,T/:w,x;
endsets
data:
w=6 3 3 6 5 8 6 7 4 6 7 8 9 5 6;
enddata
n=@size(cities);
min=@sum(roads:w*x);
@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;