有向图最短路径(LINGO实现)

有向图最短路径(LINGO实现)_第1张图片

model:
sets:
cities/A,B1,B2,C1,C2,C3,D/;
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:
w=2 4 3 3 1 2 3 1 1 3 4;
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;!启动只有1个出度;
@sum(roads(i,j)|j #eq#n:x(i,j))=1;!终点只有1个入度;
end

你可能感兴趣的:(数学建模)