02第二讲(状态空间搜索策略)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内容回顾
内容提要:
1.1 什么是人工智能 1.2 人工智能的发展历史 1.3 人工智能研究的方法 1.4 人工智能研究的课题
国际象棋人机大战
本讲内容
2.1 问题的状态和状态空间 2.2 盲目搜索方法 2.3 启发式搜索策略 2.4 通用图搜索算法 2.5 启发式图搜索算法
2.1 问题的状态和状态空间 2.2 盲目搜索方法 2.3 启发式搜索策略 2.4 通用图搜索算法 2.5 启发式图搜索算法
1 2 3 8 4 7 6 5
目标
4、性质
◦ 一般不能保证找到最优解 ◦ 当深度限制不合理时,可能找不到解 ◦ 最坏情况时,搜索空间等同于穷举 ◦ 是一个通用的与问题无关的方法
1、定义:
如果搜索是以接近起始节点 的程度依次扩展节点的,那 么这种搜索就叫做宽度优先 搜索 (breadth-first search)

图搜索控制策略
◦ 一种在图中寻找路径的方法。 ◦ 图中每个节点对应一个状态,每条连线对应一 个操作符。
数据结构

OPEN表 ◦ 用于存放等待进行搜索的节点 CLOSED表 ◦ 用于存放已经搜索过的节点 OPEN CLOSED


算法流程
开始 把S放入OPEN表 OPEN为空? 否 把第一个节点n从OPEN 表移到CLOSED表 n为目标节点? 是 成功 是 失败
起始节点 S L M F P O Q
N
A
B
C
2、深度优先搜索过程
S L M N A F P B O Q C M N A L F P B S O Q C
3、最大深度约束
◦ 优先扩展最深的节点,使得搜索沿着状态 空间某条单一的路径从起始节点向下进行 下去;只有当搜索到达一个没有后续的状 态时,它才考虑另一条替代的路径。 ◦ 为了防止搜索过程沿着无益的路径扩展下 去,往往给出一个节点扩展的最大深度约 束。超过这个深度约束时不再产生后继。
目标
11
2 8 3 1 6 4 7 5
12
8 3 2 1 4 7 6 5
13
2 8 3 7 1 4 6 5
14 2 8 1 4 3 7 6 5
3、性质
◦ 当问题有解时,一定能找到解 ◦ 方法与问题无关,具有通用性
◦ 效率较低
2.1 问题的状态和状态空间 2.2 盲目搜索方法 2.3 启发式搜索策略 2.4 通用图搜索算法 2.5 启发式图搜索算法
OPEN →未扩展节点表 CLOSED →已扩展节点表 此过程生成 搜索图、搜索树
否 对节点n进行扩展,生成的新节点放到 OPEN表中,提供返回节点n的指针 重排OPEN表
对表中的节点排序: 任意的:盲目搜索 用各种启发思想或其它准 则为依据:启发式搜索

搜索过程
1. 建立一个只含有起始节点S的搜索图G,把S放到 一个叫做OPEN的未扩展节点表中。 2. 建立一个叫做 CLOSED 的已扩展节点表,其初始 值为空表。 3. LOOP:若OPEN表是空表,则失败退出。 4. 选择OPEN表上的第一个节点,把它从OPEN表移 出并放进CLOSED表。称此节点为节点n。 5. 若 n 为一目标节点,则有解并成功退出,此解是 追踪图G中沿着指针从n到S这条路径而得到的。

盲目搜索是一种无信息搜索(Uninformed Search)
◦ 深度优先搜索 ◦ 宽度优先搜索 ◦ 分支有界搜索 ◦ 迭代加深搜索
1、定义:
在此搜索中,首先扩展 最新产生的(即最深的)节 点,深度相等的节点可 以任意排列。这种盲目 搜索叫做深度优先搜索 (depth-first search)

引子:问题求解
3X+5=14, X=?
60 ° 40° ?

引子:问题求解

引子
◦ 人能够采用试探的搜索方法求解很多问题 ◦ 人工智能也可以利用搜索来求解问题 在可能的解空间内寻找一个解
状态
2.1.1 问题状态描述

定义:状态(State)
◦ 为描述某类不同事物间的差别,引入一组最少
变量 q0,q1,…,qn 的有序集合,记作Q
X Y
⑥ (X,Y|X+Y≥4)→(4,Y-4+X) (4,2)
2.1.2 状态空间法 [例2.2]农夫过河
◦ 一个农夫带一条狼、一只羊和一筐菜要从河的 左岸乘船到右岸,但受下列条件限制: 船太小,农夫每次只能带一样东西过河 没有农夫看管,则狼要吃羊,羊要吃菜 ◦ 设计一个过河方案,使得农夫、狼、羊、菜都 能不受损地过河。
2.1.2 状态空间法

[例2.1]水壶问题 给定两个水壶,一个可装4升水,一个 能装3升水。水壶上没有任何度量标记。有 一水龙头可用来往壶中灌水。问:怎样在 容量为4升的水壶中恰好装2升水。
2.1.2 状态空间法

状态空间描述 选用2个变量(X,Y)其中:
◦ X: 4升水壶中的水 ◦ Y: 3升水壶中的水
2.3.1 启发式信息
◦ 盲目搜索的效率低,最好能够选择最有希望的 节点加以扩展 ◦ 在搜索问题中,有助于选择搜索方向的线索统 称为启发式(Heuristic)信息 ◦ 根据一些启发信息,选择最佳的一个或几个分 支往下搜索
2.3.1 启发式信息
◦ 估价函数 为获得节点“希望”的启发信息,提供一 个评定候选扩展节点的方法,以便确定哪个节 点最有可能在通向目标的最佳路径上 。 f(n)——表示节点n的估价函数值
Q =(q0,q1,…,qn )
2.1.1 问题状态描述

定义:操作符/算子(Operator)
◦ 使问题从一种状态变化为另一种状态的手段
3 Puzzle Problem
2.1.1 问题状态描述

定义:问题的状态空间(State Space)
◦ 一个表示该问题全部可能状态及其关系的集合。 ◦ 它包含所有可能的: 问题初始状态集合 S 操作符集合 F 目标状态集合 G
2.1.2 状态空间法

基本思想
◦ 问题中的已知条件 状态空间中的初始状态 ◦ 要求到达的目标 状态空间中的目标状态 ◦ 其他可能发生的情况 状态空间中的任一状态 ◦ 在状态空间找一条路径,能够从初始状态出发 到达目标状态
2.1.2 状态空间法

基本方法:
(1)确定状态描述方式(初始状态、目标状态) (2)规定一组操作符 (3)决定一种搜索策略

最佳优先搜索(Best-first Search)
步骤1:生成第一个可能的解,若是目标则停止; 步骤2:从当前可能的解出发,生成新的可能解集: 2.1 测试新的可能解集中的元素,若是解 则停止; 2.2 将新生成的解集加入原可能解集. 步骤3:挑选最好元素为起点,转 步骤2.
2.1 问题的状态和状态空间 2.2 盲目搜索方法 2.3 启发式搜索策略 2.4 通用图搜索算法 2.5 启发式图搜索算法
2.3.2 几种基本的搜索策略
◦ 爬山法(Hill-climbing) ◦ 最佳优先搜索(Best-first Search) …

爬山法(Hill-climbing)
步骤1:生成第一个可能的解,若是目标则停止; 步骤2:从当前可能的解出发,生成新的可能解集: 2.1 测试新的可能解集中的元素,若是解 则停止; 2.2 选择最接近解的作为最佳元素,其余 舍弃. 步骤3:从当前最佳元素为起点,转 步骤2.
12
2 3 1 8 4 7 6 5
2 3 1 8 4 7 6 5
13
9
2 8 3 1 4 7 6 5
10
1 2 3 8 4 7 6 5 11 2 8 3 1 4 5 7 6 2 8 3 1 4 5 7 6
14 15
2 8 1 4 3 7 6 5 2 8 1 4 3 7 6 5
1 2 3 7 8 4 6 5
操作符的限制
◦ 农夫带菜过河 (F, W, S, V)→ (F, W, S, V)

– 被改变的状态变量X必须与 F同值(同为0或1) – 操作符不改变的状态变量中,必须满足 W ≠ S 以及 S ≠ V
2.1 问题的状态和状态空间 2.2 盲目搜索方法 2.3 启发式搜索策略 2.4 通用图搜索算法 2.5 启发式图搜索算法
X Y
算符
⑦把 3 升的水壶中的水 ⑤把 4 升的水壶中的水 ⑧把 4 ⑥把 3 ④倒空 ①加满 ②加满 ③倒空 3 4升的水壶 升的水壶 全部倒进 4升水壶 倒进 3 ,直到加满 4升水壶 3 (X,Y|Y>0)→ (X,Y|X<4)→ (X,Y|Y<3)→ (X,Y|X>0)→ (X,0) (4,Y) (X,3) (0,Y) (X,Y|X+Y>3)→(X -(3-Y),3) (X,Y|X+Y>4)→(4,Y -(4-X)) (X,Y|X+Y≤4)→(X+Y,0) (X,Y|X+Y≤3)→(0,X+Y)

举例
2 3 1 8 4 7 6 5 1 2 3 8 4 7 6 5
定义状态空间(综合数据库) 用图画表示。 算符(忽略从后继到双亲的弧) A. 空格左移 B. 空格上移 C. 空格右移 D. 空格下移
求解过程
2 3 1 8 4 7 6 5
wk.baidu.com
1
2
2 8 3 1 4 7 6 5 3 2 8 3 1 6 4 7 5 4 2 8 3 1 6 4 7 5 2 8 3 6 4 1 7 5 5 2 8 3 1 6 4 7 5 2 8 3 1 6 7 5 4 7 8 3 2 1 4 7 6 5 8 3 2 1 4 7 6 5 6 2 8 3 1 4 7 6 5 8 2 8 3 7 1 4 6 5 2 8 3 7 1 4 6 5
M N A
起始节点 S L F P B O
Q C
2、举例
2 3 1 8 4 7 6 5
1 2 3 8 4 7 6 5
定义状态空间(综合数据库) 用图画表示 定义算符(忽略从后继到双亲的弧) A. 空格左移 B. 空格上移 C. 空格右移 D. 空格下移
求解过程
1 2 3 1 8 4 7 6 5 2 2 8 3 1 4 7 6 5 5 2 8 3 1 6 4 7 5 10 2 8 3 1 6 4 7 5 6 2 8 3 1 4 7 6 5 3 2 3 1 8 4 7 6 5 7 2 8 3 1 4 7 6 5 4 2 3 1 8 4 7 6 5 8 1 2 3 8 4 7 6 5 15 2 8 3 1 4 5 7 6 16 1 2 3 7 8 4 6 5 9 2 3 4 1 8 7 6 5 17 1 2 3 8 4 7 6 5
2.1.2 状态空间法 状态空间描述:选用4个变量(F, W, S, V), 其中F表示农夫,W表示狼,S表示羊,V表 示菜。各变量取值0表示在河左岸,取值1 表示在河右岸。 初始状态:(0,0,0,0) 目标状态:(1,1,1,1)


操作符
_ ◦ 农夫自己过河 (F, W, S, V)→ (F, W, S, V) _ _ ◦ 农夫带狼过河 (F, W, S, V)→ (F, W, S, V) _ _ ◦ 农夫带羊过河 (F, W, S, V)→ (F, W, S, V) _ _
2.4 通用图搜索算法
节点6待扩展
s
1
6
2 3
4
5
2.4 通用图搜索算法
扩展节点6
s
1
6
2 3
4
5
2.4 通用图搜索算法
节点1待扩展
s
1
6
2 3
4
5
2.4 通用图搜索算法
扩展节点1
s
1
6
2 3
4
5
OPEN
S
L
S O F P Q C
CLOSED
O L M F N A
Q P
M
(1)把起始节点放到OPEN表中; (2)若OPEN表为空,则无解,失败退出; A (3)选择OPEN表上的第一个节点,记为节点n, 把n从OPEN表移出,加入到CLOSED表; (4)若n为一目标节点,则找到解,成功退出 (5)扩展节点n,将n的后继点加入到OPEN表首部,转(2)

解答 初始状态(0,0) 目标状态(2,?)
(0,3) (3,0) (3,3) (0,2) (2,0)
② (X,Y|Y<3)→(X,3) ⑦ (X,Y|X+Y≤4)→(X+Y,0) ② (X,Y|Y<3)→(X,3) ③ (X,Y|X>0)→(0,Y) ⑦ (X,Y|X+Y≤4)→(X+Y,0)
6. 扩展节点n,同时生成不是n的祖先的那些后继节 点的集合M={mi}。把M的这些成员作为n的后继 节点添入图G中。 7. ADD(mj, OPEN),并设置mj指向n的指针, 其中 mj为OPEN和CLOSED中未出现过的子节点。对 于节点n后继节点集合 {mi}= {mj}∪{mk}∪{ml}的 其它节点,计算是否要修改mk (已在OPEN表中 的)、ml(已在CLOSED表中的)到 n的指针。 按照特定模式或启发式方式对OPEN表重新排序。 8. GO LOOP。
相关文档
最新文档