對規則引擎和專家系統以及rete演算法的一點認識

2021-08-30 11:58:52 字數 890 閱讀 7369

首先,談一下規則引擎與專家系統的區別,因為網上有很多人將兩者混為一談了,不過這也只是小弟的一點淺顯的認識,請各位大俠拍磚啊

規則系統的目的側重於將業務邏輯的分離,主張業務邏輯從我們的應用編碼中解脫出來,便於我們業務邏輯的修改,從而誕生出來的brms系統也是用來管理我們的業務規則的。

專家系統:側重於人工智慧,它是基於大量的事實而進行的推理行為,與規則引擎有很大的區別,專家系統注重知識的管理,而規則引擎側重於規則的管理,以及規則與fact的匹配。

對rete的一點認識:

rete演算法的成功之處在於,當我們構造好rete網之後,把我們的fact儲存在working memory中,當wme在規則匹配的過程中發生了變化,需要進行loop來對變化都得規則進行匹配的時候,它可以節省我們的時間,進而達到節約時間的目的。(注:這個功能本來應該是專家系統所具有的,管理大量的知識,進行操作,當乙個知識wme發生變化的時候,迅速的做出反應,而不必從頭開始做分析,規則引擎正是使用了rete演算法的這個優勢來構造的。試想乙個特殊的情況,假如我們系統中有10000條規則,當我們對乙個wme-1進行分析的時候,需要將10000條規則全部匹配一便來分析wme能夠觸發的規則,然後執行觸發規則的action,但是當action對wme有影響的時候,那麼我們需要重新來做匹配,可能需要花費很長的時間。當然,我們也可以運用1--10000條規則來逐一的匹配所有的wme,當匹配成功的時候就觸發規則,但是帶來的結果也是跟上面的分析一樣的,首先假設我們已經匹配過999條規則了,都沒有匹配合適,但是我們的第1000條規則卻匹配成功了,此時我們如何做呢?!我們需要執行第1000條rule的action,但是執行action的結果是對wme產生了影響,結果是我們需要對過去的999條規則做重新匹配,這樣我們需要永無止境的做下去。)我想很多人將規則引擎與專家系統混為一談大都是跟這個rete演算法的關係。在這裡小弟做一下澄清,請各位大神拍磚。

動物專家系統(4)

這個版本用函式實現了功能上的擴充套件,可以修改 新建 刪除規則。另外,對特徵進行排序,使得輸入的特徵不再需要按順序來。def init with open users he jia dongwushibie gui ze.txt r as f for line in f.readlines if l...

《專家系統》實驗(初稿)

今天硬是被趕鴨子上架了一把,mm非要我幫她寫乙份 專家系統 的實驗報告冊。這可真的是難為我了,花了幾個小時擬了初稿出來。哎 書到用是方恨少 這句是真理!不管寫得有多爛,先發上來讓各路ggjj給咱提點意見。我對專家系統的理解還很膚淺,這次拍腦袋,真是哦 大家多幫幫忙啦 專家系統 實驗 專家系統是早期人...

人工智慧(二) 基於規則的專家系統

知識是什麼?知識是對某個主題或某個領域上的理論或實踐的理解。掌握知識的人被稱為專家。知識可以被表達為產生式規則 production rule 或簡稱規則。它有兩部分組成 if部分和then部分。比如 if 下雨 then 帶傘 條件部分可以用or或and等進行連線。規則可以用來表達關係 relat...