A*算法和dijkstra算法都是启发式搜索,dijkstra算法可以看成是广度优先搜索,而A*可以认为是深度优先搜索。
dijkstra就是保证当前节点的值对于前面的层一定是最优的(不管后面有啥只往前看),所以最后到终点的时候,可以保证终点到前一层选一个最优的点,这样从终点到起点一直选当前最小得到的路径一定是最优的。
A*可以轻松地用在比如无人机航路规划中,而dijkstra建立在较为抽象的图论层面。
A*算法主要是有两张表, 一个open表,一个是close表。
1. 将起点加入open表。
2. a)遍历open list,找F(F = G + H)值最小的节点,把他作为当前要操作的节点;
2. b)把这个节点移到close list;
2. c)把当前操作节点周围的8个节点放到open list中(除了不可达的节点,比如墙、禁飞区等);
2. d)重复上述操作,每次都去F值最小的节点作为当前操作节点。
3. 当终点加入到close表中的时候停止。
4. 保存路径,从终点开始,每个节点沿着父节点移动到起点,就是最终路径。
上面F = G + H中:H是启发函数,是当前点到终点距离的估计,一般采用曼哈顿距离(当前点和终点横纵坐标差之和);G就是起点到当前点的距离,这里G值的度量方式一般是上下左右取一个值比如10,对角线的四个点取一个值比如14(一般比上下左右的值要大),而在A*中表示障碍点一般会给对应点一个特别大的G值,所以在筛选的时候就会放掉


GIF图:https://blog.csdn.net/hopeping128/article/details/78960326

A*算法和dijkstra算法相关推荐

  1. Prim算法和Dijkstra算法的异同

    今天看了下,主要有以下几点: 1: Prim是计算最小生成树的算法,比如为N个村庄修路,怎么修花销最少. Dijkstra是计算最短路径的算法,比如从a村庄走到其他任意村庄的距离. 2: Prim算法 ...

  2. 最短路径Dijkstra算法和Floyd算法整理、

    转载自:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html 最短路径-Dijkstra算法和Floyd算法 Dijks ...

  3. 【Java数据结构与算法】第二十章 Dijkstra算法和Floyd算法

    第二十章 Dijkstra算法和Floyd算法 文章目录 第二十章 Dijkstra算法和Floyd算法 一.Dijkstra算法 1.介绍 2.代码实现 二.Floyd算法 1.介绍 2.代码实现 ...

  4. 【最短路径】:Dijkstra算法、SPFA算法、Bellman-Ford算法和Floyd-Warshall算法

    求最短路径最常用的算法有: Dijkstra算法.SPFA算法.Bellman-Ford算法和Floyd-Warshall算法. Dijkstra算法.SPFA算法.Bellman-Ford算法这三个 ...

  5. 浅谈迪杰斯特拉(Dijkstra)算法和A*算法原理及实现

    写在前面 最近我在学习一门名叫<智能自主机器人及系统>的课程,虽然跟过去所学的<机器人学>在部分内容上有所重复,但该课程的应用性更强.对于不同的机器人,如差速轮式车.四轮车.四 ...

  6. Dijkstra算法和A*算法总结

    Dijkstra算法和A*算法都是最短路径问题的常用算法,下面就对这两种算法的特点进行一下比较: Dijkstra算法计算源点到其他所有点的最短路径长度,A*关注点到点的最短路径(包括具体路径). D ...

  7. dijkstra算法和A*算法

    转自: https://www.cnblogs.com/21207-iHome/p/6048969.html#undefined Dijkstra算法 迪杰斯特拉(Dijkstra)算法是典型的最短路 ...

  8. Dijkstra算法和Floyed算法

    Dijkstra算法和Floyed算法 最短路径: 在非网图中,最短路径是指两顶点之间经历的边数最少的路径. 在网图中,最短路径是指两顶点之间经历的边上权值之和最短的路径. 最短路径问题: 单源点到其 ...

  9. 最短路径(Dijkstra算法和Floyd算法)

    最短路径 ​ 在图中,不可避免要解决的一个问题就是计算两点之间的最短路径,对于图结构来说,两个点之间不一定只有一条路径,那么如何才能找出最短的那一条就是图中最短路径问题.最短路径问题在实际生活中应用十 ...

  10. 数据结构与算法—最小生成树(Prim算法和Kruskal算法算法详解)

    前言 在数据结构与算法的图论中,(生成)最小生成树算法是一种常用并且和生活贴切比较近的一种算法.但是可能很多人对概念不是很清楚.我们看下百度百科对于最小生成树定义: 一个有 n 个结点的连通图的生成树 ...

最新文章

  1. highcharts与ajax的应用
  2. CentOS5.9下用Kate
  3. 【 Markdown 】Markdown 编辑器语法常用格式 ( 整理中 ... )
  4. Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt(100)方法显示0到100之间的前50个随机整数
  5. ssh白名单_阿里云服务器ssh白名单
  6. inbox status and ServiceOrder Status
  7. 索引失效的场景(面试)
  8. matlab 排序点,matlab如何进行排序?
  9. Delphi语言最好的JSON代码库 mORMot学习笔记1
  10. 勤学如春起之苗,不见其增,日有所长!
  11. [转] 关于SQLSERVER2000卸载与出现挂起问题的解决
  12. matlab2008设置子函数断点无效,程序不在断点处停止
  13. linux7配置iptables配置转发,Centos7安装iptables及配置
  14. 《Timing is Almost Everything》作者访谈
  15. Android自动化测试在多种屏幕下的注意事项
  16. 改变系统TCP默认 MSS
  17. 恶意代码防范技术原理-恶意代码概述
  18. SMARTDRV.EXE下载和安装说明
  19. dev:dev fatal: HttpRequestException encountered. remote: Invalid username or password. fatal: Authen
  20. Richpedia: A Large-Scale, Comprehensive Multi-Modal Knowledge Graph

热门文章

  1. php 去逗号,php如何去除两边逗号
  2. 新手学编程?选python吧!
  3. VTP技术及相关配置
  4. 分治法求最大值c语言思想,整数的除法 分治思想 求最大子向量和
  5. html左斜杠转义字符,html的右斜杠转义符号是什么呢
  6. win7和win10对于wifi共享的不同
  7. matlab无法打开excel的问题
  8. 邓白氏编码申请经验分享
  9. 算法提高 7-2求arccos值
  10. 人类最早计算机阿西莫夫,“人类先知”阿西莫夫50年前的2014年6大预言