| 查看: 1280 | 回复: 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. |
» 猜你喜欢
拟解决的关键科学问题还要不要写
已经有11人回复
救命帖
已经有5人回复
限项规定
已经有5人回复
为什么nbs上溴 没有产物点出现呢
已经有9人回复
招博士
已经有3人回复
存款400万可以在学校里躺平吗
已经有35人回复
最失望的一年
已经有18人回复
求推荐博导
已经有4人回复
求推荐英文EI期刊
已经有5人回复
疑惑?
已经有5人回复
2楼2020-08-20 21:51:04













回复此楼