图搜索与问题求解
《人工智能导论》第3章 图搜索与问题求解

第 3 章 图搜索与问题求解 图 3-5 修改返回指针示例
第 3 章 图搜索与问题求解
说明:
(1) 这里的返回指针也就是父节点在CLOSED表中的编 号。
(2) 步6中修改返回指针的原因是, 因为这些节点又被第 二次生成, 所以它们返回初始节点的路径已有两条, 但这两 条路径的“长度”可能不同。 那么, 当新路短时自然要走 新路。
第 3 章 图搜索与问题求解
3.1.5 加权状态图搜索
1.加权状态图与代价树
例3.6 图3-9(a)是一个交通图,设A城是出发地,E城 是目的地, 边上的数字代表两城之间的交通费。试求 从A到E最小费用的旅行路线。
第 3 章 图搜索与问题求解 图 3-9 交通图及其代价树
第 3 章 图搜索与问题求解
第 3 章 图搜索与问题求解
3. 状态图表示
一个问题的状态图是一个三元组 (S, F, G)
其中S是问题的初始状态集合, F是问题的状态转换 规则集合, G是问题的目标状态集合。
一个问题的全体状态及其关系就构成一个空间, 称为状态空间。所以,状态图也称为状态空间图。
第 3 章 图搜索与问题求解
例 3.7 迷宫问题的状态图表示。
的返回指针和f(x)值, 修改原则是“抄f(x)
”。
(2)对其余子节点配上指向N的返回指针后放入OPEN表中, 并对OPEN表按f(x)值以升序排序, 转步2。
第 3 章 图搜索与问题求解
算法中节点x的估价函数f(x)的计算方法是 f(xj)=g(xj)+h(xj) =g(xi)+c(xi, xj)+h(xj) (xj是xi的子节点)
人工智能第三章搜索推理技术

人工智能第三章搜索推理技术教学内容:本章在上一章知识表示的基础上研究问题求解的方法,是人工智能研究的又一核心问题。
内容包含早期搜索推理技术,如图搜索策略与消解原理;与高级搜索推理技术,如规则演绎系统、产生式系统、系统组织技术、不确定性推理与非单调推理。
教学重点:图搜索策略、消解原理、规则演绎系统、产生式系统。
教学难点:启发式搜索、规则双向演绎系统等。
教学方法:课堂教学为主,辅以恰当的实验。
注意结合前面所学知识表示的基础内容,将其与问题求解方法融为一体。
及时提问、收集学生学习情况。
尽量使用实例与网络课程中的多媒体素材进行讲解。
教学要求:重点掌握通常图搜索策略与消解原理,掌握各类搜索方法与产生式系统原理,熟悉规则演绎系统的基本原理,对系统组织技术、不确定性推理与非单调推理等高级推理技术作通常性熟悉。
3.1 图搜索策略教学内容:本节介绍图搜索的通常策略,作为各类图搜索技术的基础。
教学重点:图搜索的通常过程、OPEN表与CLOSE表的概念。
教学难点:OPEN表与CLOSE表的物理意义。
教学方法:课堂教学为主,通过提问完全弄清图搜索的基本概念。
教学要求:重点掌握图搜索通常策略,掌握OPEN表与CLOSE表的构成及作用。
1、图搜索策略的定义图搜索策略可看作一种在图中寻找路径的方法。
初始节点与目标节点分别代表初始数据库与满足终止条件的数据库。
求得把一个数据库变换为另一数据库的规则序列问题就等价于求得图中的一条路径问题。
研究图搜索的通常策略,能够给出图搜索过程的通常步骤。
2、图搜索算法中的几个重要名词术语(1)OPEN表与CLOSE表(2)搜索图与搜索树3、图搜索(GRAPHSEARCH)的通常过程(1) 建立一个只含有起始节点S的搜索图G,把S放到一个叫做OPEN的未扩展节点表中。
(2) 建立一个叫做CLOSED的已扩展节点表,其初始为空表。
(3) LOOP:若OPEN表是空表,则失败退出。
(4) 选择OPEN表上的第一个节点,把它从OPEN表移出并放进CLOSED表中。
第3章 图搜索与问题求解

( 4 )对其余子节点配上指向 N 的返回指针后放入 OPEN 表 中某处,或对OPEN表进行重新排序,转步2。
3.1.2 状态图搜索
树式算法的几点说明
返回指针指的是父节点在CLOSED表中的编号。 步6中修改指针的原因是返回初始节点的路径有两 条,要选择“短”的那条路径。 这里路径长短以节点数来衡量,在后面将会看到以 代价来衡量。按代价衡量修改返回指针的同时还要 修改相应的代价值。
3.1.2 状态图搜索
1 搜索方式
树式搜索 在搜索过程中记录所经过的所有节点和边。树式搜 索所记录的轨迹始终是一棵树,这棵树也就是搜索过 程中所产生的搜索树。 线式搜索 在搜索过程中只记录那些当前认为在所找路径上的 节点和边。
不回溯线式搜索 可回溯线式搜索
3.1.2 状态图搜索
2 搜索策略
3.1.2 状态图搜索
搜索:从初始节点出发,沿着与之相连的边试探 地前进,寻找目标节点的过程。 搜索过程中经过的节点和边,按原图的连接关系, 便会构成一个树型的有向图,这种树型有向图称 为搜索树。 搜索进行中,搜索树会不断增长,直到当搜索树 中出现目标节点,搜索便停止。这时从搜索树中 就可很容易地找出从初始节点到目标节点的路径 (解)来。
八数码深度优先搜索
…
3.1.4 启发式搜索
• 启发式搜索的目的 利用知识来引导搜索,达到减少搜索范围,降低问题复 杂度。 • 启发性信息的强弱 强:降低搜索的工作量,但可能导致找不到最优解。 弱:一般导致工作量加大,极限情况下变为盲目搜索, 但可能可以找到最优解。
3.1.4 启发式搜索
启发函数
步5 扩展N,选取其一个未在CLOSED表中出现过的
第3章(搜索推理技术1-图盲目搜索)

①、起 始节点 ( 即根
节点)的深度为0。
②、任何其它节点的
深度等于其父辈
节点深度加上1。
深度优先搜索的基本
思路:
先扩展最深的节点 。
当出现没有后继节点
时,换到旁边的次深
节点
后生成的节点画在左边
含有深度界限的深度优先搜索算法:
① 把起始节点 S 放到未扩展节点的 OPEN 表中。 如果此节点为一目标节点,则得到解 ② 如果 OPEN 为一空表,则无解、失败退出
状态:长度为9的一维数组
(q1 , q2 , … , q9 )
其中,qi 取 0 , 1 , … , 8 个数,0 表示空格,且取值
互不相同
如果记空格的位置为P,这时空格的移动规则是: 1 4 7 2 5 8 3 6 9 数字表示位置 1 2 3 4 5 6 7 8 9 P-3
P-1
P
P+1
P+3
起始节点的父节点标志和操作符:
不作记录或记录为负
搜索过程(按照程序运行方式)
① 起始节点放到OPEN表
2 8 3 1 0 4
2 8 3 1 4 7 6 5 7 6 5
② OPEN不为空,继续
③ 将第一个节点 n 从 OPEN 表中移出,并放到 CLOSED表中 OPEN表
CLOSED表 1 0 0 2 8
13
14
1
4
2
8
8
3
3
0
1
2
4
1
5
4
7
7
0
6
6
5
1 8
7
2
3 4
14 15 15
16 16
3 2 4
第4章+图搜索技术_2(启发式)

g=0
h=3 f=3
A
优先队:FBH
设g 为已搜索的路程代价 h 为将付出的估计代价
F g=1 h=2 f=3 G h=1
B g=1 h=3 f=4
H g=1 h=4 f=5
F
h=3 A
h= 2
h=3
B
h=4
C
初始结点
h=2 h=3
D
h=1 h=2
E
h=0
目标结点
H
I
J
第4章 图搜索技术
(d)
A
算出f值对OPEN表重排序
(3)用于删除节点的选择,即用于决定应删除哪些
无用节点,以免造成进一步的时空浪费。
第4章 图搜索技术
一般来说启发信息过弱,产生式系统在找到一条 路径之前将扩展过多的节点,即求得解路径所需搜索 的耗散值(搜索花费的工作量)较大;相反引入强的 启发信息,有可能大大降低搜索工作量,但不能保证 找到最小耗散值的解路径(最佳路径),因此实际应
模式,需要具体问题具体分析。通常可以参考的思路 有:一个节点到目标节点的某种距离或差异的度量; 一个节点处在最佳路径上的概率;或者根据经验的主 观打分等等。例如,对于八数码难题,用h(x)就可表 示节点x的数码格局同目标节点相比,数码不同的位 置个数。
第4章 图搜索技术
4.启发式搜索算法
启发式搜索要用启发函数来导航,其搜索算法就 要在状态图一般搜索算法基础上再增加启发函数值的 计算与传播过程,并且由启发函数值来确定节点的扩 展顺序。为简单起见,下面我们仅给出树型图的树式 搜索的两种策略。
第4章 图搜索技术
4.1.5 加权状态图搜索
1. 加权状态图与代价树 例4.6 图4—8(a)是一个交通图,设A城是出发地,E 城是目的地,边上的数字代表两城之间的交通费。试 求从A到E最小费用的旅行路线。
第3章 图搜索与问题求解

第 3 章 图搜索与问题求解
第 3 章 图搜索与问题求解
3.1.4 启发式搜索 1. 问题的提出
2. 启发性信息 按其用途划分, 启发性信息可分为以下三类: (1) 用于扩展节点的选择, 即用于决定应先扩展哪一个节 点, 以免盲目扩展。 (2) 用于生成节点的选择,即用于决定应生成哪些后续节点, 以免盲目地生成过多无用节点。 (3) 用于删除节点的选择,即用于决定应删除哪些无用节点, 以免造成进一步的时空浪费。
第 3 章 图搜索与问题求解
代价树的搜索。所谓代价,可以是两点之间的距离、交 通费用或所需时间等等。通常用g(x)表示从初始节点So到 节点x的代价, 用c(xi,xj)表示父节点xi到子节点xj的代价,即边 (xi,xj)的代价。从而有
g(xj)=g(xi)+c(xi, xj)
而 g(So)=0
第 3 章 图搜索与问题求解 2.深度优先搜索
第 3 章 图搜索与问题求解
深度优先搜索算法: (1) 把初始节点So放入OPEN表中。 (2) 若OPEN表为空, 则搜索失败, 退出。 (3) 取OPEN表中前面第一个节点N放入CLOSED表中,并 冠以顺序编号n。 (4) 若目标节点Sg=N, 则搜索成功,结束。 (5) 若N不可扩展, 则转步(2)。 (6) 扩展N, 将其所有子节点配上指向N的返回指针依次放 入OPEN表的首部, 转步(2)。
第 3 章 图搜索与问题求解
3. 最近择优法(瞎子爬山法) 把局部择优法算法中的h(x)换成g(x)就可得最近择优 法的算法。 例:用代价树搜索求解例3-6中给出的问题。 用分支界限法得到的路径为
第3章图搜索与问题求解

第 3 章 图搜索与问题求解 图 3-1 迷宫图
第 3 章 图搜索与问题求解 图 3-2 迷宫的有向图表示
第 3 章 图搜索与问题求解
例 3.2 在一个3×3的方格棋盘上放置着1, 2, 3, 4, 5, 6, 7, 8八个数码, 每个数码占一格, 且有一个空格。 这些数码可 在棋盘上移动, 其移动规则是:与空格相邻的数码方可移入空 格。现在的问题是:对于指定的初始棋局和目标棋局(如图3-3 所示), 给出数码的移动序列。该问题称为八数码难题或重排九 宫问题。
可以看出,图中的一条边(即相邻两个节点的连线)就对应一 次数码移动,反之, 一次数码移动也就对应着图中的一条边。而 数码移动是按数码的移动规则进行的。所以, 图中的一条边也 就代表一个移动规则或者移动规则的一次执行。于是,这个八数 码问题也就是要在该有向图中寻找目标节点, 或找一条从初始节 点到目标节点的路径问题。
按搜索范围的扩展顺序的不同, 搜索又可分为广度优先和 深度优先两种类型。对于树式搜索, 既可深度优先进行, 也可 广度优先进行。对于线式搜索则总是深度优先进行。
第 3 章 图搜索与问题求解
3. 搜索算法
由于搜索的目的是为了寻找初始节点到目标节点的路径, 所以在搜索过程中就得随时记录搜索轨迹。为此, 我们用一个 称为CLOSED表的动态数据结构来专门记录考查过的节点。显然, 对于树式搜索来说, CLOSED表中存储的正是一棵不断成长的搜 索树; 而对于线式搜索来说, CLOSED表中存储的是一条不断伸 长的折线, 它可能本身章 图搜索与问题求解
启发式搜索则是利用“启发性信息”引导的搜索。 所谓 “启发性信息”就是与问题有关的有利于尽快找到问题解的信 息或知识。例如:“欲速则不达”、“知已知彼, 百战不殆”、 “学如逆水行舟不进则退”等格言, 就是指导人们行为的启发 性信息。常识告诉我们,如果有向导引路, 则就会少走弯路而 事半功倍。 所以, 启发式搜索往往会提高搜索效率, 而且可 能找到问题的最优解。根据启发性信息的内容和使用方式的不 同, 启发式搜索又可分为许多不同的策略, 如全局择优、局部 择优、 最佳图搜索等等。
图搜索问题求解

图搜索问题求解实验⼆图搜索问题求解⼀、实验⽬的加深学⽣对图搜索技术的理解,使学⽣掌握图搜索基本编程⽅法,并能利⽤图搜索技术解决⼀些应⽤问题。
1. 掌握Turbo prolog软件编程⽅法;2. 熟悉状态图搜索的基本算法;3.掌握图搜索问题求解中的问题表⽰、节点表⽰、close表和open表的构造。
⼆、实验环境计算机,Turbo PROLOG教学软件三、预习要求1.预习教材第四章有关状态图问题求解的内容,熟悉状态图求解的过程和⽅法;2.了解Turbo PROLOG程序设计的基本知识。
四、实验内容以求交通图中两地之间的路径和最短路径问题为例,分别⽤状态图搜索和代价树搜索,进⾏问题求解。
问题描述如下:G 为⼀有向图, 其每条边都有⼀个⾮负的权数。
对于图中任意两点间的路径, 定义⼀个路径长度, 其值为该路径所包含的各条边的权数之和。
两点间的路径⼀般不⽌⼀条。
对于给定的任意出发点s和到达点t,⾸先找到所有的从s⾄t的路径,然后从中找出长度最短的路径。
左图是某⼀城市的交通⽹络。
边的⽅向表⽰允许的通⾏⽅向。
边旁的权数表⽰该边的长度。
要求找出点 v1 ⾄ v5 的所有路径,并找出最短路径。
五、实验⽅法和步骤1. 启动prolog编辑环境;2. ⽤图搜索搜索思想编辑路径求解问题的源程序;2. 运⾏程序,分析结果;3. ⽤代价树搜索思想编辑最短路径求解问题的源程序;4.运⾏程序,分析结果。
六、⽰例程序以教材例4.1迷宫图的路径搜索为例,给出迷宫问题的求解程序。
DOMAINSstate=symbolDATABASE-mydatabaseopen(state,integer)closed(integer,state,integer)res(state)open1(state,integer)min(state,integer)mark(state)fail_PREDICATESsolveroad(state,state)search(state,state)resultsearchingstep4(integer,state)step56(integer,state)equal(state,state)repeatresulting(integer)rule(state,state)GOALsolve.CLAUSESsolve:-search(s0,sg),result.search(Begin,End):-retractall(_,mydatabase),assert(closed(0,Begin,0)),assert(open(Begin,0)),assert(mark(End)),repeat,searching,!.result:-not(fail_),retract(closed(0,_,0)),closed(M,_,_),resulting(M),!.result:-beep,write("sorry don't find aroad!"). searching:-open(State,Pointer),retract(open(State,Pointer)),closed(No,_,_),No2=No+1,asserta(closed(No2,State,Pointer)),!,step4(No2,State).searching:-assert(fail_).step4(_,State):-mark(End),equal(State,End).step4(No,State):-step56(No,State),!,fail.step56(No,StateX):-rule(StateX,StateY),not(open(StateY,_)),not(closed(_,StateY,_)),assertz(open(StateY,No)),fail.step56(_,_):-!.equal(X,X).repeat.repeat:-repeat.resulting(N):-closed(N,X,M),asserta(res(X)),resulting(M).resulting(_):-res(X),write(X),nl,fail.resulting(_):-!.rule(X,Y):-road(X,Y).road(s0,s4).road(s4,s1).road(s1,s4).road(s1,s2).road(s2,s1).road(s2,s3).road(s3,s2).road(s4,s7).road(s7,s4).road(s4,s5).road(s5,s4).road(s5,s6).road(s6,s5).road(s5,s8).road(s8,s5).road(s8,s9).road(s9,s8).road(s2,s5).road(s5,s2).road(s9,sg).七、实验报告要求1. 实验报告应简单明了,语⾔通顺,结果正确,程序规范。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2,1),(2,2),(2,3)
(3,1),(3,2),(3,3)
2013-8-5 人工智能 20
3.1.3 梵塔问题的状态空间(2)
A B 1 2 3 S0:(1,1)
A
1 2 3 S1:(1,2) A B 1 2 3 S4:(2,2) B A
A
1 2 3 S2:(1,3)
B
A
1 2 3 S3:(2,1)
3 1 1 S10 1 1 1 S18 3 1 0 S26 1 1 0 3 0 1 S11 1 0 1 S19 3 0 0 S27 1 0 0 2 3 1 S12 0 3 1 S20 2 3 0 S28 0 3 0 2 2 1 S13 0 2 1 S21 2 2 0 S29 0 2 0 2 1 1 S14 0 1 1 S22 2 1 0 S30 0 1 0 2 0 1 S15 0 0 1 S23 2 0 0 S31 0 0 0
q01
p01 p10 p02 S1 (3,2,1) q02 q01 S19 (3,0,0) p01 p20 S2 S26 (3,1,1) q20 (1,1,0)
q10
q11 p11
q11 S31 (0,0,0)
p11 p01 q01 p02 q02
S10 (1,1,1) S14 (0,1,1) S13 (0,2,1)
2013-8-5 人工智能 24
n(n≥3)阶梵塔问题
n阶梵塔问题的操作集合表示为: F={Rk(i,j) | i,j={1,2,3},k={1,2,„,n}} 全部可能状态数为3n个,最佳解长度为2n-1。 三阶梵塔问题状态图
S0=(1,1,1)
2013-8-5
Sg2=(3,3,3)
人工智能
Sg1=(2,2,2)
25
3.1.4 重排九宫问题和隐式图(1) 例3.8重排九宫问题(八数码难题)
2 8 1 3 4 1 8 7 6 2 3 4 5 X1 X2 X3 X8 X0 X4
7 6
5
X7 X6 X5
目标棋局 将棋局用向量A=(X0,X1 , X2 , X3 , X4 , X5 , X6 , X7 , X8)
人工智能 2
2013-8-5
第3章 图搜索与问题求解
3.1 3.2 3.3 3.4 3.5 状态图知识表示(状态图搜索问题求解) 状态图搜索 与或图知识表示(与或图搜索问题求解 ) 与或图搜索 博弈树搜索
2013-8-5
人工智能
3
3.1 状态图知识表示
3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 状态、操作和状态空间 修道士和野人的状态空间 梵塔问题的状态空间 重排九宫问题和隐式图 问题求解的基本框架
2013-8-5 人工智能 15
3.1.2 修道士和野人问题的状态空间(2) 解:先建立问题的状态空间。问题的状态可以用 一个三元数组来描述: S=(m, c, b) m:左岸的修道士数 c:左岸的野人数 b:左岸的船数 右岸的状态不必标出,因为: 右岸的修道士数m’=3-m 右岸的野人数c’=3-c 右岸的船数b’=1-b
(S2, S3), (S3, S2),
G:Sg
(S4, S7), (S7, S4), (S4, S5), (S5, S4), (S5,
S6), (S6, S5), (S5, S8), (S8, S5), (S8, S9), (S9, S8), (S9, Sg)} 迷宫问题规则集描述了图中所有节点和边。类似于 这样罗列出全部节点和边的状态图称为显式状态图, 或者说状态图的显式表示。
A
B
1 2 3 S5:(2,3)
B
A 1 2 3 S6:(3,1)
A
B 1 2 3 S8:(3,3)
21
1 2 3 S7:(3,2)
人工智能
2013-8-5
3.1.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),目标状态(3,3) 梵塔问题用状态图表示为: <{(1,1)},{A(1,2),„,B(3,2)},{(3,3)}>
2013-8-5
人工智能
4
3.1.1状态、操作和状态空间(1)
例3.1走迷宫
走迷宫问题就是从该有向图的初始节点出发,寻找目 标节点的问题,或者是寻找通向目标节点的路径问题。
2013-8-5 人工智能 5
3.1.1 状态、操作和状态空间(2)
例3.2八数码难题(重排九宫问题)
2 8
1
3
4
1 8
2
3 4
7 6
5
7
6
5
初始棋局
目标棋局
棋局作为节点,相邻节点通过移动数码一个一个产生 出来,所有节点由它们的相邻关系连成一个有向图。 以上两个问题抽象来看,都是某个有向图中寻找目标 或路径的问题,在人工智能技术中,把这种描述问题 的有向图称为状态空间图,简称状态图。
2013-8-5 人工智能 6
3.1.1 状态、操作和状态空间(3)
操作集F={p01, p10,p11,p02,p20,q01,q10,q11, q02,q20}
2013-8-5 人工智能 18
3.1.2 修道士和野人问题的状态空间(5)
p02 S0 (3,3,1)
q02 p01
q01 p11 q11
S18 (3,1,0) S17 (3,2,0) S21 (2,2,0)
2013-8-5 人工智能 11
3.1.1 状态、操作和状态空间(8)
补充例1 三枚钱币,能否从下面状态翻动三次后 出现全正或全反状态。
正 正 正
反
正
反
反
反
反
初始状态θ s
2013-8-5 人工智能
目标状态集合{θ0, θ7}
12
3.1.1 状态、操作和状态空间(9)
引入一个三元组(q0,q1,q2)来描述总状态,钱币正面为0,反面 为1,全部可能的状态为: Q0=(0,0,0) ; Q1=(0,0,1); Q2=(0,1,0) Q3=(0,1,1) Q6=(1,1,0) ; Q4=(1,0,0); Q5=(1,0,1) ; Q7=(1,1,1)。
2013-8-5
人工智能
22
3.1.3 梵塔问题的状态空间(4)
1,1
A(1,3)
2,1
A(2,1)
3,1
B(1,2)
B(3,1)
A(3,2)
3,3
2,3
3,2
A(3,2)
1,3
1,2
2,2
A(2,1)
2013-8-5
B(1,3)
人工智能
A(1,3)
23
n(n≥3)阶梵塔问题
假设金片Pk从小片到大片按下标k顺序编号, 即k=1,2,3,„,n,n阶梵塔问题状态空间 可用矢量表示为: (P1, P2, P3,„, Pk,„, Pn) Pk表示第k个金片穿在编号为Pk的宝石针上, Pk={1,2,3} 初始状态 S0=(1,1,1,„,1,„,1) 目标状态 Sg1 =(2,2,2,„,2,„,2) Sg2 =(3,3,3,„,3,„,3)
Qs O1 S1 O2 S2 O3 S3 O4 … On Qg
10
2013-8-5
人工智能
3.1.1 状态、操作和状态空间(7)
例 3.7 迷宫问题的状态图表示。
S:So F:{(So, S4), (S4, So), (S4, S1), (S1, S4), (S1,S2), (S2, S1),
2013-8-5
人工智能
9
3.1.1 状态、操作和状态空间(6)
状态空间中问题求解
在状态空间表示法中,问题求解过程转化为在图中 寻找从初始状态Qs出发到达目标状态Qg的路径问题, 也就是寻找操作序列的问题。 状态空间的解为三元组< Qs, a, Qg > Qs :某个初始状态 Qg :某个目标状态 a:把Qs变换成Qg的有限的操作序列 状态转换图
p10 q10 q01 q02 S30 (0,1,0) p02 p01
人工智能 19
p01 S12 (0,3,1) q01
q20 S29 S5 (0,2,0) p20 (2,2,1)
2013-8-5
3.1.3 梵塔问题的状态空间(1) 例3.9 二阶梵塔问题 一号杆有A、B两个金盘, A小于B。要求将AB移至三号杆,每次只可移动 一个盘子,任何时刻B不能在A上。 用二元组(SA ,SB )表示状态,SA 表示A所在 杆号,SB表示B所在杆号,全部状态如下: (1,1),(1,2),(1,3)
2013-8-5 人工智能 17
3.1.2 修道士和野人问题的状态空间(4)
操作符 p01 p10 p11 p02 p20 q01 q10 q11 q02 q20 条 件 b=1, m=0或3, c≥1 b=1, (m=3,c=2)或(m=1,c=1) b=1, m=c, c≥1 b=1, m=0或3, c≥2 b=1, (m=3,c=1)或(m=2,c=2) b=0, m=0或3, c≤2 b=0, (m=0,c=1)或(m=2,c=2) b=0, m=c, c≤2 b=0, m=0或3, c≤2 b=0, (m=0,c=2)或(m=1,c=1) 动 作 b=0, c=c-1 b=0, m=m-1 b=0, m=m-1, c=c-1 b=0, c=c-2 b=0, m=m-2 b=1, c=c+1 b=1, m=m+1 b=1, m=m+1, c=c+1 b=1, c=c+2 b=1, m=m+2