各位老铁们,大家好,今天由我来为大家分享《每日一个算法》什么是A*寻路算法?,以及的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
例如,这样的事情:
步骤1:将起点放入OpenList
步骤2:找到OpenList中F值最小的方格,即唯一的方格Node(1,2)作为当前方格,将当前方格移出OpenList,放入CloseList中。表示已经到达并检查了该网格。
步骤3:查找当前网格的上、下、左、右所有可到达的网格,看是否在OpenList中。如果没有,则添加OpenList,计算对应的G、H、F值,并以当前网格作为它们的“父节点”。
图中,每个格子左下角的数字为G,右下角的数字为H,左上角的数字为F。
Round2 ~ Step 1:在OpenList中找到F值最小的方格,即方格Node(2,2)作为当前方格,并将当前方格移出OpenList,放入CloseList中。表示已经到达并检查了该网格。
Round2~第二步:查找当前格子的上、下、左、右所有可达的格子,看是否在OpenList中。如果没有,则添加OpenList,计算对应的G、H、F值,并以当前网格作为它们的“父节点”。
为什么OpenList这次只添加了两个新网格?因为Node(3,2)是墙,所以不需要考虑,而Node(1,2)在CloseList中,说明已经检查过,所以不需要考虑。
Round3 ~ 步骤1:在OpenList中找到F值最小的方格。由于此时多个方格的F值相等,所以可以选择任意一个,比如Node(2,3)作为当前方格,将当前方格移出OpenList,放入CloseList中。这意味着这个网格已经到达并且被检查了。
Round3 ~ Step 2: 查找当前格子的上、下、左、右所有可到达的格子,看是否在OpenList中。如果没有,则添加OpenList,计算对应的G、H、F值,并以当前网格作为它们的“父节点”。
剩下的就是继续按照之前的方式迭代,直到OpenList 中出现结束方块。这里用图片做一个简单的描述。方框中的数字代表F值:
阐明:
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/140363.html
用户评论
相知相惜
终于找到了解释A\*寻路算法的博客!之前看游戏里的路径规划一直觉得很神奇,原来是这个算法在背后运作啊!感觉这篇文章讲得非常清楚,我有点计算机基础,都能很好的理解。
有6位网友表示赞同!
枫无痕
这篇博文翻译得很简洁易懂,对于初学者的学习还是很有帮助的。我最喜欢部分代码示例说明, 让我能直观地看到A\*算法是如何工作的!下次遇到路径规划问题的时候记得来参考一下哦
有19位网友表示赞同!
迁心
其实不用每次都使用最优解啊,有时候贪心一点效率更高反而更好,对吧?毕竟时间资源有限嘛.
有8位网友表示赞同!
你身上有刺,别扎我
说A\*寻路算法是人工智能领域中的必修课也不为过,这篇文章讲得很深入,涵盖了算法原理、核心思想以及实际应用场景。强烈推荐给所有想学习计算机科学的小伙伴们!
有8位网友表示赞同!
醉红颜
我也正在研究路径规划,这篇文章的分析很有帮助!我之前尝试用 Dijkstra 算法实现路径搜索,但是对于大地图来说效率太低,A\*算法看起来更适合这种情况。今度、试一试看,期待效果。
有16位网友表示赞同!
放血
感觉标题有点夸张, "每天一算法"是不是太多了?算法确实很重要,但这篇文章也只是一篇基础介绍而已,要想真正掌握还需要深入学习实践
有12位网友表示赞同!
有阳光还感觉冷
之前一直以为路径规划就那么简单,直到看到了这篇博文才了解到A\*算法的复杂性和优越性。原来看似简单的搜索问题背后竟有如此精妙的设计!佩服程序员们的天才之处!
有12位网友表示赞同!
来瓶年的冰泉
代码示例写的太复杂了,我初学者看着有点懵,希望作者能提供更简化的例子,更容易理解
有16位网友表示赞同!
龙吟凤
学习算法真的好耗时啊!不过A\*寻路算法确实很不错,我觉得在人工智能领域,这种基本算法一定要掌握,以后肯定要用到!
有14位网友表示赞同!
ゞ香草可樂ゞ草莓布丁
看到这篇博文突然想到我的游戏项目,以前路径规划实现的太简单了,导致玩家体验感不佳。现在用A\*算法或许可以改进很多!
有6位网友表示赞同!
墨城烟柳
感觉A\*寻路算法的适用性太强大了,从机器人导航到人工智能路径优化都有涉及!真是一个不可或缺的算法工具
有16位网友表示赞同!
你tm的滚
作者写的很棒,我之前对寻路问题一直不是很了解,看了这篇文章才明白A\*算法的作用范围有多广!
有11位网友表示赞同!
限量版女汉子
这篇文章介绍的非常全面,从理论到实践,都涵盖了重点。对于想要深入学习A\*算法的人来说,这绝对是一篇不可或缺的参考文献!
有8位网友表示赞同!
泡泡龙
对初学者来说,这篇文章有点抽象吧,建议加入更多的实例分析和应用场景讲解,这样更容易理解
有16位网友表示赞同!
算了吧
玩游戏的时候经常遇到各种怪兽AI路径规划的问题,现在终于明白是使用了A\*算法了!看来这个算法应用范围还真是广啊!
有16位网友表示赞同!
孤廖
这篇文章太棒了!解释得明明白白,而且还结合了代码示例,让我更容易理解A\*算法的原理。感谢作者分享如此宝贵的知识!
有18位网友表示赞同!
单身i
学习A\*寻路算法很有必要!这将会给我在算法设计和计算机科学领域带来深厚的积累,我一定要好好掌握这个算法
有6位网友表示赞同!
蝶恋花╮
我觉得博客标题稍微夸大了一点,“每天一算法”好像有点过于频繁,但文章内容确实很棒! A\*寻路算法确实很有用,我已经开始尝试应用它在我的项目中了。
有11位网友表示赞同!
拥抱
这种基础入门文章真的太好使了!让我能快速理解A\*算法的基本概念和原理。期待作者以后能够带来更多深入的讲解!
有20位网友表示赞同!