- 1、本文档共94页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
搜索-yjy
搜索算法
姚金宇
Outline
• 产生式系统
• 剪枝
• 博弈问题
最简单or最困难的算法
• 最简单
–入门算法
–所需基本知识不多,算法描述简单,思考直白
• 最困难
–搜索不难,时间不够
–如何选择搜索方法,如何选择顺序,如何剪枝
–难以举一反三
搜索问题
• 搜索问题:在一个空间中寻找目标
–搜索什么(目标)
–在哪里搜索(状态空间)
• 在搜索中,如何扩展状态空间是关键性问
题
• 搜索可以根据是否使用启发式信息分成
–盲目搜索:只能区分当前状态是否为目标状态
–启发式搜索:在搜索过程中加入与问题相关的
启发信息,指导搜索的方向
产生式系统
• 知识单元之间存在着因果关系,或者说前
提和结论,一般用产生式 (或者称为规则)
来表示。
• 把一组产生式放在一起,让它们互相配合,
协同作用,一个产生式生成的结论可以供
另一个产生式作为前提使用,以这种方法
求得问题的解决,这就叫做产生式系统。
产生式系统的组成部分
• 一个综合数据库(GlobleDatabase)
– 用来表述问题状态或有关事实,含有所求解问题
的信息,其中有些部分可以是不变的,有些部分
则可能只与当前问题的解有关。
• 一组产生式规则(Set of Rules)
– 产生式规则表示为:if……then…
– 一条产生式规则满足了应用的先决条件之后,就
可对综合数据库进行操作,使其发生变化。
• 一个控制系统(Control System)
– 规定如何选择一条可应用的规则对数据库进行操
作,决定了问题求解过程的推理路线。
例子:八数码问题
• 在3*3组成的九宫格棋盘上,摆有八个将牌,
每一个将牌都刻有1—8 中的某一个数码。
• 棋盘中留有一个空格,允许其周围的某一
个将牌向空格移动,这样通过移动将牌就
可以不断改变将牌的布局。
• 这种游戏求解的问题是,给定一种初始的
将牌布局或结构(称初始状态)和一个目标的
布局(称目标状态),问如何移动将牌,实现
从初始状态到目标状态的转变。
八数码问题:综合数据库
• 选择一种数据结构来表示将牌的布局。通
常可用来表示综合数据库的数据结构有符
号串、向量、集合、数组、树、表格、文
件等。
• 对八数码问题,选用二维数组来表示将牌
的布局很直观,因此该问题的综合数据库
可以如下形式表示:
–(S ),其中1=i、j=3 ,S ∈{0,1,…,8},且S 互不
ij ij ij
相等。
八数码问题:产生式规则
• 改变状态有4种走法:
– 空格左移、空格上移、空格右移、空格下移。
• 设Si,j记矩阵第i行第j 列的数码,i0、j0记空格所在的
行、列数值,即Si0,j0=0,则
• 1.if j0-1≥1 then Si0j0:=Si0(j0-1), Si0(j0-1):=0;(Si0j0 向左)
• 2.if i0-1≥1 then Si0j0 :=S(i0-1)j0, S(i0-1)j0:=0;(Si0j0 向上)
• 3.if j0+1≤3 then Si0j0 :=Si0(j0+1), Si0(j0+1):=0;(Si0j0 向右)
• 4.if i0+1≤3 then Si0j0 :=S(i0+1)j0, S(i0+1)j0:=0;(Si0j0 向下)
八数码问题:控制系统(搜索策略)
• 深度优先的搜索策略
• 广度优先的搜索策略
• 启发式方法
• ……
盲目搜索策略
• 宽度优先搜索 (Breadth-first search )
文档评论(0)