- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
人工智能十五数码
PAGE
PAGE 14
利用状态空间法解决十五数码游戏问题
学号 姓名 季佳辉 完成时间 2013年 11 月
1.十五数码游戏简介
十五数码游戏问题是在4*4方格盘上,放有15个数码,剩下第16个为空,每一空格其上下左右的数码可移至空格。问题给定初始位置和目标位置,要求通过一系列的数码移动,将初始位置转化为目标位置。?
2.十五数码游戏问题的状态空间法表示
问题的状态空间是指表示问题可能态及关系图,记作三元态(S,F,G)。它含三个集合:初始态集S;操作符集F;目标态集G。十五数码问题状态空间法:初始态S[4][4]={5,1,2,4,9,6,3,8,13,10,7,11,0,14,15,12}。目标态G[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0}(0表示空格)。操作符集F=[空格左移、上移、右移、下移],实现状态转换。
3.十五数码游戏问题的盲目搜索技术
1. 宽度优先搜索
如果搜索是以接近起始节点的程度依次扩展节点的,那么这种搜索就叫做宽度优先搜索。这种搜索是逐层进行的;在对下一层的任一节点进行搜索之前,必须搜索完本层的所有节点。其搜索过程如图(1)所示。
S
L
O
R
P
M
F
F
F
N
F
图1 宽度优先搜索示意图
宽度优先搜索算法如下:
(1)把起始节点放到 OPEN 表中(如果该起始节点为一目标节点,则得到解)
(2)如果 OPEN 是个空表,则无解,失败退出;否则继续下一步
(3)把第一个节点(记作节点 n )从 OPEN 表移出,并把它放入 CLOSED 的 已扩展节点表中
(4)扩展节点 n 。如果没有后继节点,则转向第(2)步
(5)把 n 的所有后继节点放到OPEN表的末端,并提供从这些后继节点回到 n 的指针
(6)如果 n 的任一个后继节点是个目标节点,则找到一个解(反向追踪得到从 目标节点到起始节点的路径),成功退出,否则转向第(2)步
其流程图如图2所示
起始
把S放入OPEN表
Fangru
OPEN是否为空表?
失败
是
否
把第一个节点n,从OPEN表移出,并把它放入CLOSED表
扩展n,把它的后继节点放入OPEN
表的末端,提供回到n的指针
是否有任何后继节点为目标节点?
成功
否 是
图2 宽度优先算法流程图
深度优先搜索
在深度优先搜索中,首先扩展最新产生的(即最深的)节点。深度相等的节点可以任意排列。首先,扩展最深的节点的结果使得搜索沿着状态空间某条单一的路径从起始节点向下进行下去;只有当搜索到达一个没有后裔的状态时,它才考虑另一条替代的路径。为了避免考虑太长的路径(防止搜索过程沿着无益的路径扩展下去),往往给出一个节点扩展的最大深度界限。任何节点如果达到了深度界限,那么都将把它们作为没有后继节点处理。其搜索过程如图(3)所示。
S
L
O
R
P
M
F
F
F
N
F
图1 深度优先搜索示意图
深度优先搜索算法如下:
(1)把起始节点 S 放到未扩展节点的 OPEN 表中。如果此节点为一目标节点,则得到解
(2)如果 OPEN 为一空表,则无解、失败退出
(3)把第一个节点(记作节点 n )从 OPEN 表移到 CLOSED 表
(4)如果节点 n 的深度等于最大深度,则转向第(2)步
(5)扩展节点 n ,产生其全部后继节点,并把它们放入 OPEN 表的前头。如果没有后继节点,则转向第(2)步
(6)如果后继节点中有任一个节点为目标节点,则求得一个解(反向追踪从目标节点到起始节点的路径),成功退出;否则,转向第(2)步
起始
把S放入OPEN表
Fangru
S是否为目标节点?
成功
是
文档评论(0)