中文  English

万桥技术有限公司

联系电话:4006-288-992

智能知识库1.2

您当前所在的位置: M5彩票平台 产品展示 智能知识库1.2
O目标条件是系统正常结束的条件,也是系统的求解目标。产生式系统启动后,推理机就开始推理,按所给的目标进行问题求解。
O推理机的一次推理过程,可如图所示。
l
                     
l产生式系统的运行过程
O一个实际的产生式系统,其目标条件一般不会只经一步推理就可满足,往往要经过多步推理才能满足或者证明问题无解。
O产生式系统的运行过程就是从初始事实出发,寻求到达目标条件的通路的过程。所以,产生式系统的运行过程也是一个搜索的过程,但一般把产生式系统的整个运行过程也称为推理。 

O正向推理算法:
l1 :将初始事实/数据置入动态数据库;
l2 :用动态数据库中的事实/数据,匹配/测试目标条件,若目标条件满足,则推理成功,结束。
l3 :用规则库中各规则的前提匹配动态数据库中的事实/数据,将匹配成功的规则组成待用规则集;
l4 :若待用规则集为空,则运行失败,退出。
l5 :用某种策略,从待用规则集中选取一条规则,将其结论加入动态数据库,或者执行其动作,撤消待用规则集,转步2
O规则的选择策略成为冲突消解策略。产生式系统的推理方式、搜索策略及冲突消解策略等,一般统称为推理控制策略,简称控制策略。控制策略体现在推理机的算法描述中。
l控制策略与常用算法
O可以看出,随着推理的进行,动态数据库的内容或者状态在不断变化。如果把动态数据库的每一个状态作为一个节点的话,则上述推理过程就是一个从初始状态(初始事实或数据)到目标状态(目标条件)的状态图搜索过程。


l控制策略与常用算法
O例:动物分类问题的产生式系统描述及其求解。

   设由下列动物识别规则组成一个规则库,推理机采用上述正向推理算法,建立一个产生式系统。该产生式系统就是一个小型动物分类知识库系统。规则如下: 


r1:若某动物有奶,则它是哺乳动物。

r2:若某动物有毛发,则它是哺乳动物。

r3:若某动物有羽毛,则它是鸟。

r4:若某动物会飞且生蛋,则它是鸟。

r5:若某动物是哺乳动物且有爪且有犬齿且目盯前方,则它是食肉动物。

r6:若某动物是哺乳动物且吃肉,则它是食肉动物。

r7:若某动物是哺乳动物且有蹄,则它是有蹄动物。

r8:若某动物是有蹄动物且反刍食物,则它是偶蹄动物。

r9:若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎。

r10:若某动物是食肉动物且黄褐色且有黑色斑点,则它是金钱豹。

r11:若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点,则它  是长颈鹿。

r12:若某动物是有蹄动物且白色且有黑色条纹,则它是斑马。

r13:若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是驼鸟。

r14:若某动物是鸟且不会飞且会游泳且黑白色,则它是企鹅。

r15:若某动物是鸟且善飞且不怕风浪,则它是海燕。

再给出初始事实:

f1:某动物有毛发。

f2:吃肉。

f3:黄褐色。

f4:有黑色条纹。

目标条件为:该动物是什么?

易见,该系统的运行结果为:该动物是老虎。

其推理树如图所示


l控制策略与常用算法
O反向推理算法

    反向推理就是从目标出发,反向使用规则进行推理(即用规则结论与目标匹配,又产生新的目标,然后对新目标再作同样的处理),朝初始事实或数据方向前进。 


l控制策略与常用算法
O反向推理算法:
l1:将要求证的目标(称为假设)构成一个假设集。
l2:从假设集中选出一个假设,检查该假设是否在动态数据库中,如在,则该假设成立,此时,若假设集为空,则成功退出,否则仍执行步2;若该假设不在数据库中,则执行下一步。
l3:检查该假设是否可由规则库的某个知识导出。若不能由某个知识导出,则询问用户该假设是否为可由用户证实的原始事实,若是,该假设成立,并将其放入动态数据库,再重新寻找新的假设,若不是,则转入步5;若能由某个知识导出,则执行下一步。

l控制策略与常用算法
O反向推理算法:
l4 :将规则库中可以导出该假设的所有知识构成一个可用知识集。
l5 :检查可用知识集是否为空,若空,失败退出;否则执行下一步。
l6 :按冲突消解策略从可用知识集中取出一个知识,继续执行下一步。
§在推理的某一步,如果知识库中有多条知识可用,则称发生了冲突
l7 :将该知识的前提中的每个子条件都作为新的假设放入假设集,转入步2.
O可以看出,上述反向推理算法的推理过程也是一个图搜索过程,而且一般是一个与或树搜索如下图所示的反向推理树。


O可以看出,与正向推理不同,这次的推理树是从上而下扩展而成的,而且推理过程中还发生过回溯。
O反向推理也称为后向推理、反向链、目标驱动的推理等。从上面的两个算法可以看出,正向推理是自底向上的综合过程,而反向推理则是自顶向下的分析过程
O除了正向推理和反向推理外,产生式系统还可进行双向推理。双向推理就是同时从初始数据和目标条件出发进行推理,如果在中间某处相遇,则推理搜索成功。
l 产生式系统的应用
O由上述产生式系统与图搜索的关系可见,产生式系统完全可以作为问题求解的表示模型和求解模型,而且可作为人工智能问题求解系统的通用模型。
O用产生式系统也可实现基于谓词逻辑的演绎推理和证明。事实上,当一个产生式系统中的规则是逻辑蕴含式时,其运行过程就是演绎推理(假言推理或三段论)的过程。
O这时目标值已知时就是证明,当目标值未知时就是推理求值。
O由于产生式系统既可用于操作性问题求解,也可用于推理性问题求解。因此,产生式系统也是专家系统的基本结构形式。用它既可实现规划型专家系统,也可实现结论型专家系统。
l产生式规则的程序语言实现
O上面我们对产生式的讨论,只是用自然语言进行描述并仅在概念层次上进行阐述,而并未涉及它的具体结构和程序语言实现问题。现在讨论产生式规则的程序语言实现问题。首先,讨论产生式规则的结构问题。一般来讲,产生式规则的前提和结论部分可以是一个复杂的逻辑表达式,但为了使表达简单规范,且便于推理,在实践中人们往往把规则的前提部分作成形如: 

2.2 产生式规则

l产生式规则的程序语言实现

条件1AND条件2ANDAND条件n     或   

条件1OR条件2OROR条件m

的形式(其中的条件可以带否定词);把规则结论部分作成形如:  

断言1/动作1AND断言2/动作2ANDAND断言k/动作k      或   

断言1/动作1OR断言2/动作2OROR断言k/动作k

的形式,或者进一步简化成

                                  断言/动作

即仅有一项的形式。

l产生式规则的程序语言实现

由于含OR关系的规则也可以分解为几个不含OR关系的规则,所以,产生式规则也可仅取下面的一种形式:   

条件1AND条件2ANDAND条件n→断言/动作

即前件是若干与关系的条件,后件仅有一个断言或动作。


l产生式规则的程序语言实现
O如上例给出的产生式规则用PROLOG的规则可表示如下:

            animal-is("老虎"):-

                          it-is("食肉动物"),

                          fact("黄褐色"),

                          fact("有黑色条纹").

             it-is("食肉动物"):-it-is1("哺乳动物"),

                          fact("有爪"),

                          fact("有犬齿"),

                          fact("目盯前方"). 


l产生式规则的程序语言实现         

 it-is("食肉动物"):-it-is1("哺乳动物"),

                              fact("吃肉").

            It --is1("哺乳动物"):-fact("有奶").

            It --is1(哺乳动物):-fact(有毛发).

     对于这种规则表示形式,可以不用再编写推理机程序,而可直接利用PROLOG自身的推理机,进行推理。例如,当再给出如下的事实:    

            fact("黄褐色").

            fact("有黑色条纹").

            fact("吃肉").

            fact("有奶").

和目标:

animal--is(Y).

则程序运行后的结果就是:

Y=老虎

但如果把上面的规则表示成如下的形式: