游戏AI中的搜索与寻路
来源:互联网 发布:官路淘宝txt下载 编辑:程序博客网 时间:2024/05/21 10:08
0x01 搜索策略
无信息搜索策略
1. Breadth First Search(BFS) 广度优先搜索
- 先访问的节点先扩展
- 每次扩展深度最浅的节点
- 可以用一个队列来保持待扩展的节点
2. Depth First Search(DFS) 深度优先搜索
- 后被访问的节点先进行扩展
- 每次扩展深度最深的节点
- 对于无边界的搜索问题无法保证完备性
- 可以用一个栈来保持待扩展的节点
3. Uniform Cost Search(UCS) 一致代价搜索
- 累计路径耗散最小的节点先被扩展
- 如果每一步消耗为正,保证可以得到最优解
- 若单步耗散相等,此算法与BFS算法一致
- Dijkstra’s Algorithm 迪杰斯特拉算法
- 它不平等地探索所有可能的路径,它偏爱低成本的路径。当移动成本不同时,我们使用这个代替广度优先搜索。
4. Depth Limited Search(DLS) 深度有限搜索
- 解决深度优先搜索的边界问题
- 对于无边界的搜索问题可以防止进入死循环
- 对于超过搜索深度的搜索无法保证的到解
5. Interative Deepening Search 迭代深入搜索
- 结合广度和深度优先的搜索。不断加大深度限制,摆正深度有限搜索的完备有解性
Heuristic Search启发式搜索
1. Greedy best first search 贪婪最佳优先搜索
- 倾向于一条路径一直搜索下去
- 不能保证得到最优解
- 如果状态空间是无限的,可能不完备
2. A* A-start搜索
- 在贪婪最佳优先搜索的基础上加入评价函数,解决最优解的问题
0x02 适用策略分析
1. 流场寻路
- 广度优先搜索
- 大量物体前往同一个点的时候
- 只需要生成一次流场,就可以解决任何一点到目标点的寻路
2. A星寻路
- A-start搜索
- 少量物体向某点移动的路径
0x03 关于A星寻路进一步优化
关于A星的进一步优化有很多方案。下面是个人感觉影响最大的两个方案,可以有效改善性能和效果。
- 节点合并,合并临接节点。
- theta-star 寻路算法 解决A*寻路的平滑问题
阅读全文
0 0
- 游戏AI中的搜索与寻路
- 游戏中的AI算法总结与改进
- 【游戏编程】AI-迷宫寻路算法-深度优先搜索和广度优先搜索
- 【游戏编程】AI-迷宫寻路算法-深度优先搜索和广度优先搜索
- 开源游戏AI引擎列表与游戏中的人工智能
- 游戏中的AI
- 游戏中的ai设计
- 游戏中的人工智能AI设计
- AI与游戏——吃豆人(5)树搜索算法(上)
- 游戏中的人工智能(游戏AI)
- 通过俄罗斯方块浅谈游戏中的AI(四)路点
- 通过俄罗斯方块浅谈游戏中的AI(二)AI策略
- 通过俄罗斯方块浅谈游戏中的AI(序)
- AI中的几种搜索算法---A*搜索算法
- AI中的几种搜索算法---SA搜索算法
- AI中的几种搜索算法---Tabu搜索算法
- AI中的几种搜索算法---Tabu搜索算法
- AI中的几种搜索算法---SA搜索算法
- 从小不努力,长大做IT
- “APP_NAME" IS NOT TRANSLATED IN ZH, ZH_CN……..解决办法
- JUnit4结合spring做单元测试
- 数组中出现次数超过一半的数字
- ES6 —(Set 和 Map 数据结构)
- 游戏AI中的搜索与寻路
- IO流
- jQuery 选择器(:nth-child(n))详解
- 【废弃存档】检测线路连接
- POJ-2046---Gap (bfs+hash)
- C++编程规范(不断更新)
- 北京台历印刷厂家
- 使用sqoop1.99.6将mysql数据导入到hdfs
- 批量替换mysql数据库字段里的字符串