搜索算法总结

本文总结了搜索算法,包括回溯法、BFS与DFS的对比、搜索算法优化如双向广度搜索、分支定界、A*算法及其变种,并探讨了IDA*和记忆化搜索在解决实际问题中的应用,例如八数码问题的解决方案层次。
摘要由CSDN通过智能技术生成

一、最基本的搜索算法:回溯算法
回溯算法是所有搜索算法中最为基本的一种算法,其采用了一种“走不通就掉头”思想作为其控制结构。

二、搜索算法分类:bfs与dfs
dfs:栈的思想(先进后出)优先兄弟节点。容易超时,多用于求可行解。
bfs:队列的思想(先进先出)优先儿子节点。容易消耗大量内存,多用于求最优解。

总结:搜索算法从最终的算法实现上来看,都可以划分成两个部分——控制结构(扩展节点的方式)和产生系统(扩展节点),
而所有的算法优化和改进主要都是通过修改其控制结构来完成的。其实,在这样的思考过程中,我们已经不知不觉地将一个具体的问题抽象成了一个图论的模型——树,
即搜索算法的使用第一步在于搜索树的建立。

第二部分 搜索算法的优化
一、双向广度搜索
广度搜索虽然可以得到最优解,但是其空间消耗增长太快。但如果从正反两个方向进行广度搜索,理想情况下可以减少二分之一的搜索量,从而提高搜索速度。

二、分支定界(俗称剪枝)
分支定界实际上是A*算法的一种雏形,为了有效地选择下一扩展结点,以加速搜索的进程,在每一活结点处,计算一个函数值(限界),
并根据这些已计算出的函数值,从当前活结点表中选择一个最有利的结点作为扩展结点,使搜索朝着解空间树上有最优解的分支推进,以便尽快地找出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值