问题
问答题 简答题
请简述Dijkstra算法及其在GIS最短路径分析中的应用?
答案
参考答案:
Dijkstra算法是按路径长度递增顺序产生各顶点的最短路径。
算法过程:设最短距离已确定的顶点集合称为红集点,最短距离尚未确定的为蓝集点。
1)按路径长度递增顺序产生
各蓝顶点的最短路径;
2)在当前蓝点集中选择一个距离最小的蓝点来扩充红点集,以保证算法按路径长度递增的顺序产生各顶点的最短路径;
3)没扩充一个蓝点到红点集中,则剩余的蓝点的路径按照新加入的红点作为中间顶点进行修正,一旦加入新顶点使得蓝点路径长度最短,则用变短的路径代替原来的蓝点路径长度,重复以上过程;
4)直到所需求的蓝点已扩充到红点集时,算法结束。
应用:
1)选择要进行计算的两个结点;
2)对这两个结点进行联通分析,即采用宽度优先搜索方法,来快速判断这两个结点之间是否联通,也就是确定是否存在计算最短路径的必要,若联通则进行
3)调用Dijkstra算法,计算两个结点之间的最短路径
4)进过对计算出来的最短路径树进行优化处理后,生成最终的最短路径树,输出并推出。