- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
广度和深度优先搜索
深度优先搜索和广度优先搜索
一、产生式系统
首先通过一个具体事例说明什么是产生式系统。
[例题4-1八数码难题]
在3X3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格。空格周围的棋子可以移到空格中。要求解的问题是:找到一种移动方法,实现从初始布局到目标布局的转变。
例如输入:(代表从前一布局到后一布局)
2 8 3
1 6 4
7 0 5 1 2 3
8 0 4
7 6 5 [分析]
状态表示:用二维数组来表示布局。(si,sj)表示第i行、第j列上放的棋子数字。空格用0表示。
产生规则:原规则规定空格周围的棋子可以向空格移动。但如果换一种角度观察,也可看做空格向四周移动。这样处理更便于编程。如果空格位置在(si,sj),则有四条规则:
(1)空格向上移动: If si-1=1 then ch(si,sj):=ch(si-1,sj);ch(si-1,sj):=0
(2)空格向下移动: If si+1=3 then ch(si,sj):=ch(si+1,sj);ch(si+1,sj):=0
(3)空格向左移动: If sj-1=1 then ch(si,sj):=ch(si,sj-1);ch(si,sj-1):=0
(4)空格向右移动: If sj+1=3 then ch(si,sj):=ch(si,sj+1);ch(si,sj+1):=0
搜索策略:
(1)把初始状态作为当前状态;
(2)从当前状态出发,运用四条移动规则,产生新的状态;
(3)判断新的状态是否达到目的状态,如果是,转(5);
(4)把新的状态记录下来,取出下一个中间状态作为当前状态,返回(2);
(5)输出从初始状态到目标状态的路径,结束。
这个例子就是产生式系统。
产生式系统的组成:
产生式系统是由三个基本要素组成的:一个综合数据库(GOLBLE DATABASE),一组产生式规则(Set of rules),和一个控制系统(Control System)。1、综合数据库:它是产生式系统所有的主要数据结构。它主要表示问题的状态,即初始状态,目标状态,和中间状态等,以及状态之间的关系。它不是固定不变的,在求解过程中,它的内容将越来越多,状态之间的关系也越来越复杂。经常用来表示数据库的数据结构有串,集合,数组,树,表,记录,队列等。]使用数组这种数据结构表示状态,若压缩数据存储,把二维数组压缩为串,则数据库采用的数据结构就是串。
2、产生式规则是对数据库进行操作的一系列规则。
规则的一般形式是:if 条件 then 操作
即满足应用的先决条件后,就对数据库实行后面的操作。
控制策略它规定了操作的顺序既在什么条件下用什么规则进行操作,什么条件下停止操作,即它规定了问题的搜索策略和路线。一般的,控制策略分为两大类:.1不可撤回方式(IRREVOCABLE)3.2试探法(TENTATIVE):3.2.1回溯法(BACKTRACKING)
3.2.2图搜索法(GRAPH-SEARCH)4、搜索策略搜索策略有两种基本方式:一种是不考虑给定问题的特有性质,按事先规定好的顺序依次运用规则,这是一种盲目搜索的方法,或称为无信息引导的搜索。另一种是考虑问题的特有性质,优先选用较合适的数据和规则,这称为启发式搜索,或有信息引导的搜索。目前,从这两种基本方式出发,已创造出多种具体的搜索方法。归纳起来有以下几种:
(一)求任一路径的搜索策略:回朔法(Backtracking)、爬山法(Hill climbing)、深度优先搜索法(Depth-first)、广度优先搜索法(Breadth-first)、限定范围搜索法(Beam search)、最优策略(Best first)
(二)求最优路径的搜索策略:大英博物馆法(British Museum)、分支定界法(Branch and Bound)、动态规划法(Dynamic Programming)、最佳图搜索法(A*)
(三)与或图搜索法:一般与或图搜索法(AO*)、极大极小法(Minimax)、a-b剪枝法(Alpha-beta Pruning)、启发式剪枝法(Heuristic Purning)
有N枚硬币(N为偶数)正面朝上排成一排,每次将N—1枚硬币翻过来放在原位置上,不断地重复上述过程,直到最后全部硬币翻成反面朝上为止。编程让计算机把翻币的最简过程及翻币次数打印出来(用x代表正面,O代表反面)。
[分析]
状态表示:显然可以用一个数组a描述当前的状态,当元素a[i]=“*”时,第i枚硬币朝上,a[i]=“o” 时,第i枚硬币朝下。
移动规则:根据题意每次翻动N—1枚硬币,相当于固定一枚硬币,把其他各枚硬币翻个。所以每次有n种操作方案:固定第i{i∈1..n}枚硬币,使其他硬币翻面。
搜索策略:
文档评论(0)