專家系統JESS例項教程

2021-04-15 16:29:29 字數 1828 閱讀 1237

我們假設有乙個交易系統,客戶提出要買的東西,賣家提供要買的東西,如果有符合的,就成交。這是乙個很簡單的系統,用一般程式語言也可以實現,但是我們看看專家系統開發更簡單的方法。

1第一條規則

如果來了新的客戶,取得這個客戶所有需要的商品,並產生新的事實。

(defrule query-buyer

?fact <- (new-buyer ?buyer)            ; if there is a new a buyer...

=>

(retract ?fact)

(foreach ?i (nth$ 2 (send ?buyer "getproducts"))

(assert (requires ?buyer ?i))        ; get the products the buyer requires

; and for each one create a fact

; associating the buyer and the product))

例如,來了乙個客戶danny,我們先assert(new-buyer danny) ,jess發現了這條事實後,觸發query-buyer這個規則,注意所有的規則之間沒有順序性。query-buyer這條規則先撤銷剛才的事實,避免死迴圈,然後呼叫乙個函式取得使用者所有需要的商品send ?buyer "getproducts".例如得到的結果是(computer keyboard mouse),然後規則遍歷這個結果集,每乙個商品都產生乙個新的事實,例如assert requires danny computer等等。

2 第二個規則,出現乙個新賣家,原理和剛才一樣

(defrule query-seller

?fact <- (new-seller ?seller)          ; if there is a new seller...

=>

(retract ?fact)

(foreach ?i (nth$ 2 (send ?seller "getproducts"))

(assert (provides ?seller ?i))       ; get the products the seller provides

; and for each one create a fact

; associating the seller and the product))

3 最後乙個是交易的規則

當有買家購買乙個商品,賣家賣乙個商品,並且兩者相同的事實時候,告訴賣家有人要買該物品,同時也告訴買家有賣家投遞該物品

(defrule match-buyer-and-seller

(requires ?buyer ?product1)            ; the buyer requires product1

(provides ?seller ?product2)           ; the seller provides product2

(test (eq ?product1 ?product2))        ; product1 and product2 are the same

=>

(send ?seller "order" ?product2)       ; order from the seller

(send ?buyer "delivery" ?product1)     ; deliver to the buyer

)從這個規則中,我們看到,實現這樣乙個交易市場的系統,沒有任何遍歷所有買家和賣家進行比較的操作。這些匹配是jess自動模式匹配完成的,大大簡化了開發。

使用專家系統,我們可以通過定義規則的方式來積累經驗,而不是通過if else這樣的**來積累經驗。

專家系統JESS例項教程

我們假設有乙個交易系統,客戶提出要買的東西,賣家提供要買的東西,如果有符合的,就成交。這是乙個很簡單的系統,用一般程式語言也可以實現,但是我們看看專家系統開發更簡單的方法。1第一條規則 如果來了新的客戶,取得這個客戶所有需要的商品,並產生新的事實。defrule query buyer fact n...

動物專家系統(4)

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

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

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