产生式系统的搜索策略-Read.DOC

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
产生式系统的搜索策略 以宽度优先和深度优先等方法为引子,讲A算法和A*算法以及计算复杂性理论的几个结论。 问题求解是人工智能第一个大的成就(下棋程序)?搜索和问题归纳。 对问题求解时,找出所求问题的各种状态,通过搜索求得一个解;因此首先要有状态空间表示方法。 状态空间表示 树与图 图:节点,弧(有向弧和无向弧),后继节点(后裔),父辈节点(祖先),路径(点列:, ,…,);是从可达的,弧线费用。 状态的表示 就是使用一种方法把问题的各种情况都表示出来。起始状态(问题现状或已知条件),目标状态(一个或几个,要达到的目的)以及一系列中间状态。 注意:同一个问题可以有多种表示,有些表示方法更简单,状态空间更小(存储量少,搜索方法简单)。 可以用数组,符号串,向量,图,表格等表示状态。 算符和重写规则 算符“?”表示状态之间的转换 或用OPER(o,s,t) 表示, 如传教士与野人问题。 o:操作对象,s初值,t终值 ,:两个状态, ?重写规则,或产生式规则 ↓ ↙ 字符串 重写规则可以用于句法分析。 状态表示举例 例1:句法分析 语法由下面重写规则: of ? P N ? NP approves ? V new ? A president ? N company ? N sale ? N the ? DET A NP ? NP V DNP ? VP P DNP ? PP DNP PP ? DNP DET NP ? DNP DNP VP ? S 目标:S 初始:一个字符串: 练习: 证明:if( iN1 iN2 ) iNumb = 1; 合乎句法. 规则: iN1 ? V iN2 ? V V V ?M iNumb ? V 1 ? C V=C; ? S if(M) S ? S 例2.旅行商问题 从A城出发回到A城,每个城市必须且只走一次,问该问题的可行解(我们经常遇见的旅行商问题是求最短路径)。 该问题中A,ABC,ACDE,ADCEBA都是状态 ACDEBA,ABCDEA都是解 例3.传教士和野人(食人生番)问题 三个传教士、三个野人要从河的左岸到右岸,现在只有一条船,渡河的条件: (1)船最多可载两人,传教士、野人都会划船。 (2)在两岸和船上,要求传教士数目 = 野人数目。 状态表示(,,) 传教士数 野人数 船在左岸(1)、船在右岸(0). 初始状态:(3,3,1) 目标状态:(0,0,0) 操作: ACROSS(1,0,1)送1个传教士从左岸到右岸 ACROSS(2,0,1)送2个传教士从左岸到右岸 ACROSS(0,1,1)送1个野人传从左岸到右岸 ACROSS(0,2,1)送2个野人传从左岸到右岸 ACROSS(1,1,1)送一个传教士,一个野人从左岸到右岸。 从右岸到左岸也有五种操作, 操作: ACROSS(1,0,0)送1个传教士从右岸到左岸 ACROSS(2,0,0)送2个传教士从右岸到左岸 ACROSS(0,1,0)送1个野人传从右岸到左岸 ACROSS(0,2,0)送2个野人传从右岸到左岸 ACROSS(1,1,0)送一个传教士,一个野人从右岸到左岸。 共十种操作。 对该问题的解就是下图中从(3,3,1)到(0,0,0)的一条路径。 状态空间搜索方法 状态空间中每个状态被看作一个节点,重写操作被看作弧,这样就构成了一个图。因此寻找问题解的过程就是图搜索的过程。 宽度优先搜索法(BF---Breadth First) 下面以例子讲解。 该问题为寻找右图中从S到G的通路: 如果所有状态都已经按照树画了出来,BF就是对于树的一层一层搜索过程。由于需要扩展节点,所以需要open表与closed表。 对Open 表的操作规则:先进先出 深度优先法 仍以上面的问题为例。 把新生成的状态放到OPEN表前边。 对Open 表的操作规则:后进先出。 有深度的限制:扩展结点n 时,若n的节点已经很深,则不扩展它。 三、等费用搜索法 该方法是对BF方法的推广。 令: 每个节点按其在open表中排序。 只着眼于已扩展过的节点 四、爬山法 着眼于与目标节点的距离。 令 每个节点按其在open表中排序。 爬山法并非总是有效的。如: 五、A*算法与A算法 考虑已走过的路和距离目标节点的路的总的代价值。 1. 表示两个节点间最小路径代价值。 定义: :某个特定的目标节点(可能有几个) 定义: 表示从S开始过节点n的一条最优路径代价值 对于一个实际问

文档评论(0)

jinchenl + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档