| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 寻路算法笔记 -> 正文阅读 |
|
[数据结构与算法]寻路算法笔记 |
宽度优先算法 FloodFill算法 A * 算法 原理 A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是许多其他问题的常用启发式算法。注意——是最有效的直接搜索算法,之后涌现了很多预处理算法(如ALT,CH,HL等等),在线查询效率是A算法的数千甚至上万倍。 其中, f*(n) 是从初始状态经由状态n到目标状态的最小代价估计, g*(n) 是在状态空间中从初始状态到状态n的最小代价, h*(n) 是从状态n到目标状态的路径的最小估计代价。 (对于路径搜索问题,状态就是图中的节点,代价就是距离) 真实h(n)的选取: 保证找到最短路径(最优解的)条件,关键在于估价函数f(n)的选取(或者说h(n)的选取)。 以h(n)表达状态n到目标状态估计的距离,那么h(n)的选取大致有如下三种情况:
距离估计与实际值越接近,估价函数取得就越好 例如对于几何路网来说,可以取两节点间曼哈顿距离做为距离估计,即 f =g(n) + (abs(dx - nx) + abs(dy - ny))
这样估价函数f(n)在g(n)一定的情况下,会或多或少的受距离估计值h(n)的制约,节点距目标点近,h值小,f值相对就小,能保证最短路的搜索向终点的方向进行。明显优于Dijkstra算法的毫无方向的向四周搜索。 算法实现(路径搜索) 创建两个表,OPEN表保存所有已生成而未考察的节点,CLOSED表中记录已访问过的节点。
戴克斯特拉算法 NavMesh |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 12:25:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |