第五章 搜索求解策略

目录

搜索的概念

状态空间知识表示方法

搜索方法的一般步骤

盲目的图搜索策略

宽度优先搜索

代价树宽度搜索

深度优先搜索

深度有限搜索

回溯搜索策略

双向搜索

盲目搜索的讨论

启发式搜索策略

启发信息和估价函数

A搜索算法

A*搜索算法及其特性分析

爬山法

模拟退火算法

遗传算法


搜索的概念

什么是搜索?

根据问题的实际情况不断寻找可利用的知识,从而构造一条代价较少的推理路线,使得问题得到圆满解决的过程称之为搜索。

  1. 搜索方向:

(1) 数据驱动:从初始状态出发的正向搜索。

正向搜索:从问题给出的条件 出发

(2)目的驱动:从目的状态出发的逆向搜索。

(3)双向搜索

从开始状态出发作正向搜索,同时又从目的状态出发作出逆向搜索,直到两条路径在中间的某处汇合为止。

  1. 盲目搜索与启发式搜索

状态空间知识表示方法

状态描述

八数码问题(3×3的二维数组)

行动规则

假设r[i][j]=0, 则它跟相邻元素可以互换。

r[i][j-1]                  r[i-1][j]
r[i][j+1]                  r[i+1][j]
搜索方法的一般步骤
  1. 定义状态描述形式

  2. 定义算符——把问题从一种状态变换到另一种状态的方法代号,即状态演变规则

  3. 确定初始状态(初始节点)和目标状态(目标节点)

  4. 状态更新——根据算符更新当前状态(扫描操作算子集,将适用当前状态的一些操作算子作用于当前状态而得到新的状态,并建立指向其父节点的指针)

  5. 目标测试——判断更新后的状态是否目标状态,若不是则转到4再进行搜索,否则转到6

  6. 搜索成功,记录搜索路径(沿着有关指针从结束状态反向到达开始状态,给出一解答路径)

用open表和closed表保存搜索经过的各个节点

盲目的图搜索策略

又称穷举式搜索,只能按照预先规定的搜索控制策略进行搜索,没有任何中间信息来改变这些控制策略。

具有盲目性,效率不高,不便于复杂问题的求解

常用的方法有广度优先搜索和深度优先搜索这两种搜索方法的改良方法。

宽度优先搜索

目的是系统地展开并检查图中的所有节点,以寻找结果。

基本思想是首先搜索与初始节点距离为1的所有项点,然后再去搜索与初始节点距离为2的其他项点,以此类推。

它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。

步骤:

1) 把初始节点S_0放入OPEN表中。

2)若OPEN表为空,则搜索失败,退出。

3)取OPEN表中前面第一个节点N放在CLOSED表中,并冠以顺序编号n。

4)若目标节点Sg=N,则搜索成功,结束。

5)若N不可扩展,则转步骤2。

6)扩展N,将其所有子节点配上指向N的指针依次放入OPEN表尾部,转步骤2。

例:8数码问题

  • 31
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Brian_Lai123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值