第一章 产生式系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章 产生式系统
本章主要内容:
● 产生式系统的三个组成部分及其作用*
● 产生式系统解题的基本过程
● 产生式系统的三类控制策略*
● 问题的计算机表示原则
● 可分解的产生式系统的意义*
(*为重点内容)
是AI 中最典型/最普遍的一种结构,大多数专家系统都用它来构造。

特点:解题过程与人类思维很相似。

1.1产生式系统的组成部分
1.一个综合数据库(Global Database )
用来描述问题的状态或有关事实。

一般随着解题过程不断变化。

像棋局一样
2.一组产生式规则(Set of Rules )
一般表示为 if ……. then ……形式。

规则使用的条件 采取的行动或结论
某规则使用后,可使综合数据库的状态发生变化,形成新的状态。

即数据库变化的规则
3.控制策略(Control System of strategies )
即控制如何使用这些规则去搜索解(决定着解题过程或推理路线);还要记住使用过 即使用规则的流程 的规则,以便找到解路径。

例题1:八数码游戏(似华容道)
让学生课后思考如何
存储,制定规则100min
可以经过思索,看出走步为:上上左下右。

问题似怎样让计算机来解。

用产生式系统解题,须先建立问题的产生式系统描述,即给定综合数据库、规则集, 再利用某种控制策略求解。

(1)综合数据库
可见用二维数组较直观:(S ij ),1≤i, j ≤3, S ij ∈{0,1,…,8}且不等 《数据结构》中的各 一个具体的矩阵就表示一个棋局状态。

对八数码游戏,显然有9!个状态,构成其 种结构都可用。

状态空间――解题过程中所有可能出现的状态的集合。

(2)规则集
每一张牌的移动,都可归结为空格的移动(上、下、左、右),用4条规则描述:
if j 0-1≥1 then (左移)Si 0j 0=Si 0(j 0-1),Si 0(j 0-1)=0;
if i 0-1≥1 then (上移)Si 0j 0=S (i 0-1)j 0,S (i 0-1)j 0=0;
if j 0+1≤3 then (右移)Si 0j 0=Si 0(j 0+1),Si 0(j 0+1)=0;
if i 0+1≤3 then (下移)Si 0j 0=S (i 0+1)j 0,S (i 0+1)j 0=0.
(3)搜索策略
按某种策略(如爬山法)从规则集中不断选用规则,最终得到解路径。

如(上、上、此处以“靠近目标法” 左、下、右)走步序列就是一个解。

(其解题思路与人的思维相似) 演示,导出解路。

可见,用产生式系统解题,就是在问题的状态空间中去搜索一条从初态到终态的路径。

例题2:传教士与野人问题
3个传教士与3个野人渡河,船每次只能乘2人。

问传教士为安全起见,如何规划
摆渡方案,是的任何时刻两岸及船上野人的数目均不超过传教士的数目。

画草图即
L R L R
M 3 0 M 0 3
C 3 0 C 0 3
B 1 0 B 0 1 1表示有船
约束条件:岸上M≥C,船上M+C≤2
(1)综合数据库
用三元组(M L,C L,B L),其中0≤M L,C L≤3,B L∈{0,1},则问题可简化
为(3,3,3)―>(0,0,0)
状态空间总数:4×4×2=32个(见P19),最终16个。

(2)规则集
由摆渡操作组成:P mc(左->右)和q mc(右->左)。

各有5种组合,共10条规则:
当B=1时,有P10,P01,P11,P20,P02(具体选用哪个,根据M L,C L决定)
当B=0时,有q10,q01,q11,q20,q02(具体选用哪个,根据M L,C L决定)。

(3)控制策略
有了以上问题描述,在采取适当的控制策略,对状态空间进行搜索,求得一个
正确的摆渡序列。

对于较小的问题,也可用“状态空间图”来求解――“穷举”
图1.3(略)
从图看出,最短序列只有4个,均由11次摆渡构成。

1.2 产生式系统的解题过程
P23(略)
1.3 产生式系统的控制策略
控制策略作用:决定如何选用规则作用于综合数据库,生成新的状态并记住使用
过的规则序列。

不可撤回方式
控制策略分类回溯方式
试探性方式
图搜索方式
1. 不可撤回方式
利用问题给出的局部知识选用一条规则作用于综合数据库,再根据产生的新状态
继续选用规则,搜索过程一直进行下去,不必考虑撤回用过的规则。

缺点:解序列可能不是最简
优点:控制简单
爬山法思想:
图1.4,从当前位置向山顶攀登,假如规定只能向东/西/南/北方向走一步(即
4条规则),那么事先可计算出4个高差,然后走高差最大的一步。

如此重复,直到
某一点再试都会使高度下降为止。

注意:爬山法只能用于单极值问题。

爬山法应用:
(1)建立一个描述数据库变化的单极值函数,且使极值对应目标状态;
(2)选取使函数值增长最大的那条规则作用于数据库;
(3)重复上步,直到没有规则使函数值继续增长。

爬山法解八数码游戏:课后编写爬山法解八数
用“不在位”牌数并取负值-W(n)作为状态变化函数,结果如图1.6。

码问题的程序,第二次2. 回溯方式上机用
先试用某一规则,如果以后发现不合适,退回另选一条规则。

新生成的状态前面出现过
回溯条件确定从初态开始,用了若干规则仍未到达目标
涉及两个问题:对当前状态,再无可用规则
利用已有知识对规则排序,可减少回溯次数(下章讲)
例题:八数码游戏。

规则选用次序硬性规定为左、上、右、下,最大搜索深度为6。

结果如图1.7。

3. 图搜索方式
穷举方式,对每个状态的所有可用规则都去试,形成搜索图货搜索树。

如图1.8。

三种策略小结:P30末段。

1.4 问题的表示
指综合数据库和规则集的描述,越简单得当,求解越高效。

例题1. 旅行商问题,图1.9。

从A出发,遍历其它四市再回到A市,求最短路径。

(1)综合库:用字符串(A××××A);
(2)规则集:下步走向A/B/C/E/E,共5条。

各有使用条件(3)搜索策略:只能用图搜索(因为要遍历),结果如图1.10。

例题2. 句法分析问题:分析某段文字是否为一个句子。

(1)综合库:符号串,初始为给定句子;
(2)规则集:根据文法给定的若干重写规则。

如:
N->NP(名词->名词短语)
A NP->NP
DET NP->DNP(限定性名词短语)
P DNP->PP(介词短语)
DNP PP->DNP
V DNP->VP(动宾短语)
DNP VP->S (句子)
(3)搜索策略:从单词开始,逐级重写。

结果如图1.10。

演示一下
1.5 产生式系统的类型
1.可交换的产生式系统
规则的使用顺序可以任意交换而不影响问题的求解结果。

例如:整数集{a,b,c} { a,b,c ab,ac,bc}
规则集:3条,可以把任意两个整数乘积放入集合中。

这类问题不常见,适于用不可撤回方式求解。

2. 可分解的产生式系统
将初始数据库分解为几个可以独立处理的分量,分别对它们进行求解。

结束条件
也可相应分解。

例如,重写问题:(C,B,Z)——>(M,M,….,M)
设重写规则为:C——>(D, L)
C——>(B, M)
B——>(M, M)
Z——>(B, B, M)
搜索图见P40图1.14。

定义:能够分解综合数据库和结束条件的产生式系统,称为“可分解的产生式系统”。

基本过程描述:P42 图1.15,“与”表示分解子节点全部有解才有解;“或”表示使用
规则得到,其中一个到达目标便有解。

再例:符号积分问题:P45(讲解过程)
本章小结:
1.用产生式系统解题,就是要把问题用综合库、规则集来描述,然后用适当的控制策略
来搜索问题的解。

2.综合数据库是对问题状态的描述,要利于计算机实现。

常用的数据结构都可以作为使用。

3. 问题的表示原则就是综合库和规则集的要既简约又能反映问题的本质,同时又利于提高
求解效率。

4.求解就是在问题的状态空间中搜索一条从初态到目标状态的路径。

具体方法可以有:
●不可撤回方式(如爬山法),控制简单,但可能的布袋得不到最优解;
●回溯方式,具有试探性,引入知识对规则排序v,可以减少回溯次数。

●图搜索方式,穷举,搜索出问题的所有状态空间,寻找解路。

至适合小型问题,也可
作为一种研究方法。

课后认真理解“小结”,做课后习题。

留作业。

相关文档
最新文档