迪杰斯特拉算法(Dijkstra's algorithm)

Dijkstra’s algorithm 算法

迪杰斯特拉算法(Dijkstra’s algorithm)是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。

在地理信息系统中,Dijkstra’s algorithm 主要在network analysis中应用。以ArcGIS为例,最短路径就是基于最为经典的Dijkstra’s algorithm来实现的。

算法解释

isacc计算机科学网站提供该算法的具体解释,点击链接{target="_blank"}。

代码实现(PostGIS)

相关教程:https://zhuanlan.zhihu.com/p/82227139

pgr_costResult[] pgr_dijkstra(text sql, integer source, integer target,
                           boolean directed, boolean has_rcost);

代码实现(Python)


牛海沣
牛海沣
PhD Candidate

英国剑桥大学土地经济系博士在读,目前在跨学科空间分析实验室攻读博士学位。主要研究兴趣包括城市大数据挖掘,数据驱动下的城市规划及政策分析以及城市动态模拟。