- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《人工智能》
1.2 图搜索算法:一般框架
保留全部搜索路径,便于信息利用; 根据可用算符集合(相当于回溯搜索算法中 的规则集合)扩展当前节点(状态)的全部 (可能)子节点(即生成新状态) 引入open表和closed 表,对搜索过程进行控 制,实现不同方式的搜索策略(包括回溯) 从隐含的状态空间图中产生包含解路径的显 式搜索子图(产生的搜索图越小、搜索效率 越高)
《人工智能》
状态空间表示法
状态:描述问题求解中任一时刻的状况;变量的有序组合 算符:一个状态→另一状态的操作
状态空间:所有求解路径构成的图;{状态,算符} 表示
问题求解过程:
初始状态:描述问题求解中的初始状况 算符(规则应用):一个状态→另一状态的操作 目标测试:确定给定的状态是否为目标状态
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
《人工智能》
例:TSP问题
Traveling Salesman Problem
从某城市出发遍历所有n个城市 一遍且仅一遍再回到出发地,求 最短路径 初始状态:在某一城市 算符:移向下一个未访问过的城市 目标测试:是否处于出发地且访问过所有城市一次 路径耗散函数:路程长度,旅行费用等
•No general method of solution is known
(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
可能算符: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
()
((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))
《人工智能》
路径耗散函数:设定每一步算符操作的耗散值
问题的解:从初始状态到目标状态的路径 最优解:所有解中耗散值最小的解
《人工智能》
例:二阶梵塔问题(习题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轴
《人工智能》
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,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);
例:修道士与野人问题(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种
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))
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)
搜索策略的优劣涉及能否找到最好的解、计算时间、存储空间等
搜索分为盲目搜索和启发式搜索
盲目搜索:按预定的策略搜索,未用问题相关的或中间信息改进搜索。 效率不高,难求解复杂问题,但不失可用性 启发式搜索:搜索中加入问题相关的信息加速问题求解,效率较高, 但启发式函数不易构造
讨论的问题
–有哪些常用的搜索算法? -问题有解时能否找到解?(完备性) –找到的解是最佳的吗?(最优性)- 什么情况下可以找到最佳解? –求解的效率如何?(时间、空间复杂度)
A B A B
1
《人工智能》
2 S0
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.
•NP-hard(Karp,1972) •有效的启发式算法(1973) •完全多项式近似方案(1998) •……
《人工智能》
与搜索相关的基本概念
图是由结点(顶点)的有穷集合V和边的集合E组成。边是顶 点的有序偶对,若两顶点间存在一条边,就表示这两个顶点
具有相邻关系。
有向图:每条边都有方向;无向图:每条边都无方向。 树是包含n(n>0)个结点的有穷集合,其中: (1)每个元素称为结点(node,或节点); (2)有一个特定的结点被称为根结点或树根。
(3)除根结点外的其余数据元素被分为m(m≥0)个互不相
交的集合T1,T2,……Tm-1,其中每一个集合Ti(1<=i<=m) 本身也是一棵树,被称作原树的子树(subtree)。
《人工智能》
树节点深度: 根节点深度=0 其它节点深度=父节点深度+1
0 1 2 3
《人工智能》
路径的代价(耗散值)
((1,2) (2,4))
((1,1) (2,4) (3.2))
((1,2) (2,4) (3,1))
((1,2) (2,4) (3,1) (4,3))
《人工智能》
存在问题及解决办法
当前状态
问题:
– 深度问题
– 死循环问题
解决办法:
对搜索深度加以限制(有界深度) 记录从初始状态到当前状态的路径, 避免重复
算符:将皇后添加到棋盘上的任一空格 目标测试:8皇后都在棋盘上,且互相攻击不到 路径耗散函数:每一步耗散值1 •8皇后:92种解,本质解12个
返回
•找到一般n皇后问题复杂度为O(n)的算法(1989)
《人工智能》
n 皇后问题解的个数:独立解U;互不相同的解D 现在还没有已知公式可以对 n 计算 n 皇后问题的解的个数。
Q
() Q Q ((1,2))
((1,1))