一种面向海量流式数据的分布式实时规则推理方法和装置制造方法及图纸

技术编号:18972839 阅读:74 留言:0更新日期:2018-09-19 03:49
本发明专利技术涉及一种面向海量流式数据的分布式实时规则推理方法和装置。该方法包括:建立规则集对应的规则图;将规则图转化成数据操作图;根据数据操作图生成推理作业;根据截止期设置推理作业的优先级,将推理作业按照优先级递减顺序放入推理作业就绪队列;选择优先级最高的推理作业,创建推理任务,分配并执行推理任务;推理作业执行结束时将其从推理作业就绪队列中删除,并判断推理作业就绪队列是否为空队列:若不是空队列则继续执行;若是空队列则表示已完成输入事实与所有规则的匹配。本发明专利技术可在分布式环境下完成海量实时数据与规则的匹配,并使规则尽量在其截止期前完成,可用于具有时间约束的物联网应用,从而提高了实时物联网应用的智能化。

【技术实现步骤摘要】
一种面向海量流式数据的分布式实时规则推理方法和装置
本专利技术属于规则系统和实时
,具体涉及一种面向海量流式数据的分布式实时规则推理方法和装置。
技术介绍
规则推理将领域知识表示为规则,通过规则与事实的匹配,触发并执行规则,从而进行自动决策。它已被广泛应用于医疗诊断、地质勘探、智能决策等各种专家系统中。近几年来,实时系统对智能化的需求日益增加,它们需要能够感知外部环境,并对其进行自动响应。在这种情况下,实时系统需要具有强大的推理能力,可以通过一系列传感器采集外部环境数据,对连续不断的事件流进行监视,从中识别出需要关注的场景,并进行自动决策,从而实时地执行动作对识别出的场景做出响应。因此,规则推理也开始应用于生产过程监控、高速列车在线故障诊断、电网自愈控制以及金融交易风险预警等实时系统。由于实时系统具有时间约束,系统中的任务需要在其截止期前完成,因此,规则推理中的规则也必须具有截止期(在这里,从与某条规则相关联的所有数据被系统接收开始到该规则所定义的动作完成之间的时间间隔被定义为该规则的推理延迟,而规则推理延迟的上限则被定义为该规则的截止期)。例如,在工厂仓库的火灾监测中,当温度过高、湿度过低和烟雾浓度异常时,则判断可能发生火灾并发出报警信息。由于系统从接收到温度湿度烟雾等数据到推理出火灾是否发生,并发出警报需要在10秒内进行完成,那么相应规则的截止期即为10秒。随着物联网技术的普及,实时物联网应用,例如智能报警、车联网以及智能家居监控等在工业界的应用越来越广泛。此时,实时系统需要处理物联网应用中采集节点不间断产生的实时数据流,因此,规则推理必须具备处理这些海量实时数据的能力,且规则也需要尽可能地在其截止期前完成。传统规则推理系统,例如CLIPS,DROOLS,都缺少对规则的并行处理能力,其规则匹配效率无法应对物联网环境下的海量实时数据,甚至会使规则无法及时匹配,造成数据流阻塞,从而导致数据丢失和事件漏判。虽然,专利CN107145949A利用计算机的多核资源,设计了多核环境下的实时规则推理方法,使规则的匹配效率得到了一定程度的提高,但规则推理依然被限制在本地,其性能仍然难以满足海量实时数据处理所带来的庞大资源需求。虽然,学者们已经提出了一些面向流式数据的分布式实时推理方法(张琦.基于MapReduce的分布式规则匹配系统的研究与实现[D].浙江大学,2011.YiChen,BehzadBordbar.DRESS:ARuleEngineonSparkforEventStreamProcessing.BDCAT2016.)。但这些方法都没有考虑规则截止期,会导致大量的规则截止期错失,从而使上层实时物联网应用的时间约束无法得到满足。
技术实现思路
针对规则推理系统现有技术的不足,本专利技术提供一种新的面向海量流式数据的分布式实时规则推理方法和装置,该方法可在分布式环境下完成海量实时数据与规则的匹配,使规则尽可能地在其截止期前执行完毕。本专利技术的一种面向海量流式数据的分布式实时规则推理方法,包括以下步骤:1)建立规则集所对应的规则图;2)将规则图转化成相应的数据操作图;3)根据数据操作图生成推理作业;4)根据各个推理作业对应规则的截止期设置推理作业的优先级,并将推理作业按照优先级递减顺序放入推理作业就绪队列;5)选择优先级最高的推理作业,创建并执行推理任务;6)推理作业执行结束时将其从所述推理作业就绪队列中删除,并判断所述推理作业就绪队列是否为空队列:若不是空队列则回到步骤5)继续执行;若是空队列则表示已完成输入事实与所有规则的匹配。进一步地,步骤1)中,规则图用RETE网表示,RETE网络的概念与原理可参见“R.B.Doorenbos,“ProductionMatchingforLargeLearningSystems”TechnicalReportCS-95-113,SchoolofComputerScience,CarnegieMellonUniv.,1995.”。每条规则被表示成IFC1^C2^...^CnTHENA的形式。Ci(1≤i≤n)被称为条件元素,条件元素Ci可以和事实(fact)匹配;事实(fact)由类型名和若干属性名-属性值组成,被表示成(TypeName,attri1,x1,attri2,x2...attrim,xm),其中TypeName是事实类型名称,attrik是属性名,xk是对应的属性值(常量)(1≤k≤m)。条件元素Ci(condition)可被表示成(TypeName,constraint(attrii,xi))(1≤i≤m),constraint(attrii,xi)是对类型为TypeName的事实中属性attrii所对应变量xi取值的约束(简称为条件元素Ci的一个约束)。条件元素Ci的每一个约束对应RETE网络中的一个α节点,每个α节点有一个α内存,用来存储符合α节点对应约束的所有事实。规则集中各规则条件元素Ci(1≤i≤m)的全部约束则形成了α网络;RETE网络中的β网络由若干β节点连接而成,不同条件元素间的逻辑组合被表示为一个β节点,例如C1,C1^C2,C1^...^Ck(1≤k≤n)均各自对应了β网络中的某个β节点。在此,每个β节点均对应了不同条件元素属性间的一个或多个约束。每个β节点有一个β内存,用来存储满足β节点所对应约束的部分匹配(PartialMatch),部分匹配的概念参见“http://www.clipsrules.net/?q=Documentation/”。建立RETE网络的具体步骤可参见专利CN107145949A。进一步地,步骤2)中,数据操作图为一个有向无环图。图中各节点表示一个数据集,即在规则推理过程中被操作的相关数据,对应了1)中所述的各α节点与各β节点的α内存和β内存中的事实和部分匹配。各节点所表示的数据集被划分为多个分区(数据集的各个分区被称为一个数据分区),一个节点上各数据分区可被并行计算(为方便起见,将节点vx所表示的数据集记为Dx,1≤x≤n,n为数据操作图中节点的数目)。设Op为数据集操作,数据集操作可按一定的步骤将一个或多个数据集变化为一个新的数据集(具体Op类型由应用决定)。设数据操作图中有n个节点,V为数据操作图的节点集合,V={v1,...,vn}。对于若有且则对于在数据操作图中加入边<vs,vi>,vs是vi的前驱节点,vi是vs的后继节点。图中没有后继的节点被称为终止节点,其所对应的数据集包含了满足规则所有条件元素约束的所有完全匹配(完全匹配的概念参见“http://www.clipsrules.net/?q=Documentation/”)。规则推理只涉及filter操作(数据集过滤操作,过滤数据集中不符合给定条件元素的某个约束的数据),beta操作(对两个数据集进行笛卡尔积,形成新的数据集,并在此数据集中过滤不符合不同条件元素间属性约束的数据)。进一步地,将步骤1)中得到的规则图转化成相应数据操作图的具体步骤如下:(1)创建根节点root。(2)依次处理RETE网络中的α节点,在数据操作图G中加入一个新节点表示当前α节点对应的α内存中的事实。对于RETE网络中的两个α节点x,y,若存在边<x,y>,则本文档来自技高网
...

【技术保护点】
1.一种面向海量流式数据的分布式实时规则推理方法,其特征在于,包括以下步骤:1)建立规则集所对应的规则图;2)将规则图转化成相应的数据操作图;3)根据数据操作图生成推理作业;4)根据各个推理作业对应规则的截止期设置推理作业的优先级,并将推理作业按照优先级递减顺序放入推理作业就绪队列;5)选择优先级最高的推理作业,创建并执行推理任务;6)推理作业执行结束时将其从所述推理作业就绪队列中删除,并判断所述推理作业就绪队列是否为空队列:若不是空队列则回到步骤5)继续执行;若是空队列则表示已完成输入事实与所有规则的匹配。

【技术特征摘要】
1.一种面向海量流式数据的分布式实时规则推理方法,其特征在于,包括以下步骤:1)建立规则集所对应的规则图;2)将规则图转化成相应的数据操作图;3)根据数据操作图生成推理作业;4)根据各个推理作业对应规则的截止期设置推理作业的优先级,并将推理作业按照优先级递减顺序放入推理作业就绪队列;5)选择优先级最高的推理作业,创建并执行推理任务;6)推理作业执行结束时将其从所述推理作业就绪队列中删除,并判断所述推理作业就绪队列是否为空队列:若不是空队列则回到步骤5)继续执行;若是空队列则表示已完成输入事实与所有规则的匹配。2.如权利要求1所述的方法,其特征在于,步骤1)所述规则图用RETE网表示,规则的约束条件被表示成α节点或者β节点,每个α节点有一个α内存,用来存储符合α节点对应约束的所有事实;每个β节点有一个β内存,用来存储满足β节点所对应约束的部分匹配。3.如权利要求2所述的方法,其特征在于,步骤2)所述数据操作图为一个有向无环图,图中各节点表示一个数据集,即在规则推理过程中被操作的相关数据,对应各α节点与各β节点的α内存和β内存中的事实和部分匹配;各节点所表示的数据集被划分为多个数据分区,一个节点上各数据分区可被并行计算。4.如权利要求3所述的方法,其特征在于,步骤2)包括:2.1)依次处理RETE网络中的α节点,在数据操作图中加入一个新节点表示当前α节点对应的α内存中的数据;对于RETE网络中的两个α节点x,y,若存在边<x,y>,则在数据操作图中添加边<vx,vy>,其中vi表示α节点i对应的α内存中所有事实形成的数据集Di,i={x,y},且边表示的操作为过滤数据集Dx中不符合α节点y所对应约束的事实,从而得到数据集Dy;2.2)依次处理RETE网络中的β节点,在数据操作图中加入一个新节点表示当前β节点对应的β内存中的数据;对于RETE网络中的α节点x和β节点y,若其拥有共同的后继β节点z,则在数据操作图中添加边<vx,vz>和边<vy,vz>,其中vi表示α节点i对应的α内存中所有事实形成的数据集Di,i={x,y,z},且两条边表示的操作为对数据集Dx和数据集Dy进行笛卡尔积,再过滤这些笛卡尔积中不符合β节点z所对应的不同条件元素间约束的部分匹配,从而得到数据集Dz。5.如权利要求1所述的方法,其特征在于,步骤3)使用宽度优先遍历找到数据操作图中各个终止节点的所有祖先节点,为每个终止节点及其祖先节点所构成的子图上所有数据集的一系列数据集操作生成推理作业。6.如权利要求1所述的方法,其特征在于,步骤5)为推理作业执行图中节点所代表的数据集以及这些数据集上的操作创建并执行推理任务,包括以下步骤:5.1)将执行图根节点设为当前节点,依次遍历执行图中各个节点;5.2)对于每个节点vx,判断vx的前驱节点个数:a.若节点vx只有一个前驱节点vy,且vy对应的数据集Dy有n个数据分区,则创建n个可并行执行的推理任务;b.若节点vx有两个前驱节点vy和vz,且vy对应的数据集Dy有m个逻辑分区,vz对应的数据集Dz有n个数据分区,则创建m×n个可并行执行的推理任务;5.3)将5.2)中生成的推理任务发送给任务分配器,重复5.2)直到所有节点被处理完;5.4)任务...

【专利技术属性】
技术研发人员:乔颖王孟玄王宏安
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1