作业帮 > 英语 > 作业

谁帮我用lingo实现一下这道简单的题

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:英语作业 时间:2024/08/12 22:38:58
谁帮我用lingo实现一下这道简单的题
谁帮我用lingo实现一下这道简单的题
a和b 分别是最小距离和选择的点
model:
sets:
point/1..7/:p;
way(point,point):d;
endsets
data:
d=0 3 99 99 99 99 99
3 0 2 99 18 2.5 99
99 2 0 6 2 99 99
99 99 6 0 3 99 99
99 18 2 3 0 4 99
99 2.5 99 99 4 0 1.5
99 99 99 99 99 1.5 0;
enddata
calc:
@for(way(i,j)|i#gt#j:d(i,j)=d(j,i));
s=@sum(way:d);
@while(1#gt#0:
@for(way(i,j):d(i,j)=@smin(d(i,j),@min(point(k):d(i,k)+d(k,j))));
@ifc(@sum(way:d)#eq#s:@break);
s=@sum(way:d);
);
@for(point(i):p(i)=@max(point(j):d(i,j)));
a=99;
@for(point(i):@ifc(p(i)#lt#a:a=p(i);b=i;));
endcalc
end
再问: 可以附上注解吗?因为要在课上上台展示。不知道怎么解说。如果回答得好可以再追加分。谢谢了
再答: 也没什么难说的吧d就是最原始的数据 下面@while一句大概是一个floyd算法 你知道那个算法是怎么做的就行了 其它的很平常 没问题请采纳行吗