深度优先,广度优先和迭代加深搜索算法

1. 深度优先搜索(DFS):算法总是能尽可能快的抵达搜索树的底层。

n 皇后问题的空间复杂度为 O(n)如果搜索树有 d 层,每个节点有 c 个子节点,时间复杂度与c^d成正比。

如USACO的1.4节的mother's milk(题目链接:http://train.usaco.org/usacoprob2?a=f7wbGbrI2kF&S=milk3)即可用DFS解答。其时间复杂度为O(6^c

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
有界深度优先搜索(Bounded Depth First Search,BDFS)是一种改进的深度优先搜索算法,它通过限制搜索深度来避免深度优先搜索陷入无限循环,同时又能够在保证内存占用不过大的情况下,找到最优解。 BDFS 的基本思想是,在进行深度优先搜索时,限制搜索深度不超过一个预先设定的值。如果在搜索深度达到设定值之前找到了目标状态,则返回该状态。否则,回溯到上一层继续搜索,直到搜索完整个搜索空间为止。 BDFS 算法的主要优点是,在搜索空间较大的情况下,能够避免深度优先搜索陷入无限循环。而且,BDFS 算法的内存占用比广度优先搜索算法低,能够在保证内存占用不过大的情况下,找到最优解。BDFS 算法的缺点是,由于是盲目搜索,所以搜索效率较低,可能需要搜索大量的状态才能找到最优解。 BDFS 算法的步骤如下: 1.设定一个搜索深度的上限。 2.从根节点开始,进行深度优先搜索,一直搜索到达深度上限或者找到目标状态。 3.如果在搜索深度达到设定值之前找到了目标状态,则返回该状态;否则,回溯到上一层继续搜索。 4.重复步骤2和3,直到搜索完整个搜索空间为止。 BDFS 算法能够在保证内存占用不过大的情况下,找到最优解,但是由于是盲目搜索算法,所以搜索效率较低。为了提高搜索效率,可以使用其他的搜索算法和优化技术,如迭代加深搜索、剪枝技术等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值