基于自主运行体系结构的通用推理引擎设计
2017-09-14严云红程云龙彭立章
刘 博,严云红,程云龙,彭立章,陈 元
(上海宇航系统工程研究所,上海 201109)
基于自主运行体系结构的通用推理引擎设计
刘 博,严云红,程云龙,彭立章,陈 元
(上海宇航系统工程研究所,上海 201109)
为实现基于规则的决策推理,根据自主运行技术的特点对一种基于航天器自主运行体系结构的通用推理引擎设计进行了研究。该体系结构以策略与机制分离为目标,对系统策略、资源和数据进行统筹管理,自主运行系统包括决策系统、系统策略、系统输入和系统输出四部分。在自主运行体系结构的基础上,对传统Rete算法进行改进,优化传统Rete网络结构,取消了Not节点,改变了原Rete算法中的是非逻辑判断,合并了Entry节点、Token节点和适配节点功能。给出了通用推理引擎的推理网络结构,设计了推理算法以实现事实序列的快速推理。某航天器数管分系统的程控功能样例显示:根据飞行过程中产生的事实序列,用设计的推理引擎推理出级箭分离、中继加电、开发动机、关发动机等事件的发生,由此验证了通用推理引擎的有效性。
自主运行; 推理引擎; Rete算法; 推理网络; 模式匹配; 通用化; 规则库; 体系结构
0 引言
自主运行技术是美国等在20世纪80年代发展的一种航天器智能技术[1-2]。该技术通过利用人工智能等现代控制方法实现航天器的自我管理并完成既定任务,进而解决航天器传统控制方法中对地面遥控依赖过强的问题[3-4]。航天器自主运行技术可通过故障诊断、自主决策等加快对突发事件的响应速度、减少地面干预而降低运行成本。航天器自主运行的目标是在尽量少依赖地面干预的前提下,根据自身状态、外部环境等数据进行决策,控制航天器完成各种任务[5]。规则推理技术是人工智能领域的重要分支,已被广泛用于专家系统、模式识别和系统决策等智能领域,为实现高智能、全自动自主运行的目标,需有强大的推理能力作为支撑。规则推理技术已在国外航天器上得到了验证,深空探测1号(DS-1)、太空技术7号(ST-7)等探测器都采用规则推理技术实现了航天器的自主运行控制[5-6]。未来,航天器自主运行将会成为一种发展趋势,可用于程控、健康管理、任务管理,以及制导、导航与控制(GNC)等领域。
近年来,智能推理技术发展迅速,Jess,JBoss Rules等商用推理引擎不断推出,但国内并没有成熟推理引擎的案例。航天领域中的故障诊断、规划决策等传统推理系统的功能单一,针对特定任务和功能设计,且多使用基于符号系统的规则模型,需设计专门的解释器配合符号系统使用,无法实现通用化推理[7-8]。从通用化、组件化的角度出发,基于自主运行体系结构,采用一种通用化推理引擎,能实现自主运行系统的决策推理功能,通用推理引擎根据知识库编译推理网络,从事实序列中挖掘已知事件的匹配情况,整个推理过程与业务逻辑无关,可有极高的适用性和灵活性,能用于数管程控、流程控制、系统故障诊断等领域。本文对一种基于自主运行体系结构的通用推理引擎设计进行了研究,介绍了自主运行体系结构和自主运行流程,给出了基于改进型Rete算法的推理引擎设计方法,用仿真演示平台和模拟应用案例验证该推理引擎的有效性,并对通用推理引擎在工程中的应用及未来发展进行了讨论。
1 自主运行体系结构
我国现有航天器多由多个相对独立的分系统组成,每个分系统负责实现系统的一部分功能,通过分系统间的协作实现航天任务[5]。该结构因其界面清晰、可靠性高等优点一直被广泛应用。传统的总体+分系统结构中各分系统的数据和资源相对独立,每个分系统独自管理内部的数据和资源。随着综合电子技术的发展,整器的数据和资源逐步由分布式管理转变为统筹式管理,自主运行体系结构是在总体+分系统结构的基础上,以策略与机制分离为目标,对系统策略、资源和数据进行统筹管理后形成的一种体系结构。其中:策略是按规则的格式要求对实际系统应用的业务逻辑进行抽象,形成规则库;机制是通用化、模块化的组件集合,用于管理规则库、数据流处理、推理引擎等核心组件。自主运行体系结构由决策系统、系统策略、系统输入和系统输出四部分组成,如图1所示。
图1 自主运行体系结构Fig.1 Autonomous architecture
在自主运行体系结构中,根据工程实际任务中的业务逻辑制定系统策略,并基于系统策略维护决策系统。在系统运行过程中,实时对来自系统输入的外围设备和系统内部的状态数据进行预处理,送决策系统决策,并将决策系统生成的指令或动作通过系统输出发送或执行。
系统策略是对各分系统实际任务的抽象和梳理形成的规则集合。在系统设计时,按决策系统中定义的数据类型,将各分系统的实际功能分解成若干条规则,并将这些规则注册到策略库。
系统输入是所有待处理数据的集合,包括表征当前软件运行情况的状态数据、来自各传感器或外部设备的遥测数据、接收到的遥控指令,以及系统时间等输入数据。
系统输出是所有外部操作的集合,包括总线通信、阀门、火工品、伺服机构控制、加热器等,与传统航天器中的执行部件集合对应。
决策系统是自主运行体系的关键,为系统自主运行提供了一套通用化推理机制,可适于不同航天器。决策系统包括策略库、事件库、事实库、事实队列、推理引擎、事件发生器和执行器。在决策系统中,数据以规则、事件和事实的形式在各组件间流动。
定义1事实,用于表示系统某个属性的当前状态。可用三元组表示为
Fact=〈F_Type,Property,F_Value〉
式中:F_Type为事实类型;Property为该事实表征的系统属性,规定了该事实类型的数据源;F_Value为该事实的数值,代表属性当前的状态。
定义2事件,代表系统当前的情况,是一个复合型的状态。可用三元组表示为
Event=〈E_Type,Process,E_Value〉
式中:E_Type为事件类型,用于区分系统中发生的不同事件;Process为当系统中发生该事件时的处理方法;E_Value为该事件发生的程度。
定义3表达式,是规则中的一个条件。可用三元组表示为
Exp=〈F_Type,Compare,Value〉
式中:F_type为事实类型;Compare为判断内容,包括大于、等于和小于;Value为Compare的参考值。
定义4规则,是一组条件的集合,是对系统策略的抽象表示方法。可用三元组表示为
Rule=〈R_ID,E_Type,{Exp}〉
式中:R_ID为系统中该条规则的唯一标识;E_Type为事件类型,表示当{Exp}全部满足条件时系统发生的事件;{Exp}为表达式集合,规定了构成事件的事实类型和逻辑关系。规则定义了事件与事实间的某种逻辑或条件关系,具复合性[9]。
策略库存储和维护了系统根据实际任务定义的全部规则。事件库存储和维护系统中的全部事件类型,并对发生事件后的处理方法进行管理,建立事件类型与处理方法间的映射关系。事实库存储和维护系统中的全部事实类型,建立系统输入与事实类型间的映射关系。事实发生器对系统输入数据进行融合,根据系统输入的不同类型数据,事件发生器查询事实库中的事实类型,将系统输入数据抽象成一个事实,加入事实队列。事实队列为推理引擎提供事实数据缓存的服务。推理引擎是决策系统的核心组件,根据策略库中的规则集合编译出推理网络,并不断从事实队列中读取最新的事实,根据事实在推理网络中的流动情况判断是否发生某一事件。执行器是决策系统向外输出的接口,当推理引擎推理出某事件发生后,执行器会根据事件类型查询事件库,获得该种事件类型对应的处理方法,处理方法包括发送相关指令或将事件再次抽象成事实加入事实队列继续推理。
2 通用推理引擎设计
推理引擎是决策系统中最核心的组件,也是实现系统自主运行的关键部分。基于自主运行体系结构的推理引擎应具备以下特点:实时性强,可快速推理;对系统资源消耗不宜过大;策略库中规则数量适中;具备通用化的特点,通过配置不同的策略库可实现不同的任务和功能。
Rete算法是FORGY提出的一种基于规则的快速推理算法[10]。Rete算法的优点是结构灵活、准确高效等,被广泛用于CLIPS等专家系统中[11]。因航天器系统与其他规则系统存在差异,导致传统Rete算法在用于航天器系统时存在不足:传统Rete算法中的Alpha节点智能进行“等值”判断,而航天器系统中需要对“多值”状态进行判断和处理;传统Rete算法不支持“或运算”,不能覆盖所有逻辑运算。因此,本文对传统Rete算法进行了改进:简化Alpha网络,取消Not节点,将原算法中“非”运算的规则改为“大于或小于”运算;允许Alpha节点对数值型数据进行算术逻辑运算,改变了传统Rete算法中的“是、非”逻辑判断;简化Beta网络的复杂度,合并了原Entry,Beta,Token节点的功能。
2.1推理网络结构
本文的推理引擎中,推理网络分为Alpha网络、Beta网络和P网络三部分。其中:Alpha网络包含根节点(R)、类型节点(T)和Alpha节点(A);Beta网络由Beta节点(B)组成;P网络由终结节点(P)组成。此处:
a)根节点是推理网络的唯一入口,事实数据从根节点流入推理网络进行推理;
b)类型节点对流入推理网络的事实数据进行第一次筛选,允许类型相符的事实流入类型节点对应的Alpha节点集合;
c)Alpha节点实现了规则定义中的条件判断部分,与传统Rete算法只能进行“是、非”条件判断相比,推理引擎中的Alpha节点支持“大于、等于、小于”三种判断,可覆盖更多的条件判断情况;
d)Beta节点用于保存推理过程的临时结果,在简化推理网络复杂程度的同时提高了推理效率;
e)终结节点是推理网络的出口,每个终结节点与规则中的事件类型一一对应,经过Beta网络推理形成的数据组合流入终结节点,意味着系统当前发生终结节点对应类型的事件,可根据策略进行相应的处理。
本文设计的推理网络与传统Rete算法的区别有两点。首先,传统Rete的Alpha节点仅能进行“是、非”的判断,即布尔型数据的判断,而本文的Alpha节点可判断“大于、小于、等于”的关系,即整数型数据的判断,覆盖条件更广;其次,本文的Beta节点合并了传统Rete中的Beta,Token和适配节点功能,降低了推理网络的复杂度,提高推理效率。推理网络如图2所示。
图2 推理网络Fig.2 Reasoning network
2.2推理算法设计
推理引擎包含编译推理网络和执行推理两个过程。推理网络的编译算法见表1。推理引擎执行推理的算法见表2。
表1 编译算法
表2 推理算法
3 应用
通用推理引擎有很强的适用性,可在数管、热控、故障诊断等中使用。本文对某航天器飞行程序进行简化,通过数管分系统中的程控功能验证通用推理引擎的有效性。设该航天器飞行程序(不考虑飞行程序的合理性)见表3。
表3 飞行程序
航天器与运载火箭在起飞后与约606 s级箭分离;判断到级箭分离信号有效2 s后,若中继单元电压正常,则执行中继加电;当航天器在级箭分离的2 400 s内运行到纬度幅角大于100°时起动发动机;开机运行100 s、系统运行3 000 s后,若纬度幅角大于200°并完成了卫星释放,则关闭发动机。按决策系统中定义的数据类型,对表3的飞行程序进行抽象。
定义事实类型7种:F1=〈级箭分离信号,遥测采集板,Null〉;F2=〈系统时间,软件状态,Null〉;F3=〈级箭分离时间,软件状态,Null〉;F4=〈中继单元电压,测控仪,Null〉;F5=〈纬度幅角,GNC,Null〉;F6=〈开机时间,软件状态,Null〉;F7=〈卫星释放信号,遥测采集板,Null〉。
定义事件4种:E1=〈级箭分离,{开始级箭分离计时},Null〉;E2=〈中继加电,{中继单元供电、中继发射机开机},Null〉;E3=〈开发动机,{发送开机指令、开始开机计时},Null〉;E4=〈关发动机,{发送关机指令、停止开机计时、开始关机计时},Null〉。
定义表达式10条:Exp1=〈F1,=,1〉;Exp2=〈F2,>,600〉;Exp3=〈F3,=,2〉;Exp4=〈F4,<,1〉;Exp5=〈F5,>,100〉;Exp6=〈F3,<,2 400〉;Exp7=〈F6,>,100〉;Exp8=〈F5,>,200〉;Exp9=〈F7,=,1〉;Exp10=〈F2,>,3 000〉。
定义规则4条:R1=〈发现级箭分离,E1,{Exp1 & Exp2}〉;R2=〈触发中继加电,E2,{Exp3 & Exp4}〉;R3=〈触发开发动机,E3,{Exp5 & Exp6}〉;R4=〈触发关发动机,E4,{Exp7 & Exp8 & Exp9 & Exp10}〉。
由此建立了决策系统中策略库、事件库、事实库,编译后形成推理网络如图3所示。
图3 飞行程序推理网络Fig.3 Reasoning network of flight program
设航天器运行过程中,推理引擎接收到的事实序列见表4(不考虑事实序列的真实性与合理性)。
分析上述事实,由事实10、11可推理出级箭分离事件(E1);由事实14、15可推理出中继加电事件(E2);由事实19、20可推理出开发动机事件(E3);由事实25~28可推理出关发动机事件(E4)。推理引擎仿真平台推理结果如图4~7所示。由图4~7
表4 事实序列
推理结果可知:推理引擎实现了根据策略库和事实序列完成事件推理的功能。
图4 事件级箭分离发生Fig.4 Event of separation
图5 事件中继加电发生Fig.5 Event of relay power on
图6 事件开发动机发生Fig.6 Event of engine power on
图7 事件关发动机发生Fig.7 Event of engine power off
4 结束语
本文介绍了一种基于自主运行体系结构的通用推理引擎的设计方法,该推理引擎对传统Rete算法进行改进,可根据策略库编译生成与航天器功能相对应的推理网络,并从大量事实数据中快速推理出某种事件的发生。通用推理引擎具强适用性,可针对不同航天器的实际功能需求设计各自的策略库、事件库和事实库,将推理引擎用于程控、GNC、热控、机构控制等功能。虽然通用推理引擎满足了推理正确性要求,但现有推理算法和成熟的推理系统均适于地面系统使用,推理过程消耗的时间资源和空间资源较大,无法直接用于空间数据系统,同时推理效率还有待提升。后续将针对推理性能优化和推理引擎小型化进行研究,以使其可用于工程研制中。
[1] PELL B, BERNARD D E, CHIEN S A. An autonomous spacecraft agent prototype[J]. Autonomous Robots, 1988(5): 29-52.
[2] STOTT D. The near command and data handling system[J]. Johns Hopkins APL Technical Digest, 1998, 19(2): 220-334.
[3] 石书济. 深空探测与测控通信技术[J]. 电讯技术, 2001(2): 1-4.
[4] 代树武, 孙辉先. 卫星运行中的自主控制技术[J]. 空间科学学报, 2002, 22(2): 147-153.
[5] 代树武, 孙辉先. 航天器自主运行技术的进展[J]. 宇航学报, 2003, 24(1): 17-22.
[6] 胡圣波, 孟新, 赵娜. 基于模型的航天器自主运行智能执行体[C]∥ 2007年中国智能自动化会议. 兰州: 中国自动化学会智能自动化专业委员会, 2007: 1061-1065.
[7] 许东. 地空导弹混合智能故障诊断专家系统的设计与实现[D]. 西安: 西北工业大学, 2002.
[8] 夏勇. 基于故障树的运载火箭故障诊断专家系统[D]. 重庆: 重庆大学, 2007.
[9] LI Quan-long, JIN Yan. Smart home service based on event matching[C]// 10thInternational Conference on Fuzzy Systems and Knowledge Discovery. Dalian: [n. l.], 2013: 762-766.
[10] XIAO Ding, ZHONG Xiao-an, Improving Rete algorithm to enhance performance of rule engine systems[C]// Proceedings of the International Conference on Computer Design and Applications. Qinhuangdao: [n. l.], 2010: 572-575.
[11] YANG Ping-le. IRETE: an improved Rete multi-entity match algorithm[C]// Proceedings of the International Conference on Electronics, Communications and Control. Ningbo: [n. l.], 2011: 4363-4366.
DesignofGeneralReasoningEngineBasedonAutonomousArchitecture
LIUBo,YANYun-hong,CHENGYun-long,PENGLi-zhang,CHENYuan
(Aerospace System Engineering Shanghai, Shanghai201109, China)
To achieve the reasoning and decision-making based on rules, the design of general reasoning engine based on autonomous architecture was studied according to the characteristics of autonomous architecture in this paper. The target of the autonomous architecture is to separate strategy and mechanism, which manages the strategies, resources and data of the system. The architecture consists of four parts of decision-making system, system strategy, system input and system output. According to the autonomous architecture, the Rete algorithm was improved by optimizing the traditional Rete network, banning Notnode, changing logic reasoning of yes-no and combining the function of EntryNode, TokenNode and AdapterNode. The reasoning structure of general reasoning engine was presented. The reasoning algorithm was designed to achieve the fast reasoning of the fact sequence. The application sample of program controlling function of a spacecraft data management subsystem showed that the happening of events of separation, relay power on, engine power on and engine power off could be reasoned by the general reasoning engine designed according to the fact in spacecraft flight, which verified the validity of the reasoning engine.
autonomous; reasoning engine; Rete algorithm; reasoning network; pattern matching; generalization; rule library; architecture
1006-1630(2017)04-0118-07
2016-09-21;
:2016-11-11
国家自然科学基金资助(61573247)
刘 博(1988—),男,硕士,主要研究方向为嵌入式系统设计、智能系统研究。
V423
:ADOI:10.19328/j.cnki.1006-1630.2017.04.014