黃麗
摘 要規則引擎技術有吸引力,且應用廣泛。本文主要是對規則引擎等方面的概念以及其實現原理進行闡述,然后深入探究Drools 中規則沖突方面的相關處理,最后提出了借助于 Drools規則引擎來如何解決實際應用方面的探究,旨在促進其技術應用的更加廣泛。
【關鍵詞】規則引擎 Drools 規則沖突
1 闡述基于規則的專家系統
專家系統里面有不少的劃分方法,例如:神經網絡、案例推理以及基于規則的系統等等。其中,規則引擎為在規則的專家系統內的一個組成部分。有關Java的規則引擎的構成, 圖1是基于規則的專家系統(簡稱RBES)的結構圖。
2 分析Drools項目的具體
Drools項目的本質是Bob 開發的開源項目,是通過Java語言進行實現的,也是對Rete算法進行的增強。Rete算法位于模塊的核心位置,被Drools封裝成Rete-OO,繼而再利用一些外圍模塊的添加來拓展其功能。其中,Rete算法是在上個世紀70年代被發明的,到現在為止,在現代生產系統中,被稱為效率最高的算法,除Rete II外。但是,Rete是唯一一個效率和執行規則數目無關聯的算法。
3 分析Drools中規則沖突方面的相關處理
在同一規則集里面如果同時有多項規則滿足了這些情況,它就會被觸發,另外對于執行次序來說,其順序不同,執行結果各異,就是所謂的規則沖突。因此,在Drools當中專門設立其對應的沖突處理機制,主要原理就是借助沖突處理策略鏈路這種方法來處理其沖突。而且,對于沖突處理策略來說,它會形成一個隊列,如果位于前面的沖突策略沒有被解決的話,沖突規則會發揮其作用將其轉到后面進行處理,直到所有的沖突都被解決完畢為止。……