天天看點

Drools學習筆記1-規則引擎介紹

最近做一個項目可能會用到規則引擎。就學習了一下。寄了些筆記。從最開始的一無所知,到慢慢熟悉,在這裡記錄一下啊。

規則引擎的概念:規則引擎起源于基于規則的專家系統,而基于規則的專家系統又是專家系統的其中一個分支。專家系統屬于人工智能的範疇,它模仿人類的推理方式,使用試探性的方法進行推理,并使用人類能了解的術語解釋和證明它的推理結論。規則引擎一般由3部分組成:規則庫(Knowledge base)+Working Memory(Fact base)+推理機(規則引擎)。

規則引擎的工作:模式比對、沖突消解、執行引擎。

模式比對算法:将事實與規則進行比對的算法。常見的模式比對算法有RETE,LFA,TREAI,LEAPS。Drools采用的比對算法就是RETE,該算法被認為是目前世界上最先進的模式比對算法。

補充:規則引擎(rule engine)是有很多種的。依據規則的執行方式來劃分。商業上采用的大部分規則引擎都是 forward chaining(漢語咋解釋不知道)類型的。forward chaining類型有分為2種:(1)production/inference rules(漢語咋解釋不知道)它是通過IFconditionTHEN action這種條件判斷的形式來驅動規則引擎的。(2)reaction/Event Condition Action rules,這種規則引擎是通過事件機制來驅動規則引擎的。這是我從維基百科上了解的。有興趣的可以去看http://en.wikipedia.org/wiki/Business_rules_engine。

到此,我們對規則引擎是個啥東西已經有總體的了解了。至于裡邊提到的各個細節,我們可以放到以後慢慢了解,現在不是深究它們的時候。畢竟我們是要學習Drools,并運用到實際項目中。要是想都搞明白了在做項目,那項目經理是要罵娘的。

下面将看看啥時rete算法。

繼續閱讀