第一章第一讲--状态空间与图搜索
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
等于连接这条路径各节点间所有代价(耗散值)的总和。
代价树:边上标有代价的树状结构图
若干记号:
S0-初始态;Sg-目标态; g(x)-从S0到节点x的代价;g(xj)=g(xi)+ C(xi, xj) C(xi, xj):从父节点xi到子节点xj的边代价(耗散值) 。
《人工智能》
例:4-皇后问题 规则集Rij:
算符:将皇后添加到棋盘上的任一空格 目标测试:8皇后都在棋盘上,且互相攻击不到 路径耗散函数:每一步耗散值1 •8皇后:92种解,本质解12个
返回
•找到一般n皇后问题复杂度为O(n)的算法(1989)
《人工智能》
n 皇后问题解的个数:独立解U;互不相同的解D 现在还没有已知公式可以对 n 计算 n 皇后问题的解的个数。
Q
() Q Q ((1,2))
((1,1))
((1,1) (2,3))
((1,1) (2,4))
((1,2) (2,4))
((1,1) (2,4) (3.2))
((1,2) (2,4) (3,1))
《人工智能》
Q
() Q Q ((1,2)) Q
((1,1))
((1,1) (2,3))
((1,1) (2,4))
《人工智能》
Q
() Q
((1,1))
((1,1) (2,3))
((1,1) (2,4))
《人工智能》
Q
() Q Q
((1,1))
((1,1) (2,3))
((1,1) (2,4))
((1,1) (2,4) (3.2))
《人工智能》
Q
() Q
((1,1))
((1,1) (2,3))
((1,1) (2,4))
•NP-hard(Karp,1972) •有效的启发式算法(1973) •完全多项式近似方案(1998) •……
《人工智能》
与搜索相关的基本概念
图是由结点(顶点)的有穷集合V和边的集合E组成。边是顶 点的有序偶对,若两顶点间存在一条边,就表示这两个顶点
具有相邻关系。
有向图:每条边都有方向;无向图:每条边都无方向。 树是包含n(n>0)个结点的有穷集合,其中: (1)每个元素称为结点(node,或节点); (2)有一个特定的结点被称为根结点或树根。
n
1 2
3 0 0
4 1 2
5 2
6 1
7 6
8
9
10 92 724
11 341 2680
12 1787 14200
13 9233 73712
14 45752 365596
U 1 0 D 1 0
12 46
10 4
40 92 352
《人工智能》
例:数独,Latin square
5 3 4 6 7 8 9 1 2 6 7 2 1 9 5 3 4 8 1 9 8 3 4 2 5 6 7
《人工智能》
m c m 1 3 m 3 c 3 m 1 m 0 m c 1,2 m 3 m c 1,2
m m x b 1 : c c y , b 0
m m x b 0 : c c y , b 1
((1,1) (2,4) (3.2))
《人工智能》
Q百度文库
()
((1,1))
((1,1) (2,3))
((1,1) (2,4))
((1,1) (2,4) (3.2))
《人工智能》
()
((1,1))
((1,1) (2,3))
((1,1) (2,4))
((1,1) (2,4) (3.2))
《人工智能》
Q
《人工智能》
1.2 图搜索算法:一般框架
保留全部搜索路径,便于信息利用; 根据可用算符集合(相当于回溯搜索算法中 的规则集合)扩展当前节点(状态)的全部 (可能)子节点(即生成新状态) 引入open表和closed 表,对搜索过程进行控 制,实现不同方式的搜索策略(包括回溯) 从隐含的状态空间图中产生包含解路径的显 式搜索子图(产生的搜索图越小、搜索效率 越高)
x m y c , x y 2
x 3 m y 3 c , x y 2
(3,3,1) (3,2,0) (2,2,0) (3,2,1) (3,0,0) (3,1,1) (3,1,0)
0<x+y≤2: (x,y)=(2,0), (0,2),(1,1),(1,0),(0,1)
路径耗散函数:设定每一步算符操作的耗散值
问题的解:从初始状态到目标状态的路径 最优解:所有解中耗散值最小的解
《人工智能》
例:二阶梵塔问题(习题1.1) 状态描述:(SA,SB) 可能状态:S0=(1,1),S=(1,2),S=(1,3),S=(2,1),Sg=(2,2),S=(2,3) S=(3,1),S=(3,2),Sg=(3,3) 算符:A(i,j)—将A从i轴移至j轴; B(i,j)—将B从i轴移至j轴
可能算符:A(1,2), A(1,3), A(2,1), A(2,3), A(3,1), A(3,2) B(1,2), B(1,3), B(2,1), B(2,3), B(3,1), B(3,2)
1,1 2,1 2,3 3,3 1,3 1,2 A(1,3) 3,1 B(1,2) 3,2 A(3,2) 2,2
《人工智能》
状态空间表示法
状态:描述问题求解中任一时刻的状况;变量的有序组合 算符:一个状态→另一状态的操作
状态空间:所有求解路径构成的图;{状态,算符} 表示
问题求解过程:
初始状态:描述问题求解中的初始状况 算符(规则应用):一个状态→另一状态的操作 目标测试:确定给定的状态是否为目标状态
人工智能(Artificial Intelligence)
《人工智能》
第一章 搜索问题
内容: 状态空间的搜索问题。 搜索方式:
盲目搜索 启发式搜索
关键问题: 如何利用知识,尽可能有效地找到问题的 解(最佳解)。
《人工智能》
搜索问题(续1)
S0
Sg
搜索的含义
基本概念
依问题寻找可用的知识,构造代价少的推理路径从而解决问题的过程 离散的问题通常没有统一的求解方法
可能状态:(b,a,b,0,0)
(c,a,c,1,0) (c,a,c,1,1) ……
(w,t,x,y,0) → (u,t,x,y,0) (w,t,w,0,0) →(v,t,v,0,0)
Climb: 猴子爬上箱子
Grasp: 猴子拿到香蕉
(w,t,w,0,0) →(w,t,w,1,0)
(a,a,a,1,0) →(a,a,a,1,1)
搜索策略的优劣涉及能否找到最好的解、计算时间、存储空间等
搜索分为盲目搜索和启发式搜索
盲目搜索:按预定的策略搜索,未用问题相关的或中间信息改进搜索。 效率不高,难求解复杂问题,但不失可用性 启发式搜索:搜索中加入问题相关的信息加速问题求解,效率较高, 但启发式函数不易构造
讨论的问题
–有哪些常用的搜索算法? -问题有解时能否找到解?(完备性) –找到的解是最佳的吗?(最优性)- 什么情况下可以找到最佳解? –求解的效率如何?(时间、空间复杂度)
《人工智能》
例:TSP问题
Traveling Salesman Problem
从某城市出发遍历所有n个城市 一遍且仅一遍再回到出发地,求 最短路径 初始状态:在某一城市 算符:移向下一个未访问过的城市 目标测试:是否处于出发地且访问过所有城市一次 路径耗散函数:路程长度,旅行费用等
•No general method of solution is known
(3)除根结点外的其余数据元素被分为m(m≥0)个互不相
交的集合T1,T2,……Tm-1,其中每一个集合Ti(1<=i<=m) 本身也是一棵树,被称作原树的子树(subtree)。
《人工智能》
树节点深度: 根节点深度=0 其它节点深度=父节点深度+1
0 1 2 3
《人工智能》
路径的代价(耗散值)
((1,1) (2,3))
注1:按顺序,(2,1),(2,2)分别对应的状态是不合法的,
故而回溯到(1,1);
注2:(3,1),(3,2) ,(3,3),(3,4)分别对应的状态都是不
合法的,故而回溯到(2,3)
《人工智能》
Q
()
((1,1))
((1,1) (2,3))
注: (2,3)不存在可用规则,故而又回溯到(1,1);
((1,2) (2,4))
((1,1) (2,4) (3.2))
((1,2) (2,4) (3,1))
((1,2) (2,4) (3,1) (4,3))
《人工智能》
存在问题及解决办法
当前状态
问题:
– 深度问题
– 死循环问题
解决办法:
对搜索深度加以限制(有界深度) 记录从初始状态到当前状态的路径, 避免重复
i=1:(1,1)(1,2)(1,3)(1,4)
i=2:(2,1)(2,2)(2,3)(2,4) i=3:(3,1)(3,2)(3,3)(3,4) i=4:(4,1)(4,2)(4,3)(4,4)
Q Q Q Q
《人工智能》
()
《人工智能》
Q
()
((1,1))
《人工智能》
Q
() Q
((1,1))
例:修道士与野人问题(1968)
S0:河左岸有3个Missionaries和3个Cannibals,1条boat
条件:1)M和C都会划船,船一次只能载2人 2)在任一岸上,M人数不得少于C的人数,否则被吃 目标:安全抵达对岸的最佳方案 状态描述:左岸(m,c,b);0≤m≤3,0≤c≤3,b∈{0,1}; S0:(3,3,1);Sg(0,0,0) 状态总数:4×4×2=32种,但合法状态16种
A B A B
1
《人工智能》
2 S0
3
1
2 Sg
3
猴子摘香蕉问题
c
a
《人工智能》
b
状态:(w,t,x,y,z) w:猴子的水平位置 {a,b,c}
初始状态:(c,a,b,0,0) 目标状态:(a,a,a,1,1)
t:天花板上香蕉对应的地面位置 {a,b,c}
x:箱子的水平位置 y:猴子是否在箱子上 z:猴子是否拿到香蕉 操作符: Goto(u):猴子走到u处 Push(v):猴子推箱到v处 {a,b,c} {0,1} {0,1}
8 5 9 7 6 1 4 2 3
4 2 6 8 5 3 7 9 1 7 1 3 9 2 4 8 5 6
9 6 1 5 3 7 2 8 4
2 8 7 4 1 9 6 3 5 3 4 5 2 8 6 1 7 9
Sudoku is a logic-based, combinatorial number-placement puzzle. The objective is to fill a 9×9 grid so that each column, each row, and each of the nine 3×3 boxes (also called blocks or regions) contains the digits from 1 to 9 only one time each. The puzzle setter provides a partially completed grid.
《人工智能》
《人工智能》
2 8 1 6 (九宫重排问题) 7 例:八数码游戏
3 4 5
1 2 3 8-Puzzle 8 4 7 6 5 sliding-block puzzle
初始状态:任一状态都可为初始状态 算符:将空位移向四个方向 目标测试:确定当前状态是否为目标状态 路径耗散函数:每一步耗散值1 •其状态可以划分为两个不相交的集合。(证明) •8数码, 9!/2=181440 ;15数码,1.3万亿;24数码,1025 •一般n×n数码:NP-hard(1986)
()
((1,1))
((1,2))
((1,1) (2,3))
((1,1) (2,4))
((1,1) (2,4) (3.2))
《人工智能》
Q
() Q ((1,2))
((1,1))
((1,1) (2,3))
((1,1) (2,4))
((1,2) (2,4))
((1,1) (2,4) (3.2))
《人工智能》
(0,2,1) (0,1,0) (0,3,1) (0,0,0) (1,1,1)
(1,1,0)
(2,2,1)
(0,2,0)
例:皇后问题 (1850)
Q
Q Q
Q
初始状态:棋盘上无皇后
Put n queens on an n × n board with no two queens on the same row, column, or diagonal