第5-6章 产生式系统
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5章 产生式系统
产生式知识表示方法由美国数学家E.Post于1943 提出,具有和Turing机一样的表达能力。也有心理 学家认为人脑对知识的存储就是产生式形式的。 产生式系统有悠久的历史。Post最早提出产生 式系统并作为计算手段设计的Post系统,目的是为 了构造一种形式化的计算工具,并证明它和图灵机 有相同的计算能力。几乎同时,Chomsky在研究自 然语言结构时,提出了文法分层的概念,并提出了 文法的“重写规则”,即语言生成规则,实际上是 特殊的产生式。
7
推理机的一次推理过程:
从规则库中取一条规则,将其前提同当前动 态数据库中的事实/数据进行模式匹配
N
匹配成功否?
Y
把该规则的结论放入当前动态数据库,或执 行规则所规定的动作
8
产生式推理可以在与或图的基础上进行
9
产生式系统的控制策略(正向推理)
正向推理:从初始事实/数据出发, 正向推理:从初始事实/数据出发,正向使用规则进行推 朝目标方向前进。 理,朝目标方向前进。 初始化动态数据库,将初始事实、 步1 初始化动态数据库,将初始事实、数据置入动态 数据库中。 数据库中。 用动态数据库中的事实、数据匹配目标条件, 步2 用动态数据库中的事实、数据匹配目标条件,若 目标条件满足,则推理成功,结束。 目标条件满足,则推理成功,结束。 步3 用规则库中各规则的前提匹配动态数据库中的事 数据,将匹配成功的规则组成待用规则集。 实/数据,将匹配成功的规则组成待用规则集。 若待用规则集为空,则运行失败,退出。 步4 若待用规则集为空,则运行失败,退出。 将待用规则集中各规则的结论加入动态数据库, 步5 将待用规则集中各规则的结论加入动态数据库,或 者执行其动作,转步2。 者执行其动作,转步 。
1
1960年,Backus提出了著名的BNF(巴科斯范 式),用以描述计算机语言的文法,后来发现, BNF范式实际上就是Chomsky的上下文无关文法。 至此,产生式系统的应用范围大大扩展。 产生式表示方法容易描述事实、规则以及它 们的不确定性度量。
2
5.1 产生式规则
产生式规则是表示知识的一种方式,一般形式为: 产生式规则是表示知识的一种方式,一般形式为:P→Q, Q。 或 If P then Q。 产生式的含义是:如果前提P被满足,则可推出结论Q 产生式的含义是:如果前提P被满足,则可推出结论Q或 执行Q所规定的动作。 执行Q所规定的动作。
18
5.5 产生式系统的程序实现
产生式规则的程序语言实现
规则的前提部分可表示为 或 规则的结论部分可表示为
条件1 AND 条件2 AND …AND 条件n 条件1 OR 条件2 OR …OR 条件n 断言1/动作1 and 断言2/动作2 and …and断言n/动作n 断言1/动作1 or 断言2/动作2 or …or断言n/动作n
11
R9:若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎。 R10:若某动物是食肉动物且黄褐色且有黑色斑点,则它是金钱 豹。 R11:若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点, 则它是长颈鹿。 R12:若某动物是有蹄动物且白色且有黑色条纹,则它是斑马。 R13:若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是 鸵鸟。 R14:若某动物是鸟且不会飞且会游泳且黑白色,则它是企鹅。 R15:若某动物是鸟且善飞且不怕风浪,则它是海燕。
或 一般只考虑含有至多一个结论部分的产生式规则 (类似于Horn 子句逻辑)
条件1 AND 条件2 AND …AND条件n→断言/动作
19
产生式系统的程序实现
产生式规则的具体表示方法可以使用If-Then规则,也可 以使用多元组的形式表示,如二元组(<前件>,<后件>) 可表示一个产生式规则。 无论使用何种表示方式,必须与规则的解释程序(即推 理机)相容。 在Prolog中表示产生式规则,至少有两种形式: (1)、用Prolog的规则表示产生式规则; (2)、用Prolog的事实表示产生式规则。
28
6.2.1.框架的概念
例6.1 下面是一个描述“教师”的框架: 框架名:<教师> 类属:<知识分子> 工作:范围:(教学,科研) 缺省:教学 性别:(男,女) 学历:(中师,高师) 类型:(<小学教师>,<中学教师>,<大学教师>)
29
6.2.1.框架的概念
例6.2 下面是一个描述“大学教师”的框架: 框架名:<大学教师> 类属:<教师> 学历:(学士,硕士,博士) 专业:<学科专业> 职称:(助教,讲师,副教授,教授) 外语:语种:范围:(英,法,日,俄,德,…) 缺省:英 水平:(优,良,中,差) 缺省:良
例: 1)IF 动物会飞 AND 会下蛋 会下蛋THEN 该动物是鸟。 该动物是鸟。 ) 2)如果炉温超过上限,则关闭阀门。 )如果炉温超过上限,则关闭阀门。 3)如果病人有红色斑点,且病人发烧,且病人是学龄儿童, )如果病人有红色斑点,且病人发烧,且病人是学龄儿童, 则病人患的是水痘。 则病人患的是水痘。
21
产生式系统的程序实现
it_is(“食肉动物”):it_is1(“哺乳动物”), fact(“吃肉”). it_is1(“哺乳动物”):-fact(“有奶”). it_is1(“哺乳动物”):-fact(“有毛发”).
22
产生式系统的程序实现
上面的产生式规则也可以用Prolog中的事实表示为: rule([“食肉动物”,“黄褐色”,“有黑色条纹”], “老虎”). rule([“哺乳动物”,“有爪”,“有犬齿”,“目盯前方”], “食肉动 物”). rule([“哺乳动物”,“吃肉”], “食肉动物”). rule( [“有奶”], “哺乳动物”). rule( [“有毛发”], “哺乳动物”). 这种表示方法需要自己编写一个推理机程序。
12
再给出初始事实: F1:某动物有毛发 F2:吃肉 F3:黄褐色 F4:有黑色条纹 目标条件为:该动物是什么?
13
动物分类产生式系统
图5-4 ห้องสมุดไป่ตู้物分类正向推理树
14
产生式系统的反向推理
反向推理: 从目标出发, 反向推理 : 从目标出发 , 反向使用规则进 行推理,朝初始事实或数据方向前进。 行推理,朝初始事实或数据方向前进。
25
6.1.2 知识表示
知识表示是指面向计算机的知识描述和表达,是指把知识 表示为计算机能存储、识别、处理和利用的形式的方法。 知识表示是建立专家系统和各种知识系统的基础。提出了 各种知识表示方法,如一阶谓词逻辑、产生式规则、框架、 语义网络、对象、脚本、过程、神经网络等。 知识表示可分为陈述表示和过程表示。陈述表示是把事物 的属性、状态和关系逻辑描述出来,而过程表示则是把事 物的行为和操作、解决问题的方法地和步骤具体地表示出 来。也称为知识的动态表示或静态表示。
26
6.1.3 知识表示的语言实现
如支持谓词逻辑的语言Prolog和Lisp, 专门支持产生式规则的语言OPS5, 专门支持框架的语言FRL, 面向对象的语言Smalltalk, C++等。
27
第6章 知识表示
6.2.1.框架的概念
<框架名>
<槽名1><槽值1>| <侧面名11><侧面值111,侧面值112,…> <侧面名12><侧面值121,侧面值122,…> <槽名2><槽值2>|<侧面名21><侧面值211,侧面值212,…> <侧面名22><侧面值221,侧面值222,…> … … … <槽名k><槽值k>| <侧面名k1><侧面值k11,侧面值k12,…> <侧面名k2><侧面值k21,侧面值k22,…>
产生式规则与逻辑蕴含式的区别与联系 逻辑蕴含式是产生式,反之则不然。 逻辑蕴含式是产生式,反之则不然。 基于产生式的推理模式 ( A → B) ∧ A ⇒ B 假言推理: 假言推理:
3
5.2 产生式系统
5.2.1 产生式系统的组成 产生式规则库。 产生式规则库。用于描述相应领域内的知识 的产生式规则的集合。 的产生式规则的集合。规则库中的知识要求 完整、一致、表达准确灵活、知识组织合理; 完整、一致、表达准确灵活、知识组织合理; 推理机。又称控制系统,是一个程序模块, 推理机。又称控制系统,是一个程序模块, 负责产生式系统的运行。 负责产生式系统的运行。如规则与事实的匹 执行规则、停止控制等。 配、执行规则、停止控制等。
步1 初始化动态数据库,将初始事实、数据置入 动态数据库。将目标条件置入目标链。 步2 若目标链为空,则推理成功,结束。 步3 取出目标链中第一个目标,用动态数据库中 的事实、数据同其匹配,若匹配成功,转步2。
15
步4
用规则库中各规则的结论同该目标匹配,若匹配
成功,则将第一个匹配成功且未用过的规则的前提作 为新的目标,并取代原来的父目标而加入目标链,转 步3。 步5 若该目标是初始目标,则推理失败,退出。 步6 将该目标的父目标移回目标链,取代该目标及其 兄弟目标,转步3。
23
产生式系统的程序实现
规则库的程序实现
在Prolog中,如果用Prolog的规则表示产生式 规则,规则库是程序的一部分,放在程序的 clauses段。 如果用事实表示产生式规则,则规则库用动态 数据库或数据库文件实现。
24
第6章 知识表示
6.1 知识及其表示 6.1.1 知识的概念 知识是人们对客观事物及其规律的认识及利用客观规 律解决实际问题的方法和策略。 就内容而言,知识可分为原理性知识和方法性知识。 就形式而言,知识可分为显式知识和隐式知识。显式 知识指可用语言、文字、符号、图形、声音等表示和 处理的知识,可供他人直接识别。隐式知识是一种个 体技能型的知识。 就可靠性和严密性而言,知识又可分为理论知识和经 验知识。
4
产生式规则与逻辑蕴含式的区别与联系 逻辑蕴含式是产生式,反之则不然。 逻辑蕴含式是产生式,反之则不然。 产生式可以包括各种操作、规则、变换、算子、 产生式可以包括各种操作、规则、变换、算子、函数 等等。 等等。 产生式规则描述了事物之间的对应关系, 产生式规则描述了事物之间的对应关系,包括因果关 系和蕴含关系 基于产生式的推理模式 ( A → B) ∧ A ⇒ B 假言推理: 假言推理: 可以把有前提条件的操作和逻辑推理统称为推理。 可以把有前提条件的操作和逻辑推理统称为推理。上 式构成基于产生式规则的一般推理模式。 式构成基于产生式规则的一般推理模式。
5
产生式系统的组成
产生式系统由三部分组成:产生式规则库、推理 机、动态数据库。 动态数据库。又称综合数据库。存放初始事实、 数据、目标条件、中间结果和最后结果。 产生式规则库 推理机 动态数据库
6
5.2.2 产生式系统的运行过程
运行需要:规则库、初始事实(或数据) 和目标条件。 目标条件是系统正常结束的条件,也是系统 的求解目标。
16
动物分类产生式系统
图5-5 动物分类反向推理树
17
冲突消解策略
正向推理算法二:带冲突消解策略。
步1 初始化动态数据库,将初始事实、数据置入动态数据库中。 步2 用动态数据库中的事实、数据匹配目标条件,若目标条件 满足,则推理成功,结束。 步3 用规则库中各规则的前提匹配动态数据库中的事实/数据, 将匹配成功的规则组成待用规则集。 步4 若待用规则集为空,则运行失败,退出。 步5 用某种策略,从待用规则集中选取一条规则,将其结论加 入动态数据库,或者执行其动作,撤消待用规则集,转步2。
10
例1
设动物分类的规则库为
R1:若某动物有奶,则它是哺乳动物。 R2:若某动物有毛发,则它是哺乳动物。 R3:若某动物有羽毛,则它是鸟。 R4:若某动物会飞且生蛋,则它是鸟。 R5:若某动物是哺乳动物且有爪且有犬齿且目盯前方, 则它是食肉动物。 R6:若某动物是哺乳动物且吃肉,则它是食肉动物。 R7:若某动物是哺乳动物且有蹄,则它是有蹄动物。 R8:若某动物是有蹄动物且反刍食物,则它是偶蹄动物。
•
•
若用(1) 表示产生式规则,则使用Prolog内部的推理机,无 须自己编写推理机。 若用(2)表示产生式规则,则须自己编写显式的推理机程序。
20
产生式系统的程序实现
例 动物分类系统中的产生式规则可用Prolog语言中的规 则表示为: animal_is(“老虎”):it_is(“食肉动物”), fact(“黄褐色”), fact(“有黑色条纹”). it_is(“食肉动物”):it_is1(“哺乳动物”), fact(“有爪”), fact(“有犬齿”), fact(“目盯前方”).
产生式知识表示方法由美国数学家E.Post于1943 提出,具有和Turing机一样的表达能力。也有心理 学家认为人脑对知识的存储就是产生式形式的。 产生式系统有悠久的历史。Post最早提出产生 式系统并作为计算手段设计的Post系统,目的是为 了构造一种形式化的计算工具,并证明它和图灵机 有相同的计算能力。几乎同时,Chomsky在研究自 然语言结构时,提出了文法分层的概念,并提出了 文法的“重写规则”,即语言生成规则,实际上是 特殊的产生式。
7
推理机的一次推理过程:
从规则库中取一条规则,将其前提同当前动 态数据库中的事实/数据进行模式匹配
N
匹配成功否?
Y
把该规则的结论放入当前动态数据库,或执 行规则所规定的动作
8
产生式推理可以在与或图的基础上进行
9
产生式系统的控制策略(正向推理)
正向推理:从初始事实/数据出发, 正向推理:从初始事实/数据出发,正向使用规则进行推 朝目标方向前进。 理,朝目标方向前进。 初始化动态数据库,将初始事实、 步1 初始化动态数据库,将初始事实、数据置入动态 数据库中。 数据库中。 用动态数据库中的事实、数据匹配目标条件, 步2 用动态数据库中的事实、数据匹配目标条件,若 目标条件满足,则推理成功,结束。 目标条件满足,则推理成功,结束。 步3 用规则库中各规则的前提匹配动态数据库中的事 数据,将匹配成功的规则组成待用规则集。 实/数据,将匹配成功的规则组成待用规则集。 若待用规则集为空,则运行失败,退出。 步4 若待用规则集为空,则运行失败,退出。 将待用规则集中各规则的结论加入动态数据库, 步5 将待用规则集中各规则的结论加入动态数据库,或 者执行其动作,转步2。 者执行其动作,转步 。
1
1960年,Backus提出了著名的BNF(巴科斯范 式),用以描述计算机语言的文法,后来发现, BNF范式实际上就是Chomsky的上下文无关文法。 至此,产生式系统的应用范围大大扩展。 产生式表示方法容易描述事实、规则以及它 们的不确定性度量。
2
5.1 产生式规则
产生式规则是表示知识的一种方式,一般形式为: 产生式规则是表示知识的一种方式,一般形式为:P→Q, Q。 或 If P then Q。 产生式的含义是:如果前提P被满足,则可推出结论Q 产生式的含义是:如果前提P被满足,则可推出结论Q或 执行Q所规定的动作。 执行Q所规定的动作。
18
5.5 产生式系统的程序实现
产生式规则的程序语言实现
规则的前提部分可表示为 或 规则的结论部分可表示为
条件1 AND 条件2 AND …AND 条件n 条件1 OR 条件2 OR …OR 条件n 断言1/动作1 and 断言2/动作2 and …and断言n/动作n 断言1/动作1 or 断言2/动作2 or …or断言n/动作n
11
R9:若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎。 R10:若某动物是食肉动物且黄褐色且有黑色斑点,则它是金钱 豹。 R11:若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点, 则它是长颈鹿。 R12:若某动物是有蹄动物且白色且有黑色条纹,则它是斑马。 R13:若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是 鸵鸟。 R14:若某动物是鸟且不会飞且会游泳且黑白色,则它是企鹅。 R15:若某动物是鸟且善飞且不怕风浪,则它是海燕。
或 一般只考虑含有至多一个结论部分的产生式规则 (类似于Horn 子句逻辑)
条件1 AND 条件2 AND …AND条件n→断言/动作
19
产生式系统的程序实现
产生式规则的具体表示方法可以使用If-Then规则,也可 以使用多元组的形式表示,如二元组(<前件>,<后件>) 可表示一个产生式规则。 无论使用何种表示方式,必须与规则的解释程序(即推 理机)相容。 在Prolog中表示产生式规则,至少有两种形式: (1)、用Prolog的规则表示产生式规则; (2)、用Prolog的事实表示产生式规则。
28
6.2.1.框架的概念
例6.1 下面是一个描述“教师”的框架: 框架名:<教师> 类属:<知识分子> 工作:范围:(教学,科研) 缺省:教学 性别:(男,女) 学历:(中师,高师) 类型:(<小学教师>,<中学教师>,<大学教师>)
29
6.2.1.框架的概念
例6.2 下面是一个描述“大学教师”的框架: 框架名:<大学教师> 类属:<教师> 学历:(学士,硕士,博士) 专业:<学科专业> 职称:(助教,讲师,副教授,教授) 外语:语种:范围:(英,法,日,俄,德,…) 缺省:英 水平:(优,良,中,差) 缺省:良
例: 1)IF 动物会飞 AND 会下蛋 会下蛋THEN 该动物是鸟。 该动物是鸟。 ) 2)如果炉温超过上限,则关闭阀门。 )如果炉温超过上限,则关闭阀门。 3)如果病人有红色斑点,且病人发烧,且病人是学龄儿童, )如果病人有红色斑点,且病人发烧,且病人是学龄儿童, 则病人患的是水痘。 则病人患的是水痘。
21
产生式系统的程序实现
it_is(“食肉动物”):it_is1(“哺乳动物”), fact(“吃肉”). it_is1(“哺乳动物”):-fact(“有奶”). it_is1(“哺乳动物”):-fact(“有毛发”).
22
产生式系统的程序实现
上面的产生式规则也可以用Prolog中的事实表示为: rule([“食肉动物”,“黄褐色”,“有黑色条纹”], “老虎”). rule([“哺乳动物”,“有爪”,“有犬齿”,“目盯前方”], “食肉动 物”). rule([“哺乳动物”,“吃肉”], “食肉动物”). rule( [“有奶”], “哺乳动物”). rule( [“有毛发”], “哺乳动物”). 这种表示方法需要自己编写一个推理机程序。
12
再给出初始事实: F1:某动物有毛发 F2:吃肉 F3:黄褐色 F4:有黑色条纹 目标条件为:该动物是什么?
13
动物分类产生式系统
图5-4 ห้องสมุดไป่ตู้物分类正向推理树
14
产生式系统的反向推理
反向推理: 从目标出发, 反向推理 : 从目标出发 , 反向使用规则进 行推理,朝初始事实或数据方向前进。 行推理,朝初始事实或数据方向前进。
25
6.1.2 知识表示
知识表示是指面向计算机的知识描述和表达,是指把知识 表示为计算机能存储、识别、处理和利用的形式的方法。 知识表示是建立专家系统和各种知识系统的基础。提出了 各种知识表示方法,如一阶谓词逻辑、产生式规则、框架、 语义网络、对象、脚本、过程、神经网络等。 知识表示可分为陈述表示和过程表示。陈述表示是把事物 的属性、状态和关系逻辑描述出来,而过程表示则是把事 物的行为和操作、解决问题的方法地和步骤具体地表示出 来。也称为知识的动态表示或静态表示。
26
6.1.3 知识表示的语言实现
如支持谓词逻辑的语言Prolog和Lisp, 专门支持产生式规则的语言OPS5, 专门支持框架的语言FRL, 面向对象的语言Smalltalk, C++等。
27
第6章 知识表示
6.2.1.框架的概念
<框架名>
<槽名1><槽值1>| <侧面名11><侧面值111,侧面值112,…> <侧面名12><侧面值121,侧面值122,…> <槽名2><槽值2>|<侧面名21><侧面值211,侧面值212,…> <侧面名22><侧面值221,侧面值222,…> … … … <槽名k><槽值k>| <侧面名k1><侧面值k11,侧面值k12,…> <侧面名k2><侧面值k21,侧面值k22,…>
产生式规则与逻辑蕴含式的区别与联系 逻辑蕴含式是产生式,反之则不然。 逻辑蕴含式是产生式,反之则不然。 基于产生式的推理模式 ( A → B) ∧ A ⇒ B 假言推理: 假言推理:
3
5.2 产生式系统
5.2.1 产生式系统的组成 产生式规则库。 产生式规则库。用于描述相应领域内的知识 的产生式规则的集合。 的产生式规则的集合。规则库中的知识要求 完整、一致、表达准确灵活、知识组织合理; 完整、一致、表达准确灵活、知识组织合理; 推理机。又称控制系统,是一个程序模块, 推理机。又称控制系统,是一个程序模块, 负责产生式系统的运行。 负责产生式系统的运行。如规则与事实的匹 执行规则、停止控制等。 配、执行规则、停止控制等。
步1 初始化动态数据库,将初始事实、数据置入 动态数据库。将目标条件置入目标链。 步2 若目标链为空,则推理成功,结束。 步3 取出目标链中第一个目标,用动态数据库中 的事实、数据同其匹配,若匹配成功,转步2。
15
步4
用规则库中各规则的结论同该目标匹配,若匹配
成功,则将第一个匹配成功且未用过的规则的前提作 为新的目标,并取代原来的父目标而加入目标链,转 步3。 步5 若该目标是初始目标,则推理失败,退出。 步6 将该目标的父目标移回目标链,取代该目标及其 兄弟目标,转步3。
23
产生式系统的程序实现
规则库的程序实现
在Prolog中,如果用Prolog的规则表示产生式 规则,规则库是程序的一部分,放在程序的 clauses段。 如果用事实表示产生式规则,则规则库用动态 数据库或数据库文件实现。
24
第6章 知识表示
6.1 知识及其表示 6.1.1 知识的概念 知识是人们对客观事物及其规律的认识及利用客观规 律解决实际问题的方法和策略。 就内容而言,知识可分为原理性知识和方法性知识。 就形式而言,知识可分为显式知识和隐式知识。显式 知识指可用语言、文字、符号、图形、声音等表示和 处理的知识,可供他人直接识别。隐式知识是一种个 体技能型的知识。 就可靠性和严密性而言,知识又可分为理论知识和经 验知识。
4
产生式规则与逻辑蕴含式的区别与联系 逻辑蕴含式是产生式,反之则不然。 逻辑蕴含式是产生式,反之则不然。 产生式可以包括各种操作、规则、变换、算子、 产生式可以包括各种操作、规则、变换、算子、函数 等等。 等等。 产生式规则描述了事物之间的对应关系, 产生式规则描述了事物之间的对应关系,包括因果关 系和蕴含关系 基于产生式的推理模式 ( A → B) ∧ A ⇒ B 假言推理: 假言推理: 可以把有前提条件的操作和逻辑推理统称为推理。 可以把有前提条件的操作和逻辑推理统称为推理。上 式构成基于产生式规则的一般推理模式。 式构成基于产生式规则的一般推理模式。
5
产生式系统的组成
产生式系统由三部分组成:产生式规则库、推理 机、动态数据库。 动态数据库。又称综合数据库。存放初始事实、 数据、目标条件、中间结果和最后结果。 产生式规则库 推理机 动态数据库
6
5.2.2 产生式系统的运行过程
运行需要:规则库、初始事实(或数据) 和目标条件。 目标条件是系统正常结束的条件,也是系统 的求解目标。
16
动物分类产生式系统
图5-5 动物分类反向推理树
17
冲突消解策略
正向推理算法二:带冲突消解策略。
步1 初始化动态数据库,将初始事实、数据置入动态数据库中。 步2 用动态数据库中的事实、数据匹配目标条件,若目标条件 满足,则推理成功,结束。 步3 用规则库中各规则的前提匹配动态数据库中的事实/数据, 将匹配成功的规则组成待用规则集。 步4 若待用规则集为空,则运行失败,退出。 步5 用某种策略,从待用规则集中选取一条规则,将其结论加 入动态数据库,或者执行其动作,撤消待用规则集,转步2。
10
例1
设动物分类的规则库为
R1:若某动物有奶,则它是哺乳动物。 R2:若某动物有毛发,则它是哺乳动物。 R3:若某动物有羽毛,则它是鸟。 R4:若某动物会飞且生蛋,则它是鸟。 R5:若某动物是哺乳动物且有爪且有犬齿且目盯前方, 则它是食肉动物。 R6:若某动物是哺乳动物且吃肉,则它是食肉动物。 R7:若某动物是哺乳动物且有蹄,则它是有蹄动物。 R8:若某动物是有蹄动物且反刍食物,则它是偶蹄动物。
•
•
若用(1) 表示产生式规则,则使用Prolog内部的推理机,无 须自己编写推理机。 若用(2)表示产生式规则,则须自己编写显式的推理机程序。
20
产生式系统的程序实现
例 动物分类系统中的产生式规则可用Prolog语言中的规 则表示为: animal_is(“老虎”):it_is(“食肉动物”), fact(“黄褐色”), fact(“有黑色条纹”). it_is(“食肉动物”):it_is1(“哺乳动物”), fact(“有爪”), fact(“有犬齿”), fact(“目盯前方”).