Ⅰ 迪杰特斯拉算法怎么用lingo实现,在线等等等!!
假设10个城市,他们之间的距离结构如DATA部分所示,目的是找到城市1到城市10的最短路径。试试找到的这个代码。
MODEL:
SETS:
CITIES /1..10/: F;
ROADS( CITIES, CITIES)/
1,2 1,3 1,4
2,5 2,6 2,7
3,5 3,6 3,7
4,5 4,6
5,8 5,9
6,8 6,9
7,8 7,9
8,10
9,10/: D;
ENDSETS
DATA:
D =
1 5 2
13 12 11
6 10 4
12 14
3 9
6 5
8 10
5
2;
ENDDATA
F( @SIZE( CITIES)) = 0;
@FOR( CITIES( i)| i #LT# @SIZE( CITIES):
F( i) = @MIN( ROADS( i, j): D( i, j) + F( j))
);
END
Ⅱ 数据结构中关键路径和最短路径有什么简便的方法可以求得吗
额,什么是简便的方法呢。
我只知道可以利用事件的最早最晚发生时间来递推求关键路径。
而最短路径两种算法:迪杰特斯拉和弗洛伊德。
这个直接网络都有,我觉得它们已经很简便了,当然我相信会有其他的算法,但太简便的应该还没有,因为如果有那么好的的算法,为什么教科书上不采用呢。
Ⅲ 迪杰特斯拉算法和普里姆算法做法是不是类似的
不是,迪杰斯特拉算法是算一点到其他所有点的最短路径
普利姆算法是算最小生成树的。
普利姆算法是在已加入的集合上,长新的边,挑距离这个集合最短的(就是无论连到哪一点,只要连到这个集合上,距离最短)
地杰斯特拉每一步是挑距离欲求的点最短的点加入。
用自然语言描述很难说清,按照例子试一下吧。