搜索 (计算机)
搜索方式
按是否使用啟發式信息分
- 啟發式搜索
- 盲目搜索
按问题的表示方式分
- 状态空间搜索
- 与/或树搜索
搜索策略
深度优先搜索
深度优先搜索沿着树的最大深度方向生成节点并与目标节点进行比较,只有当上次访问的节点不是目标节点,而且没有其他节点可以生成的时候,才转到上次访问节点的父节点,然后搜索该节点的其他子节点。因此深度优先搜索也称为回溯搜索。它既不是完备的,也不是最优的。有时候,某些特定的问题会产生大量重复的节点。例如“八数码”问题就是这样的,当每次运用向上、向下、向左、向右移动空格的算符时,可能产生与已经产生的节点重复的节点。当再次搜索到这个重复节点时,由于应用的算符基本一致,还会产生重复,所以为了节约时间和存储空间,往往在深度优先算法中设立一个机制,用来删除这些重复的节点,以提高效率。
迭代加深搜索(ID搜索)
对深度优先搜索进行了一定改进,对搜索树的深度进行控制,即有界深度优先搜索。
在程序找到目标之前,通过迭代不断增大以保证完备性和最优性。虽然会有不少重复搜索,但是鉴于每增加一次d,则搜索的时间复杂度会以指数级别增加,所以重复搜索的时间可以忽略,亦可以与A*算法结合(即IDA*搜索算法)来剪枝。
迭代加深搜索通常用于那种搜索树又深又宽、但是解并不是很深的情况,这时广度优先搜索会超空间,而深度优先搜索会超时。这时迭代加深搜索很有用,可是说是在用递归方法在实现广度优先搜索。
AND-OR图啟發式搜索
一个特殊问题:博弈论
约束满足搜索
搜索策略还可以指在使用搜索引擎中所使用的策略,它通常是搜索之母,一个好的搜索过程必定有一个好的搜索策略来支持。
评价准则
- 完备性
- 时间复杂性
- 空间复杂性
- 最优性
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.