搜索
搜索方式
按是否使用启发式信息分
启发式搜索
盲目搜索
按问题的表示方式分
状态空间搜索
与/或树搜索
搜索策略
宽度优先搜索
宽度优先搜索算法是沿着树的宽度遍历树的节点,如果发现目标,则算法中止。属于盲目搜索。
深度优先搜索
深度优先搜索沿着树的最大深度方向生成节点并与目标节点进行比较,只有当上次访问的节点不是目标节点,而且没有其他节点可以生成的时候,才转到上次访问节点的父节点,然后搜索该节点的其他子节点。因此深度优先搜索也称为回溯搜索。它既不是完备的,也不是最优的。有时候,某些特定的问题会产生大量重复的节点。例如“八数码”问题就是这样的,当每次运用向上、向下、向左、向右移动空格的算符时,可能产生与已经产生的节点重复的节点。当再次搜索到这个重复节点时,由于应用的算符基本一致,还会产生重复,所以为了节约时间和存储空间,往往在深度优先算法中设立一个机制,用来删除这些重复的节点,以提高效率。
迭代加深搜索(ID搜索)
对深度优先搜索进行了一定改进,对搜索树的深度进行控制,即有界深度优先搜索。
在程序找到目标之前,通过迭代不断增大d以保证完备性和最优性。虽然会有不少重复搜索,但是鉴于每增加一次d,则搜索的时间复杂度会以指数级别增加,所以重复搜索的时间可以忽略,亦可以与A*算法结合(即IDA*搜索算法)来剪枝。
迭代加深搜索通常用于那种搜索树又深又宽、但是解并不是很深的情况,这时广度优先搜索会超空间,而深度优先搜索会超时。这时迭代加深搜索很有用,可是说是在用递归方法在实现广度优先搜索。
启发式OR图搜索算法
爬山算法
模拟退火算法
最好优先
通用图
A*
AND-OR图启发式搜索
一个特殊问题:博弈论
约束满足搜索
搜索策略还可以指在使用搜索引擎中所使用的策略,它通常是搜索之母,一个好的搜索过程必定有一个好的搜索策略来支持。
评价准则
完备性
时间复杂性
空间复杂性
最优性
免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。
- 有价值
- 一般般
- 没价值