2.Rete

Drools使用了Rete算法,Rete算法是一種前向規(guī)則快速匹配算法,其匹配速度與規(guī)則數(shù)目無(wú)關(guān)。Rete是拉丁文,對(duì)應(yīng)英文是net,也就是網(wǎng)絡(luò)。Rete算法通過(guò)形成一個(gè)rete網(wǎng)絡(luò)進(jìn)行模式匹配,利用基于規(guī)則的系統(tǒng)的兩個(gè)特征,即時(shí)間冗余性(Temporal redundancy)和結(jié)構(gòu)相似性(structural similarity),提高系統(tǒng)模式匹配效率。
簡(jiǎn)單來(lái)說(shuō),規(guī)則引擎在對(duì)規(guī)則文件進(jìn)行編譯的時(shí)候,會(huì)把規(guī)則文件中多個(gè)條件作為alpha節(jié)點(diǎn)串聯(lián)起來(lái),如果多個(gè)規(guī)則文件有相同的條件時(shí)就共用一個(gè)節(jié)點(diǎn)。beta節(jié)點(diǎn)用于表示條件的組合,beta節(jié)點(diǎn)左邊輸入多個(gè)節(jié)點(diǎn),右邊輸入單個(gè)節(jié)點(diǎn)。通過(guò)beta節(jié)點(diǎn)可以找到命中的規(guī)則文件。當(dāng)傳入一個(gè)fact時(shí),fact會(huì)沿著節(jié)點(diǎn)傳遞,所有節(jié)點(diǎn)都有存儲(chǔ)功能,可以保留到搭過(guò)的fact和語(yǔ)義,使用空間換時(shí)間的方式,提升下次匹配規(guī)則的速度。詳細(xì)的規(guī)則解釋可以看參考鏈接。



參考:

https://blog.csdn.net/u012373815/article/details/53869097

https://www.cnblogs.com/wangchunlan1299/p/7678250.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • feisky云計(jì)算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 4,355評(píng)論 0 5
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,595評(píng)論 19 139
  • 簡(jiǎn)介 用簡(jiǎn)單的話來(lái)定義tcpdump,就是:dump the traffic on a network,根據(jù)使用者...
    保川閱讀 6,086評(píng)論 1 13
  • 2017年12月30日 星期六 晴 上午,睡個(gè)懶覺(jué),悠哉悠哉一上午就過(guò)去了。下午,開始寫作業(yè),很...
    平度市鄭小二年級(jí)二班石皓澤閱讀 282評(píng)論 0 0
  • 哈嘍,今天想跟你們聊聊“搭訕”這件事,這真的是一門很高深的學(xué)問(wèn)?。?! 首先來(lái)看看 有哪些是很瞎的搭訕?lè)绞?▼ “我...
    搞笑有嘻哈閱讀 207評(píng)論 0 0

友情鏈接更多精彩內(nèi)容