| 查看: 1266 | 回复: 1 | ||
vivianchao新虫 (小有名气)
|
[求助]
lingo求解最短路,编程语句求答疑
|
|
Dijkstra算法。具体代码如下: model: sets: city/1..6/:L; road(city,city):d; endsets data: d=10000; enddata calc: d(1,2)=50;d(1,4)=40;d(1,5)=25;d(1,6)=10; d(2,3)=15;d(2,4)=20;d(2,6)=25; d(3,4)=10;d(3,5)=20; d(4,5)=10;d(4,6)=25; d(5,6)=55; @for(city(j)|j#lt#@size(city):@for(city(i)|i#gt#j:d(i,j)=d(j,i))); endcalc L(1)=0; @for(city(j)|j#gt#1:L(j)=@min(city(i):L(i)+d(i,j))); end 最后一句 @for(city(j)|j#gt#1:L(j)=@min(city(i):L(i)+d(i,j))); 不明白具体是怎么运算的。比如j=2的时候,我理解的是只能得到L(2)=50.但是程序却可以得到L数组为0,50,35,30,0,25. |
» 猜你喜欢
职称评审没过,求安慰
已经有55人回复
最近几年招的学生写论文不引自己组发的文章
已经有5人回复
26申博自荐
已经有3人回复
A期刊撤稿
已经有4人回复
2楼2020-08-20 21:51:04













回复此楼