RETE算法国内外研究现状(3)
时间:2018-04-19 21:28 来源:毕业论文 作者:毕业论文 点击:次
2.数据不断变化与机器学习:除了数据瑕疵之外,RETE算法还需要解决快速变化的数据。RETE算法的当前状态是通过保存临时匹配的结果来记录的,临时匹配结果即在alpha存储区和beta存储区中。网络中每个结点的事实都记录在了该结点对应的存储区中。如果事实数据是处于不断变化之中,就要不断改变alpha存储区以及beta存储区之中对应的存储数据,这样会导致大量的修改计算,造成RETE算法失去了它快速高效的匹配优势。当前一种解决方法是通过决策树学习算法[7]从大量数据之中学习规则。这种方法从根本上说,并不是对RETE算法的进化,但是在解决数据不断变化的问题时,它是通过机器学习的方法从数据中获取规则,这对RETE算法的改进是有一定的意义的。 并行化研究 随着科技不断的发展,RETE算法所要处理的数据是按着几何增长,在海量的数据面前,如何进一步提高RETE算法的匹配效率成为人们又要解决的一大难题。多核多处理器的成功发明给了人们一个很好的启迪,将推理匹配过程分配到不同的机器上面分开运行已达到并行化的处理,已经那个成为提高RETE算法匹配效率的一个重要的方法。早在20世纪90年代,就有学者对一般规则引擎的并行化推理进行了研究[8]。而关于rete算法的并行化,其实包含了两个方面的的内容:匹配的并行化以及执行时的并行化。其中,Stolfo在DADO机上实现了4种的并行匹配算法以及一种并行化的执行算法[8]。而Fu-Chiung Cheng[9]等人则是通过分析规则库中各条规则之间的相似及依赖关系,建立了规则依赖矩阵以及执行矩阵,这样就为规则的匹配计算以及规则的执行提供了并行化的方法。近些年来,云计算的研究和应用已经成为当前计算机研究的热点,面对这海量的数据,如何使得规则引擎在云平台上处理海量数据也自然而然成为了研究的重点。其中谷歌在提出Mapreduce[10]模型之后,很多科研工作者对传统的人工智能方法的并行化进行了很多的研究工作。其中张琦[11]等人就依靠MapReduce平台,针对海量的规则和数据设计出了RETE算法的并行化实现。 SIMD(单指令流多数据流):通常,计算机中对于指令及数据的处理都是串行计算,即逐条进行编译计算,一条接一条,一个CPU周期只能执行一个操作,或者是操作的一部分。想要提高计算的效率,有效的方法就是改变当前一个CPU周期只能执行一个操作的模式,实现一个CPU周期内能够执行多个操作。SIMD就是对于不同的数据集和指令集,执行相同的操作,实现并行处理。SIMD实现了一个单独的指令,但是可以实现同时在多个数据包上的计算。虽然SIMD只能在单个CPU周期内实现多个相同的操作,但是还是实现了并行化处理,提高了计算效率。 MIMD(多指令流多数据流):MIMD实现的是计算机多个处理单元根据不同的控制流程执行不同的操作,处理不同的数据,因此被人们称之为多指令流多数据流。相比于SIMD,在一个CPU周期内,MIMD是执行不同的指令,并且对不同的数据集和指令集进行同时的操作,实现了相对高级一点的并行化计算。由此可知,MIMD与SIMD最大的不同在于,MIMD是同时对不同的数据集实现不同的操作,而SIMD是对不同的数据集实现相同的操作,但是都能实现并行化计算,提高计算效率。 MPI(Message Passing Interface):是MPI是消息传递并行程序设计的标准之一,消息传递是指用户通过显示地发送和接收消息来实现处理机间的数据交换,以实现并行化的处理。 (责任编辑:qin) |