【七】头歌平台实验-产生式表示法与框架表示法

        “产生式”由美国数学家波斯特(E.POST)在1934年首先提出,它根据串代替规则提出了一种称为波斯特机的计算模型,模型中的每条规则称为产生式。1972年纽厄尔和西蒙在研究人类知识模型中开发了基于规则的产生式系统。而后1975年美国著名的人工智能学者明斯基提出了框架理论。该理论认为人们对现实世界中各种事物的认识都是以一种类似于框架的结构存储在记忆中的。当面临一个新事物时,就从记忆中 找出一个合适的框架,并根据实际情况对细节加以修改、补充,从而形成对当前事物的认识。

第1关:产生式表示法

1、下面哪个选项是确定性规则知识的产生式表示的基本形式(A )

A、IF P THEN Q

B、IF P THEN Q(置信度)

C、(对象,属性,值)

D、(对象,属性,值,置信度)

2、老李的年龄可能是40岁,表示为(Li,Age,40,0.8),这属于哪种表示法(D )

A、确定性规则知识的产生式表示

B、不确定性规则知识的产生式表示

C、确定性事实知识的产生式表示

D、不确定性事实知识的产生式表示

3、产生式与谓词逻辑的蕴含式的基本形式相同,但蕴含式只是产生式的一种特殊情况。

A、

B、错

4、下列关于产生式表示法的特点,那些是产生式表示法的优点(ABCD )

A、自然性

B、模块性

C、清晰性

D、有效性

5、以下适合用产生式表示法表示的是(ABCD )

A、化学反应方面的知识

B、医疗诊断方面的知识

C、故障诊断方面的知识

D、领域问题的求解

相关知识:

1、产生式表示法

产生式通常用于表示事实、规则以及它们的不确定性度量,适合用于表示实时性知识和规则性知识。主要有以下几类:

  • 确定性规则知识的产生式表示 确定性规则知识的产生式表示的基本形式如下:

    1. IF P THEN Q
    2. 或者
    3.   P→Q

    其中:P 是产生式的前提,用于指出该产生式是否可用的条件;Q 是一组结论或操作,用于指出当前提 P 所指示的条件满足时,应该得出的结论或应执行的操作。 整个产生式的含义是:如果前提 P 被满足,则可得到结论 Q 或执行 Q 所规定的操作。例如:

    1. r4: IF 动物会飞 AND 会下蛋 THEN 该动物是鸟

    这是一个产生式。其中 r4​ 是该产生式的编号;“动物会飞 AND 会下蛋”是前提 P ,“该动物是鸟”是结论 Q 。

  • 不确定性规则知识的产生式表示 不确定性规则知识的产生式表示的基本形式如下:

    1. IF P THEN Q(置信度)
    2. 或者
    3.   P→Q(置信度)

    例如在专家系统 MYCIN 有这样一条产生式:

    1. IF 本微生物的染色斑是革兰式阴性
    2. 本微生物的形状呈杆状
    3. 病人是中间宿主
    4. THEN 该微生物是绿脓杆菌,置信度是0.6

    它表示当前提中列出的各个条件都得到满足时,“该微生物是绿脓杆菌”可以相信的程度是 0.6 。这里,用 0.6 指出了知识的强度。

  • 确定性事实知识的产生式表示 确定性事实一般用三元组表示:

    1. (对象,属性,值)
    2. 或者
    3. (关系,对象1,对象2)

例如:老李的年龄是 40 岁,表示为 ( Li , Age , 40 ) 。老王和老李是朋友,表示为 ( Friend , Li , Wang ) 。

  • 不确定性事实知识的产生式表示 不确定性事实一般用四元组表示:
    (对象,属性,值,置信度)
    或者
    (关系,对象1,对象2,置信度)

    例如:老李的年龄可能是 40 岁,表示为 ( Li , Age , 40 , 0.8 ) 。老王和老李是朋友,表示为 ( Friend ,Li , Wang , 0.1 )。

与前面我们学习的谓词逻辑相比,产生式与谓词逻辑的蕴含式的基本形式相同,但蕴含式只是产生式的一种特殊情况,具体原因如下:

  • 除逻辑蕴含外,产生式还包括各种操作、规则、算子、函数等。
  • 蕴含式只能表示确定性知识,其真值或者为真,或者为假,而产生式不仅可以表示确定性的知识,而且还可以表示不确定的知识。

由于产生式与蕴含式存在这些区别,导致它们在处理方法及应用等方法都有较大的差别。为了严格描述产生式,下面用巴克斯范式给出它的形式进行描述:

<产生式>::=<前提>→<条件>
<前提>::=<简单条件>|<复合条件>
<结论>::=<事实>|<操作>
<复合条件>::=<简单条件>AND<简单条件>[AND<简单条件>...]
|<简单条件>OR<简单条件>[OR<简单条件>...]
<操作>::=<操作名>[(<变元>,...)]

其中“::=”表示为“定义为”,符号“∣”表示为“或者是”,符号“[]”表示可省略。

2、产生式表示法的特点

a、产生式表示法的优点

  • 自然性 产生式表示法用“如果......,则......”的形式表示知识,这是人们常用的一种表达因果的关系,简单自然。
  • 模块性 产生式是规则库中最基本的知识单元,它们同推理机构相对独立,而且每条规则都具有相同的形式。这就便于进行模块化管理。
  • 有效性 产生式表示法既可表示确定的知识,又可表示不确定的知识;有利于表示启发式知识,又有利于表示过程性知识。
  • 清晰性 产生式有固定的格式。每一条产生式规则都由前提和结论组成,而且每一部分的知识量都较少,这便于对规则进行设计及对规则库中知识的一致性进行检测。

b、产生式表示法的缺点

  • 效率不高 产生式表示法求解问题时,首先要用产生式的前提部分与综合数据库中已知事实进行匹配,从规则库中选用可使用的规则。而规则库一般都比较庞大并且匹配又是一件十分费时的操作,所以其工作效率不高。
  • 不能具有结构性的知识 产生式适合于表达具有因果关系的过程性知识,是一种非结构化的知识表示方法,所以对具有结构化关系的知识却无能为力。

产生式表示法适合表示的知识

由于产生表示法的特点,可以看出产生式表示法适合于表示具有下列特点的领域知识:

  • 由许多相对独立的知识组成的领域知识,彼此之间关系不密切,不存在结构关系,如化学反应方面的知识。
  • 具有经验性及不确定性的知识,而且相关领域中对这些知识没有严格、统一的理论,如医疗诊断、故障诊断等方面的知识。
  • 领域问题的求解过程可被表示为一系列相对队列的操作,而且每个操作可被表示为一条或多条产生式规则。

第2关:产生式系统

# 动物识别系统
# 自定义函数,判断有无重复元素
def judge_repeat(value, list=[]):
    for i in range(0, len(list)):
        if (list[i] == value):
            return 1
        else:
            if (i != len(list) - 1):
                continue
            else:
                return 0


# 自定义函数,对已经整理好的综合数据库real_list进行最终的结果判断
def judge_last(list):
    for i in list:
        if (i == '23'):
            for i in list:
                if (i == '12'):
                    for i in list:
                        if (i == '21'):
                            for i in list:
                                if (i == '13'):
                                    print("黄褐色,有斑点,哺乳类,食肉类->金钱豹\n")
                                    print("所识别的动物为金钱豹")
                                    return 0
                                elif (i == '14'):
                                    print("黄褐色,有黑色条纹,哺乳类,食肉类->虎\n")
                                    print("所识别的动物为虎")
                                    return 0


        elif (i == '14'):
            for i in list:
                if (i == '24'):
                    print("有黑色条纹,蹄类->斑马\n")
                    print("所识别的动物为斑马")
                    return 0
        elif (i == '24'):
            for i in list:
                if (i == '13'):
                    for i in list:
                        if (i == '15'):
                            for i in list:
                                if (i == '16'):
                                    print("有斑点,有黑色条纹,长脖,蹄类->长颈鹿\n")
                                    print("所识别的动物为长颈鹿")
                                    return 0
        elif (i == '20'):
            for i in list:
                if (i == '22'):
                    print("善飞,鸟类->信天翁\n")
                    print("所识别的动物为信天翁")
                    return 0
        #********* Begin *********#
        elif (i == '22'):
            for i in list:
                if (i== '15'):
                    for i in list:
                        if (i == '16'):
                            for i in list:
                                if(i == '4'):
                                    print("不会飞,长脖,长腿,鸟类->鸵鸟\n")
                                    print("所识别的动物为鸵鸟")
                                    return 0
       
        # ********* End *********#
        elif (i == '4'):
            for i in list:
                if (i == '22'):
                    for i in list:
                        if (i == '18'):
                            for i in list:
                                if (i == '19'):
                                    print("不会飞,会游泳,黑白二色,鸟类->企鹅\n")
                                    print("所识别的动物企鹅")
                                    return 0

        else:
            if (list.index(i) != len(list) - 1):
                continue
            else:
                print("\n根据所给条件无法判断为何种动物")

相关知识:

1、产生式系统

        把一组产生式放在一起,让它们相互配合,协同作用,一个产生式生成的结论可以供另一个产生式作为已知事实使用,以求得问题的解,这样的系统称为产生式系统。一般来说,一个产生式系统由规则库、控制系统(推理机)、综合数据库三个部分组成。它们之间的关系如下图:

产生式系统的基本结构关系

规则库:用于描述相应领域内过程性知识的产生式集合。

综合数据库(又称为事实库、上下文、黑板等):存放问题求解过程中的各种信息的数据结构,包括初始状态、原始证据、中间结论及最终结论。

推理机:由一组程序组成,负责整个产生式系统的运行,实现对问题的求解。

粗略的说,推理机主要做以下几项工作:

  • 从规则库中选择与综合数据库中的已知事实进行匹配。
  • 匹配成功的规则可能不止一条,这称为发生了冲突,需要进行冲突消解。
  • 执行某一规则时,如果其右部是一个或多个结论,则把这些结论加入到综合数据库中:如果其右部是一个或多个操作,则执行这些操作。对于不确定性知识,在执行每一条规则时还要按一定的算法计算结论的不确定性。
  • 检查综合数据库中是否包含了最终结论,决定是否停止系统的运行。

    第3关:框架表示法

1、产生式表示法是一种结构化的知识表示方法,现在已经在多种系统中得到应用。

A、对

B、

2、如下图是一个教室框架,该框架共有( B)槽

A、12

B、13

C、14

D、15

3、下列选项中,哪些是框架表示法的特点( ACD)

A、结构性

B、精确性

C、继承性

D、自然性

 相关知识:

1、框架的一般结构

在学习产生式表示法时,我们知道产生式表示法并不适用于结构化的知识表示。在这里我们介绍一种新型的框架表示法,它是一种结构化的知识表示方法,现在已经在多种系统中得到应用。 框架是一种描述所述对象(一个事物、事件或概念)属性的数据结构。 一个框架由若干个被称为“槽”的结构组成,每一个槽又可根据实际情况划分为若干个“侧面”。一个槽用于描述所论述对象的某一个方面的属性。一个侧面用于描述相应属性的一个方面。槽和侧面所具有的属性值分别被称为槽值和侧面值。下面是框架表示法的一般表示形式:

2、框架表示法的特点

  • 结构性 便于表达结构性知识,能够将知识内部结构关系及知识间的联系表示出来。

  • 继承性 框架网络中,下层框架可以继承上层框架的槽值,也可以进行补充和修改。

  • 自然性 框架表示法与人在观察事物时的思维活动是一致的。

-END-

 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霜淮子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值