【算法思想篇】搜索概述

搜索算法是利用计算机的高性能来有目的的穷举一个问题解空间的部分或所有的可能情况,从而求出问题的解的一种方法。现阶段一般有枚举算法、深度优先搜索、广度优先搜索、A*算法、回溯算法、蒙特卡洛树搜索、散列函数等算法。在大规模实验环境中,通常通过在搜索前,根据条件降低搜索规模;根据问题的约束条件进行剪枝;利用搜索过程中的中间解,避免重复计算这几种方法进行优化。

运算原理:

搜索算法实际上是根据初始条件和扩展规则构造的一棵“解答树”并寻找符合目标状态的节点过程。所有的搜索算法从最终的算法实现上来看,都可以划分成两个部分——控制结构(扩展节点的方式)和产生方式(扩展节点),而所有的算法优化和改进主要是通过修改器控制结构来完成的。其实,在这样的思考过程中,我们已不知不觉的将一个具体问题抽象成了一个图论模型——树,即搜索算法的使用第一步在于搜索树的建立。

搜索算法的优化:

利用回溯算法进行优化:回溯和深度优先相似(我理解的回溯和深度优先搜索的关系是回溯是深度优先搜索中的一个应用),不同之处在于对一个结点进行扩张的时候,并不将所有节点扩展出来,而只扩展其中 的一个。因而具有盲目性,但内存占用较少。

在搜索中的优化:1.在搜索前,根据条件降低搜索规模。2.广度优先搜索中,被处理过的节点,充分释放空间。3.根据问题的约束条件进行剪枝。

剪枝时应遵循的原则如下࿱

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值