zoukankan      html  css  js  c++  java
  • 单源最短路径——Dijkstra算法学习

      每次都以为自己理解了Dijkstra这个算法,但是过没多久又忘记了,这应该是第4、5次重温这个算法了。

      这次是看的胡鹏的《地理信息系统》,看完之后突然意识到用数学公式表示算法流程是如此的好理解,堪称完美。

    内容摘抄如下:

      网络中的最短路径是一条简单路径,即是一条不与自身相交的路径,最短路径搜索的依据:若从S点到T点有一条最短路径,则该路径上的任何点到S的距离都是最短的。

    Dijkstra算法搜索步骤:

    1.对起始点作标记S,且对所有顶点令D(X)=∞,Y=S;

    2.对所有未做标记的点按以下公式计算距离

    D(X)=min{D(X),d(Y,X)+D(Y)},其中Y是最后一个做标识的点。

    取具有最小值的D(X),并对XWT标记,令Y=X。

    若最小值的D(X)=∞,则说明S到所有未标识的点都没有路,算法终止;否则继续。

    3.如果Y=T,则已经找到了S到T的最短路径,算法终止。否则转到步骤2。

     

    最短路径算法:Dijkstra算法和Floyd算法

    图论

    走一步:由起点StartNode A遍历一条边,选择最短的一条边链接到节点B,记距离dAB

    走两步:由B遍历相连的边,选择最短的一条边,记临时距离dtemp,此时距离dAB+dtemp

    和A走一步第二短距离比较,短的距离作为走两步的距离。

    基本就是“一步一比,两步一回头”,保证得到这样的效果,每走一步都是最短路径。

     参考:《插件式GIS应用框架的设计与实现:基于C#和AE 9.2》

  • 相关阅读:
    MySQLFront导入SQL文件报#1113错误解决
    LNMP1.3一键安装Linux环境,配置Nginx运行ThinkPHP3.2
    币胜网虚拟货币交易平台安装说明
    windows服务器详细安全设置
    WINDOWS SERVER 2008远程桌面端口修改方法
    mac终端ssh连接服务器 空闲的时候 连接断开
    FTP软件发送"AUTH TLS"提示 无法连接到服务器
    LNMP状态管理命令
    lnmp1.4环境FTP服务器的安装和使用
    springCloud
  • 原文地址:https://www.cnblogs.com/yhlx125/p/2579537.html
Copyright © 2011-2022 走看看