4.3日周末总结

本文详细介绍了搜索算法的概念,包括其定义和目标性,重点讲解了状态和状态转移在搜索过程中的作用。接着,作者深入探讨了两种重要的搜索策略——广度优先搜索(BFS)和深度优先搜索(DFS),阐述了它们的基本思想、工作过程及其在路径寻找问题上的应用。通过理解这些概念,读者可以更好地掌握如何在实际问题中应用搜索算法。
摘要由CSDN通过智能技术生成

本周共阅读文章(博客)三十余篇,主要学习了解了搜索相关的知识

一:搜索的定义
  搜索算法是利用计算机的高性能来有目的地穷举一个问题的部分或所有的可能情况,从而求出问题的解的一种方法。
  相比于单纯的枚举算法有了一定的方向性和目标性。算法是在解的空间里,从一个状态转移(按照要求拓展)到其他状态,这样进行下去,将解的空间中的状态遍历,找到答案(目标的状态)。
二:状态及状态转移
  状态(state)是对问题在某一时刻进展情况的数学描述,或者是数学抽象。
  每一个状态都会是答案的一个“可能的”解。状态的转移就是问题从一个状态转移到另一个状态,这样就可以进行搜索的一步步延伸,最后要得到的解也是其中的一个状态。
三:广度优先搜索(BFS)
  基本思想:从初始状态S 开始,利用规则,生成所有可能的状态。构成的下一层节点,检查是否出现目标状态G,若未出现,就对该层所有状态节点,分别顺序利用规则。生成再下一层的所有状态节点,对这一层的所有状态节点检查是否出现G,若未出现,继续按上面思想生成再下一层的所有状态节点,这样一层一层往下展开。直到出现目标状态为止。
——在路径的寻找问题上用得比较多。
  具体过程:
  1 每次取出队列首元素(初始状态),进行拓展
  2 然后把拓展所得到的可行状态都放到队列里面
  3 将初始状态删除
  4 一直进行以上三步直到队列为空。
四:深度优先搜索(DFS)
  基本思想:从初始状态,利用规则生成搜索树下一层任一个结点,检查是否出现目标状态,若未出现,以此状态利用规则生成再下一层任一个结点,再检查,重复过程一直到叶节点(即不能再生成新状态节点),当它仍不是目标状态时,回溯到上一层结果,取另一可能扩展搜索的分支。采用相同办法一直进行下去,直到找到目标状态为止。
  具体过程
  1 每次取出栈顶元素,对其进行拓展。
  2 若栈顶元素无法继续拓展,则将其从栈中弹出。继续1过程。
  3 不断重复直到获得目标状态(取得可行解) 或栈为空(无解)。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值