故障诊断专家系统研究之五-----推理机制及可信度算法

 

推理机制及可信度算法

在第三章和第四章中讨论了如何表示燃气轮机专家的知识以及如何把这些知识存储到知识库之中,即关于知识表示和知识库的问题,而故障诊断专家系统的另一个核心组件就是基于知识的诊断推理机。本章在前两章讨论的知识表示和知识库的基础之上,以正反向相结合的混合推理方式实现诊断推理机,并针对本文提出的知识库模型对混合推理方式的控制策略作了改进,以广度优先索实现正向推理,以深度优先搜索实现反向推理,提高了推理机的效率。此外根据燃气轮机故障现象和故障原因之间的不确定对应性,溶合了不精确推理的思想,因此,还介绍了本文采用的一个可信度算法。 

第一节   推理机概述

本文讨论的推理机是故障诊断推理机,它实际上是计算机中的一组智能程序,包括推理方式和控制策略两个部分。推理过程主要解决的问题是,在问题求解的每一状态下,如何控制知识的选择和运用。知识的运用称为推理方式,知识的选择过程称为控制策略。推理机的任务是运用给定的推理方式和控制策略从知识库中选择有关专家知识,针对用户提出问题或目前监测到的异常现象,作出相应的解答。

   推理方式

推理方式按照知识的确定性程度分,有精确推理和不精确推理;按照推理过程的方向分,有正向推理、反向推理和正反向混合推理。

1.   正向推理(forward reasoning     正向推理是一种从证据到结论的推理方法,也称之为数据驱动策略。

运用正向推理构成的推理机一般应具备以下功能:

1   根据用户提出的前提事实或目前监测到的异常情况,知道如何选用知识库中的知识;

2   将选用的知识及经过推理得出的结论(包括中间结论)保存在临时存储器中,以备给用户解释之用。

3   能够判断推理何时结束。

2.   反向推理(backward reasoning)反向推理是一种从结论到证据的推理方法,它是根据用户的问题或目前监测到的异常情况提出一个假设,然后到知识库之中去寻找支持这个假设成立的证据,若证据存在,则假设成立。反之则否。这种推理方式由于是从结论到证据,故又称为目标驱动策略。

运用反向推理构成的推理机一般应具备以下功能:

1   能根据用户提出的问题,作出相应的假设,并能判断此目标的真假。

2   如假设成立,将结果告知用户并作出解释。

3   若假设不成立,则重新作出假设,并能在知识库之中搜索该假设成立的证据。

4   能判断推理何时结束。

3.   正反向混合推理(global reasoning  正反向混合推理则是一种从证据到结论,再由结论到证据的综合推理方法。即

证据Þ       结论Þ证据 Þ结论

其推理过程是:先根据用户提供的前提事实,通过正向推理,帮助系统参考结论,再运用反向推理,进一步寻找支持该结论成立的证据,如此反复循环直到推理成功或失败为止。

不论是正向推理、反向推理还是正反向混合推理,都有精确推理和不精确推理之分。

4.   精确推理     精确推理是指经过推理得出的结论要么为真,要么为假。在这种推理过程之中,运用到的知识或涉及到的推理规则,都是客观世界中存在的必然事实,证据和结论之间,都有确定的因果关系。

例如,当压气机的出口压力过高而进口压力过低时,那就意味着压气机压比必然过高。

5. 非精确推理(Inexact Reasoning)非精确推理主要用于某些事实的前提和因果关系都并非肯定的场合,这在诊断型、预测型的专家系统中常会用到。其共同的特点是:利用客观世界中某些不完善的、或不确切的事实和资料、以及不确定的因果关系进行推理,得出某些近乎合理的结论。

在燃气轮机故障诊断方面,也存在大量非精确和不完善的专家经验知识,因而经过推理得到的结论,也不是完全肯定的,作为最终结论或决策,推理机必须给出结论的可信度。

非精确推理的主要理论基础是概率论。由于在某些领域,尚未获得大容量的样本空间,以及其它一些原因,使得纯概率论的方法运用受到某些限制。为此,专家系统的建造者们提出了许多改进的理论模型与经验公式,以处理不确定性问题。非精确推理是专家系统的一个重要问题,人们尚处在探索阶段,对已提出的一些模型和方法亦有待进一步完善。

  控制策略(control strategy

控制策略主要指推理方向路线的控制及其推理规则的选择策略。单纯的正、反向推理,在目标的搜索上常常具有较大的盲目性。在一个庞大的知识库(样本空间),盲目地搜索问题的求解目标,将影响系统的工作效率。因此,推理的路线和推理的规则要求要具有启发性,使之能有效缩短推理过程,加快目标的收敛聚焦速度。

在专家系统中,根据搜索空间的大小,目前常用下述两种控制策略:

1)深度优先策略;

2)广度优先策略;

 

第二节   推理方式的选择

如前所述,推理方式包括正向推理、反向推理和正反向混合推理,而其中每一种方式均有精确和不精确两种模式。但不是任何一种方式对某一领域的所有问题都有效,在某些具体应用领域及特定环境下,有的适合正向推理,有的适合反向推理,也有的适合正反向混合推理。这就是说,对某些具体的应用领域,不能事先预定一种一成不变的推理方式,而是要随着问题的展开,根据问题的具体特征和当时的环境,动态地选择和执行某一种合适的推理方式,然后再完成其推理过程。

本节对上述三种推理方式作一论述,对各自的特点作一比较。然后根据本文所讨论的燃气轮机具体应用领域选择本文所采用的推理方式。至于其中不精确推理的成分,将在可信度算法中予以描述。

   正向推理

正向推理又称为数据驱动策略。其基本思想是,将目前已知的初始状态作为节点置于黑板(又称动态数据库、工作存储器,用来存放推理的中间状态和最终结果。由于推理过程的动态性,导致推理的中间结果是多变的,即是可擦可写的,故形象地称之为黑板)之中,根据一定的搜索策略到规则库中获取下一条可用的规则,用该条规则的前件同黑板中的所有节点逐一匹配,若匹配成功,则该条规则可用,将其后件加入黑板,然后继续搜寻规则库,寻找下一条可用规则。若匹配不成功,放弃该规则,同样到规则库中寻找下一条可用规则,并导致新的匹配过程。如此循环往复,直至没有规则可用或黑板不再改变为止。正向推理方式如图51表示。基本算法可用形式语言描述为:

Procedure  Forward_reasoning(Kb,Dynamic_DB)

  BEGIN

        S    SCAN1(Kb,Dynamic_DB)

        While (NOT (EMPTY(S)) AND  (CHANGED(Dynamic_DB)) do

          BEGIN

                Conclusion      GET_CONCLUSION(S)

                ADD Conclusion  TO  Dynamic_DB

               S     SCAN1(Kb,Dynamic_DB)

              END

  END                         

这里,Kb为规则库,Dynamic_DB为黑板,函数SCAN1的功能是到Kb中搜索前件同Dynamic_DB相匹配的规则集S。循环体的功能是将S中规则的后件取出并加入到黑板之中,同时再次扫描规则库,准备下一轮循环。该过程一直持续到找不到匹配的规则(EMPTY(S)为真)或者黑板内容不再改变为止(CHANGED (Dynamic_DB)  为假)。这种单纯的正向推理方式的主要优点是,用户可以主动提供有关问题的信息,而不必等到系统要求时才提供,因为那样会给推理机带来相当大的时间迟滞性;正向推理的不足之处是知识的选择过程似乎是在整个规则库漫无目标地游弋,从而导致系统求解过程中会执行许多与目标无关的无效操作。因为规则库中并非每一条规则可用于目前推理进程,当规则库较大时,正向推理机的相当时间耗费在排除无效的规则上。因而,正向推理的效率较低。

 

  反向推理

反向推理的基本思想是,先根据目前黑板中的初始状态节点,提出一个合理的假设目标,然后依据一定的搜索策略在规则库中搜寻那些其后件部分同该目标相匹配的规则集,检查该规则集中每条规则的前件部分,如果某条规则的前件部分所含有的所有条件项均存在于黑板之中,则把该规则的结论部分(即目前的假设目标)加入到黑板之中,从而该目标被证明有效。否则,把规则的条件项作为新的子目标,递归执行上述过程,直到各“与”关系的子目标全部出现在黑板之中,或者各“或”关系的只目标中有一个出现在黑板之中,则目标被求解。如果子目标不能被分解而且黑板不能满足上述要求时,那么先前假设的目标不成立,推理机必须作出新的假设。反向推理方式如图52所示。基本算法可用形式语言描述为:

Procedure  Backward_reasoning(Kb,Dynamic_DB)

  BEGIN

           Goal         GET_GOAl

           S    SCAN2(Kb,Goal)

While (NOT (EMPTY(S)) AND (NOT(Goal or Sub_goal is found)) do

         BEGIN

                    Condition      GET_CONDITION(S)

                  MATCH  Condition  WITH  Dynamic_DB

                  IF  MATCH  Is  Successful  THEN

                          ADD  Goal  TO  Dynamic_DB

                  ELSE

                    Sub_goal     GET_SUB_GOAL

                         S     SCAN2(Kb,Dynamic_DB)

             END

   END                   

 

51    正向推理方式流程图

 

52 反向推理过程流程图

 

这里,GET_GOAL函数根据目前状态提出假设目标GoalSCAN2函数到规则库中搜索后件同假设目标Goal相匹配的规则集S。循环体则取出规则集S中规则的前件,为并同黑板相匹配,如若成功,便将Goal加入黑板,否则分解目标Goal子目标Sub_goal,同时再次搜索规则库,准备为下一轮循环。上述过程一直持续到无规则可匹配或假设目标被发现为止。

反向推理的难点在于如何作出假设目标。如果假设目标不合理,则会让推理机执行无效的推理,因为推理机最终会将该假设目标推翻。靠单纯的反向推理则不可能提出合理的假设,因此,在进行反向推理之前,系统必须启动一次正向启发式搜索以求得假设目标。而且在反向推理过程中,当假设目标与某条规则的后件相匹配之后,该条规则可能会有多个前件,因而会再生出多个子目标,每个子目标在匹配过程中又可能再生出若干个子目标。如果出现子目标A的子目标BA的父目标时,其推理过程便会陷入死循环。发生这种情况后,就应对规则进行相容性检查,关于这一点,本文第六章提出了一个解决办法:即在知识获取时,就对知识库进行相容性检查,把由于知识的不相容性而导致推理出现循环的现象扼杀在摇篮之中。

       反向推理的一个显著优点是,不用寻找和不必使用那些与假设目标无关的知识,推理过程的方向性很强。不足之处在于初始目标的选择往往较为盲目,必须借助于正向启发式搜索来选择初始目标。

 

  正反向混合推理

正向推理和反向推理各有其优缺点,它们是控制策略的两种极端方法。正向推理和反向推理两种策略同时控制下的推理称为推理。这种推理的基本思想是综合正向推理和反向推理的优点,先通过正向推理帮助选择初始目标,然后通过反向推理进一步求证目标,或者正向推理和反向推理同时进行,在某个中间状态相交,满足一致性条件时终止。

 

               

53 混合推理过程示意图

 

采用这种正反向混合推理,既可以避免正向推理的盲目性,又可避免反向推理中初始目标选择的盲目性,使两种推理互为补充。这种推理过程的示意图如图53所示,其基本思想可用形式语言描述如下:

PROCEDURE   Mixed_reasoning(Kb,Dynamic_DB)

   BEGIN

             REPEAT

             Goals      Forward_reasoning(Kb,Dynamic_DB)

                G       Choose_Goal(Goals)

                P        Backward_reasoning(Kb,Dynamic_DB)

             UNTIL  P is TRUE or (Goals is Empty)

      END

上述程序含有两种算法:即先根据用户提供的初始状态信息(KB,Dynamic),通过正向推理提供一组参考目标(Goals),再由Choose-Goal过程决定初始目标G的选择,然后通过反向推理找出使目标G成立的证据P,如果在黑板中存在P,则初始目标G亦为真,G即为问题的解。上述过程一直持续到找到证据P或者找不到目标集为止。

 

四、本文采用的推理方式

上面介绍了三种常用的推理方式,并分析了每种方式的优点和不足之处。作为总结,以表格的方式描述如下:

 

推理方式名

优点

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值