3 最短路问题
用点表示城市,现有 A,B
1
,B
2
,C
1
,C
2,
C
3
,D 共 7 个城市。点与点之间的连线表示城
市间有道路相连。连线旁的数字表示道路的长度。现计划从城市 A 到城市 D 铺
设一条天然气管道,请设计一条出一条最小价格管道铺设方案。
A
A
B1 ?
B2 ?
C1 ? ?
C2 ? ?
C3 ? ?
D ? ? ?
A B
1
B
2
C
1
C
2
C
3
D
sets:
cs/A,B1,B2,C1,C2,C3,D/:K;
LINK(CS,CS)/A,B1 A,B2 B1,C1 B1,C2 B1,C3 B2,C1 B2,C2 B2,C3 C1,D C2,D C
3,D/:P,M;
ENDSETS
DATA:
P=2 4 3 3 1 3 3 1 1 3 4;
ENDDATA
K(N)=0;
N=@SIZE(CS);
@FOR(CS(I)|I#LT#N:K(i)=@MIN(LINK(I,J):P(I,J)+K(J)));
@for(LINK(i,j):M(i,j)=@if(K(i) #eq# P(i,j)+K(j),1,0));
C2
B2
B1
C1
C3
D