当前位置:文档之家› 基于产生式规则的推理

基于产生式规则的推理


r10:若某动物是食肉动物且黄褐色且有黑色斑点, 则它是金钱豹。 r11:若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点, 则 它是长颈鹿。 r12:若某动物是有蹄动物且白色且有黑色条纹, 则它是斑马。 r13:若某动物是鸟且不会飞且长腿且长脖子且黑白色, 则它是驼鸟。 r14:若某动物是鸟且不会飞且会游泳且黑白色, 则它是企鹅。 r15:若某动物是鸟且善飞且不怕风浪, 则它是海燕。
基于产生式规则 的机器推理
小组成员: 雷晓艳 张丽芳 王瑞霞
主要内容
一 、产生式规则概述 二、 产生式系统 产生式系统构成 产生式系统的类型 产生式系统的程序实现 产生式系统的特点
产生式规则概述
产生式规则的产生和发展 人工智能中使用产生式的理由 产生式规则的界定及内容
产生式规则的产生和发展
(2)图搜索产生式系统
同时掌握若干规则序列的效果,从中寻找问题的 答案。为避免循环,通常采用树搜索,如广度优先搜 索。
四、产生式系统的程序实现
(一)程序实现
1) 产生式规则的程序语言实现 2)规则库的程序实现 3)动态数据库的程序实现 4)推理机的程序实现
(二) Prolog语言及其基本结构
产生式规则的界定及内容
基本形式:
A → B 或者 IF A THEN B A 是产生式的前提(前件),用于指出该产生式是 否可用的条件 B 是一组结论或操作(后件),用于指出当前提 A所 指示的条件满足时,应该得出的结论或应该执行的 操作 例:R: IF 动物会飞 AND 会下蛋 THEN 该动物是鸟
“产生式” — 1943 年美国数学家 Post 首先在一种计算形式体系中提出的术语。 20世纪70年代,Newell和Simon等学者在 对人类认知模型研究中,开发了基于规则的 产生式系统等。从那时开始,产生式系统成 为专家系统的最基本的结构。从此,产生知 识表示在人工智能中得到了广泛的应用。 产生式系统在形式上很简单,但在一定 意义上模仿了人类思考的过程。
产生式规则的界定及内容
产生式规则其实就是产生式系统的主体,是产生 式系统知识表示的核心。故人们常把产生式表示直接 称为产生式规则,或简称规则。这里所说的“规则” , 是指人们思维判断中的一种固定逻辑结构关系。一般 产生式的结构可表示为自然语言形式,事实上,在自 然语言表达中,人们广泛使用的各种“原因—-结果”, “条件—结论”,“前提—操作”,“事实—进展”, “情况—行为”等结构,都可归结为产生式的知识表 达形式。
2)试探式的产生式系统 即规则使用后,允许返回原来出发点重新选 用其他规则。可分为: (1)回溯法产生式系统
在规则使用后,记住原来的节点,若搜索遇到困难 时可返回再选用其规则。如有界深度优先搜索。 先试用某一规则,如果以后发现不合适,退回另选 一条规则。新生成的状态前面出现过回溯条件确定从 初态开始,用了若干规则仍未到达目标涉及两个问题: 对当前状态,再无可用规则。 利用已有知识对规则排序,可减少回溯次数。
正向推理算法:
步1 将初始事实/数据置入动态数据库。 步2 用动态数据库中的事实/数据, 匹配/测试目标 条件, 若目标条件满足, 则推理成功, 结束。 步3 用规则库中各规则的前提匹配动态数据库中的 事实/数据, 将匹配成功的规则组成待用规则集。 步4 若待用规则集为空, 则运行失败, 退出。 步5 将待用规则集中各规则的结论加入动态数据库, 或者执行其动作, 转步2。
条件1 AND 条件2 AND … AND 条件n→断言/动作
一种是先确定好规则的语言表示形式,再根据规则 形式设计规则解释程序(推理机);另一种是对已有的 解释程序(推理机),设计规则表示形式(当然只能采 用推理机所约定的规则形式) 在PROLOG程序中要表示产生式规则, 至少有两种形式: (1) 用PROLOG的规则表示产生式规则。 (2) 用PROLOG的事实表示产生式规则。
产生式规则的界定及内容
例如: (1)天下雨,地上湿。(“原因—结果”结构) (2)如果把冰加热到零摄氏度以上,冰就会融化为水。 (“条件—结论”结构) (3)“夜来风雨声,花落知多少。”(事实及其进展 结构) (4)若能找到一根合适的杠杆,就能撬起那座大山。 (前提—操作) (5)“才饮长江水,又食武昌鱼,”(事实及其进展 结构) (6)刚才开机了,意味着发出了捕获目标图像的信号。 (情况—行为)
产生式规则的界定及内容
基本形式:
〈前件〉→〈后件〉 其中, 前件就是前提, 后件是结论或动作,前件和后 件可以是由逻辑运算符AND、OR、NOT组成的表达式。 语义: 如果前提满足,则可得结论或者执行相应 的动作, 即后件由前件来触发。 所以, 前件是规则 的执行条件, 后件是规则体。
产生式系统构成
该问题的求解过程,如下表所示。
求解过程
综合数据库 A,B A,B,C 可触发规则 被触发规则 (1) (1) (2)(3) (2)
A,B,C,D A,B,C,D,G A,B,C,D,G,E A,B,C,D,G,E,F
(3)(5) (3) (5) (5) (4) (4)
2,IF A∧C THEN D 4,IF B∧E THEN F
1 ) Prolog语言 2 ) Prolog的基本结构
(一)程序实现
1) 产生式规则的程序语言实现 将规则的前提部分做成形如 条件1 AND 条件2 AND … AND 条件n 或 条件1 OR 条件2 OR … OR 条件m 将规则结论部分做成形如 断言1/动作1 AND 断言2/动作2 AND … AND 断言k/动 作k 或 断言1/动作1 OR 断言2/动作2 OR … OR 断言k/动作 一般地做成
产生式系统推理的基本过程
推理机的一次推理过程
一个简单的例子
问题:设字符转换规则 A∧B→C A∧C→D B∧C→G B∧E→F D→E 已知:A,B 求:F
一个简单的例子(续1)
一、综合数据库 {x},其中x为字符 二、规则集 1,IF A∧B THEN C 2,IF A∧C THEN D 3,IF B∧C THEN G 4,IF B∧E THEN F 5,IF D THEN E
产生式系统的类型
(一)按推理方向分类
1.正向推理 2.逆向推理 3.双向推理
(二)按搜索策略分类
1.不可撤回方式 2.试探性方式
(1)回溯方式 (2)图搜索方式
正向推理
从一组表示事实的谓词或命题出发,使用一组产生 式规则,用以证明该谓词公式或命题是否成立。 一般策略:先提供一批事实(数据)到总数据库 中。系统利用这些事实与规则的前提相匹配,触发匹 配成功的规则,把其结论作为新的事实添加到总数据 库中。继续上述过程,用更新过的总数据库的所有事 实再与规则库中另一条规则匹配,用其结论再次修改 总数据库的内容,直到没有可匹配的新规则,不再有 新的事实加到总数据库中。

动物分类问题的产生式系统描述及其求解。
r1:若某动物有奶, 则它是哺乳动物。 r2: 若某动物有毛发, 则它是哺乳动物。 r3: 若某动物有羽毛, 则它是鸟。 r4: 若某动物会飞且生蛋, 则它是鸟。 r5: 若某动物是哺乳动物且有爪且有犬齿且目盯前方, 则 它是食肉动物。 r6: 若某动物是哺乳动物且吃肉, 则它是食肉动物。 r7: 若某动物是哺乳动物且有蹄, 则它是有蹄动物。 r8: 若某动物是有蹄动物且反刍食物, 则它是偶蹄动物。 r9: 若某动物是食肉动物且黄褐色且有黑色条纹, 则它是 老虎。 r10:若某动物是食肉动物且黄褐色且有黑色斑点, 则它是 金钱豹。 r11:若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗 斑点, 则它是长颈鹿。
人工智能中使用产生式的理由
为什么要采用产生式系统作为人工智能系统的主要结 构呢?这可以有两点理由; 用产生式系统结构求解问题的过程和人类求解问题时的 思维过程很相象(下面要举例说明),因而可以用它来 模拟人类求解问题时的思维过程。 可以把产生式系统作为人工智能系统的基本结构单元或 基本模式看待,就好像是积木世界中的积木块一样,因 而研究产生式系统的基本问题就具有一般意义。

对于上例中的产生式系统, 改为反向推理算法,
则得到下图所示的推理树。
关于“老虎”的反向推理树
双向推理
双向推理的推理策略是同时从目标向事实 推理和从事实向目标推理,并在推理过程中的 某个步骤,实现事实与目标的匹配。
(1)不可撤回方式
这种方式是利用问题给出的局部知识来决定如何选取规 则,就是说根据当前可靠的局部知识选一条可应用规则并作 用于当前综合数据库。接着再根据新状态继续选取规则,搜 索过程一直进行下去,不必考虑撤回用过的规则。这是由于 在搜索过程中如能有效利用局部知识,即使使用了一条不理 想的规则,也不妨碍下一步选得另一条更合适的规则。这样 不撤消用过的规则,并不影响求到解,只是解序列中可能多 了一些不必要的规则。显然这种策略具有控制简单的优点, 下面用登山问题来进一步说明这种方式的基本思想。 人们在登山过程中,目标是爬到峰顶,问题就是确定如 何一步一步地朝着目标前进达到顶峰。其实这就是一个"爬 山"过程中寻求函数的极大值问题。我们很容易想到利用高 度随位置变化的函数H(P)来引导爬山,就可实现不可撤回 的控制方式。
逆向推理算法:

步1 将初始事实/数据置入动态数据库, 将目标 条件置入目标链。 步2 若目标链为空,则推理成功,结束。 步3 取出目标链中第一个目标, 用动态数据库中 的事实/数据同其匹配, 若匹配成功, 转步2。 步4 用规则集中的各规则的结论同该目标匹配, 若匹配成功,则将第一个匹配成功且未用过的规则的 前提作为新的目标,并取代原来的父目标而加入目标 链, 转步3。 步5 若该目标是初始目标, 则推理失败, 退出。 步6 将该目标的父目标移回目标链, 取代该目标 及其兄弟目标, 转步3。
一个简单的例子(续2)
相关主题