游戏AI中的搜索与寻路

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星的进一步优化有很多方案。下面是个人感觉影响最大的两个方案,可以有效改善性能和效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值