dijkstra算法缺点及matlab程序.docxVIP

  • 36
  • 0
  • 约5.14千字
  • 约 6页
  • 2019-09-14 发布于广东
  • 举报
Dijkstra算法Diikstra(辿杰斯特拉)算法是典型的最短路径路由算法,用于计算一 个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展, 直到扩展到终点为止。其基木原理是:每次新扩展一个距离最短的点,更新与其 相邻的点的距离。当所有边权都为正时,由于不会存在一个距离更短的没扩展过 的点,所以这个点的距离永远不会再被改变,因而保证了算法的正确性。不过根 据这个原理,用Dijkstra求最短路的图不能有负权边,因为扩展到负权边的时候 会产生更短的距离,有可能就破坏了已经更新的点距离不会改变的性质。Dijkstra 算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。 Dijkstra算法是很有代表性的最短路算法,在很多专业课程中都作为基本内 容有详细的介绍,如数据结构,图论,运筹学等等。 Dijkstra 一般的表述通常有两种方式,一种用永久和临时标号方式,一种是 用OPEN, CLOSE表方式,Drew为了和下面要介绍的A*算法和D*算法表述一 致,这里均采用0PEN,CLOSE表的方式。 其采用的是贪心法的算法策略 大概过程: 创建两个表,OPEN, CLOSE。 OPEN表保存所有己生成而未考察的节点,CLOSED表中记录已访问过的节 点。 访问路网中距离起始点最近口没有被检查过的点,把这个点放入OPEN 组屮等待检查。 从OPEN表中

文档评论(0)

1亿VIP精品文档

相关文档