搜索 优化方法(大纲)
1|0剪枝策略
- 调整搜索顺序(层次)
比如让体积大的先选,或者选择比较少的位置先枚举 - 排除等效冗余
发现两个搜索状态(子树)其实是等价的(比如 和 ),只需要枚举其中一种即可 - 可行性剪枝
不行的状态直接 - 最优性剪枝
现在的花费已经大于答案直接
A*的思路:现在的答花费+估计函数已经大于答案 直接 - 记忆化
一个状态只做一次
2|0迭代加深
优化dfs(当分支很多但答案在较浅位置浪费的枚举时间太多)
应用场景:搜索树的规模随着深度的增长急剧增长,但可以肯定答案在一个较浅的节点上
限制层数(深度),找不到再一步一步增加
3|0双向搜索 (dfs和bfs都可以)
常常处理例如
把
应用场景:有初态也有终态,从两端同时搜,在中间交汇组合答案
4|0双端队列优化bfs 和 优先队列优化bfs
边权有0和1两种的用双端队列优化,1的加队尾,0的加队头
边权各种各样的用优先队列优化,有点类似于最短路dijkstra
5|0A*
估计函数(不能大于未来实际代价)+优先队列bfs
每个状态只扩展一次
6|0IDA*
迭代加深+A*(用dfs)
__EOF__
作 者:哈奇莱特
出 处:https://www.cnblogs.com/lighthqg/p/17687242.html
关于博主:这个人很懒 什么也没有留下
版权声明:未获得本人同意请勿随意转载
声援博主:制作不易 点个赞吧
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!