【学习笔记】搜索与枚举
1.启发式搜索(A*)
对于一个搜索状态
如果预估函数写得好能够在很短的时间内得到解。但是要保证
流程就是搞成一个优先队列然后每次把
第一个扩展出来的一定是最优解。
证明:
令现在出来的解是
也就是说走到
2.迭代加深
不考虑空间的情况下不如广搜。
考虑广搜的实质是空间换时间,dfs 的劣势在可能答案很近但是直接跑开了。
所以我们限制 dfs 层数
可以发现会有很多重复的搜索,但是理性考虑一下,我们每一次拓展至少要拓宽两倍,那么我们重复多搜一次也没有太大的关系。
相比于 bfs 优点在于空间需求小,而且 不需要保存状态。
3.常见的搜索枚举
- 子集枚举
普通子集枚举是
在状压的优化枚举速度里面有很大的建树。
for(int S=0;S<(1<<n);S++)for(int T=S;T;T=(T-1)&S)do sth;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具