美文网首页
A*寻路算法 Day0825

A*寻路算法 Day0825

作者: 段然丶 | 来源:发表于2017-10-23 14:01 被阅读0次

概念:

启发式搜索:

启发式搜索就是在状态空间中对每一个搜索的位置进行评估,得到最好的位置,在从这个位置进行搜索直到目标。这样可以省略大量无谓的搜索路径,提高了效率

在启发式搜索当中,对未知的估价十分重要。采用了不同的估价可以有不同的效果

估价函数;从当前节点移动到目标节点的预估费用:这个估计就是启发式的,在寻路问题和迷宫问题中,我们通常用曼哈顿算法估价函数预估费用

A*算法的特点:A*算法在理论上是时间最优的,但是缺点是:他的空间增长是指数级别的

在A*寻路算法中,我们通过从A点开始,检查相邻方格的方式,向外扩展直到找到目标

开启列表:待检查方格的集合列表,寻找周围可以达到的点,加入到此列表当中,并保存中心点喂父节点

关闭列表:保存不需要再次检查的方格

路径评分

G- 与起始点的距离

H-与目标点的距离

F的值是G和H的和,F,G和H的评分被谢爱每个方格里面

F中间 G左上 H右上

选在经过那个方格的关键是:F=G+H



开始搜索

1.把起始格添加到开启列表

2.寻找七点周围所有可到达或者可通过的方格,把他们加到开启列表

3.从开启列表中删除点A,把它加入到关闭列表当中,列表中保存所有不需要再次检查的方格

继续搜索

4.把当前格子(红色的42)从开启列表中删除,然后添加到关闭列表当中。

5.检查所有红色42相邻的格子。跳过那些已经在关闭列表中的或者不可通过的,把他们添加到开启列表,把选中的方格(红色42)作为新的方格的父节点

6.如果某个相邻已在开启列表当中。检查现在的这条路径G值是否会更低一些。如果新的G值更低,那就把相邻方格的父节点改选为目前选中的方格,重新计算F和G的值

为什么?  随着关闭列表当中的确定,也就是新路径的确定,开启列表中的G值也会改变,所以需要重新计算

相关文章

  • A*寻路算法 Day0825

    概念: 启发式搜索: 启发式搜索就是在状态空间中对每一个搜索的位置进行评估,得到最好的位置,在从这个位置进行搜索直...

  • 百度无人驾驶apollo项目路径规划a*算法分析

    算法分析 车辆路径规划寻路算法有很多,apollo路径规划模块使用的是启发式搜索算法A*寻路算法。 a*算法是一种...

  • Unity学习笔记——A*寻路算法的应用

    初步了解了一些寻路算法后,本以为dijstra是比较合适的寻路算法,今天仔细看了关于A星寻路算法的教程和视频后,我...

  • 算法:A*寻路算法

    A*Search,是一种寻找有效路径的算法。 [OpenList][CloseList][F = G + H]Op...

  • JPS寻路算法

    JPS寻路算法是啥?JPS全称是:jump point search,这个算法实际上是对A* 寻路算法的一个改进,...

  • Hello,a~*寻路算法!

    寻路算法是游戏中经常用到的算法之一,而这其中A~* 算法大概是我们最耳熟的寻路算法了,下面我们会通过A~* 算法与...

  • A*寻路算法

    原文:http://www.cnblogs.com/wangnfhy/p/4956711.html 参考:http...

  • A*寻路算法

    代码实现

  • A* 寻路算法

    A 算法*是一种解决图遍历问题的计算机算法,在电子游戏中最主要的应用是寻找地图上两点间的最佳路线。 不能朝障碍物所...

  • cocos creator Astar寻路导航与地图编辑

    1、插件或者TileMap工具生成地图json文件 2、astar寻路算法 3、将json文件与寻路算法结合,获得...

网友评论

      本文标题:A*寻路算法 Day0825

      本文链接:https://www.haomeiwen.com/subject/mucudxtx.html