推理机制及可信度算法
在第三章和第四章中讨论了如何表示燃气轮机专家的知识以及如何把这些知识存储到知识库之中,即关于知识表示和知识库的问题,而故障诊断专家系统的另一个核心组件就是基于知识的诊断推理机。本章在前两章讨论的知识表示和知识库的基础之上,以正反向相结合的混合推理方式实现诊断推理机,并针对本文提出的知识库模型对混合推理方式的控制策略作了改进,以广度优先索实现正向推理,以深度优先搜索实现反向推理,提高了推理机的效率。此外根据燃气轮机故障现象和故障原因之间的不确定对应性,溶合了不精确推理的思想,因此,还介绍了本文采用的一个可信度算法。
第一节 推理机概述
本文讨论的推理机是故障诊断推理机,它实际上是计算机中的一组智能程序,包括推理方式和控制策略两个部分。推理过程主要解决的问题是,在问题求解的每一状态下,如何控制知识的选择和运用。知识的运用称为推理方式,知识的选择过程称为控制策略。推理机的任务是运用给定的推理方式和控制策略从知识库中选择有关专家知识,针对用户提出问题或目前监测到的异常现象,作出相应的解答。
一 推理方式
推理方式按照知识的确定性程度分,有精确推理和不精确推理;按照推理过程的方向分,有正向推理、反向推理和正反向混合推理。
1. 正向推理( forward reasoning ) 正向推理是一种从证据到结论的推理方法,也称之为数据驱动策略。
运用正向推理构成的推理机一般应具备以下功能:
( 1 ) 根据用户提出的前提事实或目前监测到的异常情况,知道如何选用知识库中的知识;
( 2 ) 将选用的知识及经过推理得出的结论(包括中间结论)保存在临时存储器中,以备给用户解释之用。
( 3 ) 能够判断推理何时结束。
2. 反向推理( backward reasoning )反向推理是一种从结论到证据的推理方法,它是根据用户的问题或目前监测到的异常情况提出一个假设,然后到知识库之中去寻找支持这个假设成立的证据,若证据存在,则假设成立。反之则否。这种推理方式由于是从结论到证据,故又称为目标驱动策略。
运用反向推理构成的推理机一般应具备以下功能:
( 1 ) 能根据用户提出的问题,作出相应的假设,并能判断此目标的真假。
( 2 ) 如假设成立,将结果告知用户并作出解释。
( 3 ) 若假设不成立,则重新作出假设,并能在知识库之中搜索该假设成立的证据。
( 4 ) 能判断推理何时结束。
3. 正反向混合推理( global reasoning ) 正反向混合推理则是一种从证据到结论,再由结论到证据的综合推理方法。即
证据 Þ 结论 Þ 证据 Þ 结论
其推理过程是:先根据用户提供的前提事实,通过正向推理,帮助系统参考结论,再运用反向推理,进一步寻找支持该结论成立的证据,如此反复循环直到推理成功或失败为止。
不论是正向推理、反向推理还是正反向混合推理,都有精确推理和不精确推理之分。
4. 精确推理 精确推理是指经过推理得出的结论要么为真,要么为假。在这种推理过程之中,运用到的知识或涉及到的推理规则,都是客观世界中存在的必然事实,证据和结论之间,都有确定的因果关系。
例如,当压气机的出口压力过高而进口压力过低时,那就意味着压气机压比必然过高。
5. 非精确推理( Inexact Reasoning )非精确推理主要用于某些事实的前提和因果关系都并非肯定的场合,这在诊断型、预测型的专家系统中常会用到。其共同的特点是:利用客观世界中某些不完善的、或不确切的事实和资料、以及不确定的因果关系进行推理,得出某些近乎合理的结论。
在燃气轮机故障诊断方面,也存在大量非精确和不完善的专家经验知识,因而经过推理得到的结论,也不是完全肯定的,作为最终结论或决策,推理机必须给出结论的可信度。
非精确推理的主要理论基础是概率论。由于在某些领域,尚未获得大容量的样本空间,以及其它一些原因,使得纯概率论的方法运用受到某些限制。为此,专家系统的建造者们提出了许多改进的理论模型与经验公式,以处理不确定性问题。非精确推理是专家系统的一个重要问题,人们尚处在探索阶段,对已提出的一些模型和方法亦有待进一步完善。
二 控制策略( control strategy )
控制策略主要指推理方向路线的控制及其推理规则的选择策略。单纯的正、反向推理,在目标的搜索上常常具有较大的盲目性。在一个庞大的知识库(样本空间),盲目地搜索问题的求解目标,将影响系统的工作效率。因此,推理的路线和推理的规则要求要具有启发性,使之能有效缩短推理过程,加快目标的收敛聚焦速度。
在专家系统中,根据搜索空间的大小,目前常用下述两种控制策略:
( 1 )深度优先策略;
( 2 )广度优先策略;
第二节 推理方式的选择
如前所述,推理方式包括正向推理、反向推理和正反向混合推理,而其中每一种方式均有精确和不精确两种模式。但不是任何一种方式对某一领域的所有问题都有效,在某些具体应用领域及特定环境下,有的适合正向推理,有的适合反向推理,也有的适合正反向混合推理。这就是说,对某些具体的应用领域,不能事先预定一种一成不变的推理方式,而是要随着问题的展开,根据问题的具体特征和当时的环境,动态地选择和执行某一种合适的推理方式,然后再完成其推理过程。
本节对上述三种推理方式作一论述,对各自的特点作一比较。然后根据本文所讨论的燃气轮机具体应用领域选择本文所采用的推理方式。至于其中不精确推理的成分,将在可信度算法中予以描述。
一 正向推理
正向推理又称为数据驱动策略。其基本思想是,将目前已知的初始状态作为节点置于黑板(又称动态数据库、工作存储器,用来存放推理的中间状态和最终结果。由于推理过程的动态性,导致推理的中间结果是多变的,即是可擦可写的,故形象地称之为黑板)之中,根据一定的搜索策略到规则库中获取下一条可用的规则,用该条规则的前件同黑板中的所有节点逐一匹配,若匹配成功,则该条规则可用,将其后件加入黑板,然后继续搜寻规则库,寻找下一条可用规则。若匹配不成功,放弃该规则,同样到规则库中寻找下一条可用规则,并导致新的匹配过程。如此循环往复,直至没有规则可用或黑板不再改变为止。正向推理方式如图 5 - 1 表示。基本算法可用形式语言描述为:
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) 为假)。 这种单纯的正向推理方式的主要优点是,用户可以主动提供有关问题的信息,而不必等到系统要求时才提供,因为那样会给推理机带来相当大的时间迟滞性;正向推理的不足之处是知识的选择过程似乎是在整个规则库漫无目标地游弋,从而导致系统求解过程中会执行许多与目标无关的无效操作。因为规则库中并非每一条规则可用于目前推理进程,当规则库较大时,正向推理机的相当时间耗费在排除无效的规则上。因而,正向推理的效率较低。
二 反向推理
反向推理的基本思想是,先根据目前黑板中的初始状态节点,提出一个合理的假设目标,然后依据一定的搜索策略在规则库中搜寻那些其后件部分同该目标相匹配的规则集,检查该规则集中每条规则的前件部分,如果某条规则的前件部分所含有的所有条件项均存在于黑板之中,则把该规则的结论部分(即目前的假设目标)加入到黑板之中,从而该目标被证明有效。否则,把规则的条件项作为新的子目标,递归执行上述过程,直到各“与”关系的子目标全部出现在黑板之中,或者各“或”关系的只目标中有一个出现在黑板之中,则目标被求解。如果子目标不能被分解而且黑板不能满足上述要求时,那么先前假设的目标不成立,推理机必须作出新的假设。反向推理方式如图 5 - 2 所示。基本算法可用形式语言描述为:
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
图 5 - 1 正向推理方式流程图
图 5 - 2 反向推理过程流程图
这里, GET_GOAL 函数根据目前状态提出假设目标 Goal , SCAN2 函数到规则库中搜索后件同假设目标 Goal 相匹配的规则集 S 。循环体则取出规则集 S 中规则的前件,为并同黑板相匹配,如若成功,便将 Goal 加入黑板,否则分解目标 Goal 子目标 Sub_goal ,同时再次搜索规则库,准备为下一轮循环。上述过程一直持续到无规则可匹配或假设目标被发现为止。
反向推理的难点在于如何作出假设目标。如果假设目标不合理,则会让推理机执行无效的推理,因为推理机最终会将该假设目标推翻。靠单纯的反向推理则不可能提出合理的假设,因此,在进行反向推理之前,系统必须启动一次正向启发式搜索以求得假设目标。而且在反向推理过程中,当假设目标与某条规则的后件相匹配之后,该条规则可能会有多个前件,因而会再生出多个子目标,每个子目标在匹配过程中又可能再生出若干个子目标。如果出现子目标 A 的子目标 B 是 A 的父目标时,其推理过程便会陷入死循环。发生这种情况后,就应对规则进行相容性检查,关于这一点,本文第六章提出了一个解决办法:即在知识获取时,就对知识库进行相容性检查,把由于知识的不相容性而导致推理出现循环的现象扼杀在摇篮之中。
反向推理的一个显著优点是,不用寻找和不必使用那些与假设目标无关的知识,推理过程的方向性很强。不足之处在于初始目标的选择往往较为盲目,必须借助于正向启发式搜索来选择初始目标。
三 正反向混合推理
正向推理和反向推理各有其优缺点,它们是控制策略的两种极端方法。正向推理和反向推理两种策略同时控制下的推理称为推理。这种推理的基本思想是综合正向推理和反向推理的优点,先通过正向推理帮助选择初始目标,然后通过反向推理进一步求证目标,或者正向推理和反向推理同时进行,在某个中间状态相交,满足一致性条件时终止。
图 5 - 3 混合推理过程示意图
采用这种正反向混合推理,既可以避免正向推理的盲目性,又可避免反向推理中初始目标选择的盲目性,使两种推理互为补充。这种推理过程的示意图如图 5 - 3 所示,其基本思想可用形式语言描述如下:
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 或者找不到目标集为止。
四、本文采用的推理方式
上面介绍了三种常用的推理方式,并分析了每种方式的优点和不足之处。作为总结,以表格的方式描述如下:
推理方式名 |
优点 |
不足之处 |
正向推理 |
充分利用用户主动 提出的信息 |
盲目地执行许多 无关操作 |
反向推理 |
推理的目的性很强 |
难以提出假设目标 |
混合推理 |
充分利用现有知识, 推理的目的性强 |
控制较为复杂 |
表 5 - 1 三种推理方式比较
观察表 5 - 1 ,显然采用第三种方式 —— 混合推理方式是较为合理的。在对燃气轮机实施故障诊断以前,肯定有一个初始状态存在,否则故障诊断便失去了前提。这个初始状态或者是用户主动提供的故障现象(例如在故障咨询时),或者是系统本身监测到的参数的异常状态(也属于故障现象),因此,首先总是根据系统目前异常状态初步推理出其故障原因(可能不是最终原因,即该原因或许是由其他更深层的原因引起),这一步从故障现象到故障原因的推理,属于正向推理。而第二步,则有两种方案:
1. 以此为基础进一步采取正向推理,直到沿着该方向的正向推理不能进行(找不到匹配的规则)为止。那么真正的故障原因可能包含于此时的推理结果之中,由于故障原因的不确定性(一种故障现象可能对应多个不同的故障原因),因而最终的推理结果可能不止一个,随着正向推理的逐步深入,这种情况会越来越明显。为保证诊断的精度,给燃机维护和管理人员提供一个合理的检修范围,必须根据故障发生而表现出来的其它必然现象是否出现,对事实上没有发生的故障予以排除。而这一过程是从故障原因寻找故障现象(即结论成立的证据)的过程,因而是一个反向推理的过程。
2. 以此为假设目标,采用反向推理,直到找到该假设成立的证据或者否定该假设目标为止。
上述两种方案的根本区别在于何时使用反向推理,即是在正向推理出最终原因之后进行反向验证,还是每正向推理一步就及时地反向验证。先考察一个例子,为叙述简便,该例子以第三章中给出的规则的表示形式描述,且不失一般性,各断言、可信度、行动方案均用字母或字母组合表示。
例 5 - 1 有如下五条规则
该例子可用规则树的形式表示如图 5 - 4 ,为简洁起见,图中忽略了可信度和行动方案。设目前初始状态为 A ,第一步由正向推理找到节点 B 、 C 、 D 三个初步原因,按照方案 1 ,第二步将继续正向推理,以节点 B 为例,找到原因 E ,继续正向推理找到最终的原因 H 、 I 。之后反向推理验证 H 、 I 是否为真正的原因,若为真正原因,则 H 、 I 保留在黑板之中,该方向的推理结束,回溯到 B ,考虑 F ,因为可能还有其它原因。若 H 、 I 被排除,则摘掉以节点 E 为根的子树,从黑板之中剔除节点 E 、 H 、 I ,同样回溯到 B ,考虑 F 。但是如果采用方案 2 ,在第二步立即对节点 B 实施反向推理加以验证,若 B 被排除则推理机可以剔除以 B 为根的子树,免作许多无用功。在大多数情况之下,实际发生的故障数目远远小于推理机推理得出的最终结果的数目。因此,及时地对推理结果予以验证,以避免不必要的后续推理,是很有必要的。特别是随着知识的不断丰富,知识库规模的不断扩大,推理层次会越来越深,因而方案 2 的效果会更加明显。
图 5 - 4 例 5 - 1 的树形结构
综上所述,从推理方式的角度来讲,本文选择了正反向推理相结合的混合推理方式。具体地说,从全局上看是正向推理,从局部上看,每正向推理一步,均要反向推理寻找证据,以验证结论的正确性。因此,这种方式又是一个全局正向、单步反向的过程。
第三节 控制策略的选择
在前面,本文讨论了推理方式的问题,即提出了全局上从现象到原因的正向推理和局部上从原因到现象的反向验证相结合的思想。但是构筑一个完整的推理机仅凭推理方式是不够的,还有一个推理路线的问题。例如,在图 5 - 4 中,当以节点 B 为前提,成功地推理出 E 、 F 之后,是紧接着 E 继续推理,还是会过头来考虑 C 、 D 的情况之后再考虑节点 E ?这种推理路线的选择称为控制策略。
一、深度优先搜索策略
假定在搜索空间(知识库),存在包括初始状态 S 和目标状态 F 在内的树形结构,如图 5 - 5 所示。从图中可以看出,由问题的初始状态出发,到达问题获解的目标状态,存在多种可能的途径(推理路线),并要经历相应的一些中间状态过程(如 A 、 B 、 C ……状态)。按不同的搜索路线进行搜索,从初始状态到达目标状态的时间复杂性不是相同的。
图 5 - 5 深度优先搜索法
所谓深度优先搜索策略,是从起始状态节点 S 出发,按照从子节点向子节点的子节点的方向进行纵深搜索(如图 5 - 5 中的虚线所示),并逐一检验这些节点是否为目标点,当到达最后一个节点尚未发现目标时,则又依次返回上层父节点的另一子节点再进行搜索,如此重复,直到找到目标为止。 这种搜索路线,体现了优先向树形结构深度方向发展的趋势,故称为深度优先搜索方法。图 5 - 5 中采用深度优先搜索法由节点 S 经左子树到达节点 I 的路径是: S — A — C — G — C — H — L — H — C — A — D — A — S — B — E — I 。
深度优先搜索方法的特点是:易于实现,但很冒险。如果树形结构层次较多,它有可能错过目标所在的层次而深入到下面去搜索。因此这种方法虽然简单,但效率却难保证。
二、广度优先搜索策略
如图 5 - 6 所示,所谓广度优先搜索策略,就是从起始状态 S 开始,依次按层(状态节点在树形图中的层次)从左到右逐一搜索,直到找到目标状态为止。
广度优先搜索方法的具体过程如下:从起始状态节点 S 出发,首先访问与 S 节点相邻接的第 I 层节点,看是否有目标状态节点存在,对第 I 层节点的测试按先生成先测试的原则进行(图 5 - 6 中从左至右虚线所示),即先测试 A 再测试 B ……,如果都不是求解目标,则将搜索过程转移到第 II 层节点进行测试,如此继续进行下去,直到找到目标状态为止。图 5 - 6 中由节点 S 经广度优先搜索到达节点 I 的路径是: S — A — B — C — D — E — F — G — H — I 。
图 5 - 6 广度优先搜索法
广度优先搜索的特点是:保守、可靠。即使在树形结构比较复杂的情况下,它也能通过逐层遍历的方式获得目标状态,但是耗时可能会更多,因而适合于某些搜索空间不大的场合。
三、本文采用的控制策略
上面讨论了深度优先搜索法和广度优先搜索法,为了能清楚地了解两种方式的优点和不足之处,这里以表格的方式列出如下:
控制策略名称 |
优点 |
不足之处 |
深度优先搜索法 |
易于实现 |
不安全、冒险 |
广度优先搜索法 |
安全可靠 |
复杂、耗时 |
表 5 - 2 两种搜索方式的比较
推理机制由推理方式和控制策略构成。在确定了推理方式之后,控制策略的选择必须同推理方式紧密结合,保持逻辑上的一致性,这样推理机的设计显得紧凑而严密。在前面提出的全局正向、单步反向的混合推理方式的基础之上,本文采用深度优先搜索和广度优先搜索相结合的思想,以深度优先搜索法实现全局正向推理,以广度优先搜索法实现局部反向推理。充分利用两种方式的优点,取长补短,以深度优先搜索法易于实现的特点弥补广度优先搜索法复杂耗时之不足;以广度优先搜索法安全可靠的优点弥补深度优先搜索法不安全的冒险因素。
还是回到图 5 - 4 中,考察例 5 - 1 ,看看这两种搜索方法是如何运用到两种推理方式上的。设初始状态为 A ,往后推理 6 步,其中正反向推理各 3 步:
第一步:正向推理 由现象 A 往
发表评论
评论