1. 程式人生 > >專家系統基礎篇 一、專家系統是幹啥類與知識庫菜鳥說

專家系統基礎篇 一、專家系統是幹啥類與知識庫菜鳥說

專家系統: 就是弄個程式,像專家一樣思考,像專家一樣幹活.

1 一個人要成為專家,就要有專家的資質,最基本的條件:
  1. 專家的知識—-知識庫

  2. 專家的思考方式—-推理方式

  3. 專家的判斷力——與推理方式結合的輸出解決方案。

簡單說一下知識庫:

知識庫這個玩意就好像人的知識構成差不多。 而且有N多種,對於我現在是關於 產生式 的,所謂產生式,可以理解為 通過判斷 遞進的向下分支,直到你想要的位置。

入口:

使用者將事實或其它資訊供應給專家系統,經由專家系統處理後,即可獲得相當於專家建議的解答 
在進行規則推理時,當事實資料庫中的某些事實或使用者輸入資訊與規則庫中的某條規則的前提相匹配時,該規則被啟用,並把用它推出的結論放人事實資料庫中,作為後面推理的已知事實,因此事實資料庫也是一個動態資料庫。

上面提到了 “事實”,“規則”,咱們來談一下。

事實: 
啥是事實, 舉例子來說。 有個裝置維修工人用此專家系統,那麼他提供的查詢的條件就是事實。

“機器停電了怎麼辦?” 這句話就是一個正在發生的事實。

由此可知,第一個事實,是使用者輸入的。 就好像一件事在生活中發生,引起了我們的思考。

這件事就是事實。

到這裡還沒完, 因為咱們還思考了。 關於咱們的思考,如果按照 產生式來說。就是一層一層的像ifelse一樣的判斷, 問題是,既然是一層一層的。

那麼子層的判斷是由什麼引起的那?

沒錯。 就是由父層發生的事引起的。 也就是說在每次判斷完成後都有一個結果,

1 然後咱們通過這個結果,再進行判斷。

事實完成了。那麼排排坐分果果,也該輪到“規則”了。

其實看到上面你肯定想,那麼既然咱們人是通過事實去思考。 但是人用來針對這個事實的判斷是哪些那?

沒錯。 這些針對事實的判斷其實都是“規則”。

有個例子很容易讓你明白,規則是長啥樣。

事實庫中存放了“任務A是緊急訂貨”、“任務B是出口任務”那樣的事實。 
規則庫中存放著 
“IF任務i是緊急訂 貨,and任務i是出口任務,THEN任務i按最優先安排計劃”、 
“IF任務i是緊急訂貨,THEN任務i按優先安排計劃”那樣的規則。

通過上面的例子就知道了。 規則是 有判斷條件,而且輸出結果的。 
那麼這個條件咱們叫條件,叫前件。 
這個結果 叫結論 ,也叫後件。

咱們把這個結論放入到“事實”,可以觸發下一層 規則去繼續思考(推理)。 直到無法觸發,那就可以作為最終結論來使用了。

OK。通過上面的學習,基本瞭解知識庫的內容。下面有點小提示:

知識庫包括事實庫與規則庫。 
規則庫分為條件庫與結論庫。

至於事實庫,咱們來分析一下, 上面提到一個例子

事實庫中存放了“任務A是緊急訂貨”、“任務B是出口任務”那樣的事實

於是咱們的規則庫是: 
IF任務i是緊急訂 貨,and任務i是出口任務,THEN任務i按最優先安排計劃”

條件庫中寫:緊急訂 貨,出口任務 都是條件。

結論庫中寫:按最優先安排計劃

其實結論是咱們下一次的事實, 針對 “最優先安排計劃” 也會有其他診斷結果。

那麼 也就是說。

規則庫的條件和結論都是一種事實。即事實庫中存放這些結論與條件的謂詞。

`**

從咱們故障上來說, 故障的條件就是咱們的故障現象, 結論就是咱們的故障原因。

**`

事實的表示: 
一個語言變數的值或多個語言變數之間的關係的陳述句 
三元組表示: 
(物件,屬性,值):(wang,age,40) 
(關係,物件1,物件2):(friend,wang ,li)

規則的表示: 
單個規則由前項和後項兩部分組成。前項由邏輯聯結片語成各種不同的前提條件,後項表示前提條件為真時,應採取的操作或所得的結論。如果考慮不精確推理,則可附加置信度量值。

<產生式>::=<前提>→<結論> 
<前提>::=<簡單條件>|<複合條件> 
<結論>::=<事實>|<操作>

全域性資料庫(綜合資料庫)(當前動態資料庫)——(已訪問過的規則序列)。 
全域性資料庫的內容可以為所有規則所訪問,沒有任何部分是專為某一規則建立的,這種特性便於模仿智慧行為中的強資料驅動。 
規則本身不呼叫其他規則。規則之間的聯絡必須通過全域性資料庫聯絡。

“綜合資料庫”的 ,是用來存放整個推理過程的。作為推理過程中的中間庫,存放中間結果與最後結果。

一個動物的例子 
動物分類問題的產生式系統描述及求解

`規則: 
r1: IF 某動物有奶 THEN 它是哺乳動物 
r2: IF 某動物有毛髮 THEN 它是哺乳動物 
r3: IF 某動物有羽毛 THEN 它是鳥 
r4: IF 某動物會飛 AND 會下蛋 THEN 它是鳥 
r5: IF 某動物是哺乳動物 AND 有犬齒 AND 有爪

1 AND  眼盯前方    
2                         THEN 它是食肉動物

r6:IF 某動物是哺乳動物 AND 吃肉 THEN 它是食肉動物 
r7:IF 某動物是哺乳動物 AND 有蹄 THEN 它是有蹄類動物 
r8:IF 某動物是有蹄動物 AND 是嚼反芻動物

1 THEN  它是偶蹄動物

r9:IF某動物是食肉動物 AND 是黃褐色 AND 有黑色條紋

1 THEN  它是虎

r10:IF某動物是食肉動物 AND是黃褐色 AND有暗斑點

1 THEN  它是金錢豹

r11:IF 某動物是有蹄類動物 AND 有長脖子 AND 有長腿 AND

1 身上有暗斑點           THEN   它是長頸鹿

r12:IF 某動物有蹄類動物 AND 身上有黑色條紋

1 THEN    它是斑馬

r13:IF 某動物是鳥 AND 有長脖子 AND 有長腿 AND 不會飛

1 AND 有黑白二色         THEN   它是鴕鳥

r14: IF 某動物是鳥 AND 會游泳 AND 不會飛 AND 有黑白二色

1 THEN    它是企鵝

r15:IF 某動物是鳥 AND 善飛 AND 不怕風浪

1 THEN     它是海燕

`

1 初始事實:f1:某動物有毛髮。f2:吃肉。f3:黃褐色。f4:有黑色條紋------目標條件為:該動物為什麼? 這是推理演算法的相關, 以後會講到。

有一個例項的資料庫結構設計,來體現他們之間的關係

有一個例項的資料庫結構設計,來體現他們之間的關係