為了對規則系統陌生的人,必須有這項簡介。
規則系統, rule-based system ,以前稱為 production system ,是因為系統的構成有許多的 production rules 。後來稱為專家系統,特別叫做規則式專家系統。有名的案例是 MYCIN ,處理心理諮商及診斷。規則系統是運用規則表達知識並解決問題的系統。
左圖為專家系統的內外構成。外部結構基本有規則庫、推論引擎及工作空間,依序比照為人腦的長程記憶區、推論邏輯、以及短程記憶區。推論引擎內的運作方法大致是接受若干輸入事實,就將事實與規則庫中每項規則比對,其中,有些規則會符合事實、而有些不會符合。這些符合的規則構成 conflict set ,爭議集合。如果都沒有符合的規則, conflict set 是空的,沒有任何規則可以選擇,表示推論過程可以結束了。但如果至少有一條規則符合比對,就要從 conflict set 中選取若干應該觸發、啟動的規則,這個動作稱為 conflict resolution ,衝突決議。 Conflict resolution 選擇了一些規則,執行規則中所規定的動作,這個步驟稱為 act 。啟動一些規則,使推論的過程與狀態有一些改變,這些狀態儲存在 working memory 中。然後,回到 Pattern Match 步驟再進行下一次循環。以上,推論循環工作的過程,以三大步驟稱呼稱為 match-resolution-act ,比對、決議、行動。每一循環的 act 步驟可能送出一些解答。推論循環工作的終點,是在 match 之後、 resolution 之前,發現 conflict set 沒有任何規則存在,就結束推論流程。
規則系統的研究領域,站在中流砥柱的一位是 Charles L. Forgy ,他在 1979 年卡耐基美隆大學的電腦科學系博士學位論文中,提出有效處理 Pattern Match 與 conflict resolution 的幾項方法。他的指導老師是 Allen Newell ,在 1956 年與同事發表第一支人工智慧程式,稱為「邏輯解題者」。他們師徒的另外一位同事, Anoop Gupta ,他在 1989 年取得博士學位,則處理了在 message-passing computer 用平行架構實作規則系統。
Forgy 在 1974 到 1979 年的研究,發表了第一代 Rete 演算法,做有效處理 Pattern Match 。 Rete 演算法在這個領域從當時紅到現在。 1983 年,他開創稱為 Production System Technology 的公司,屬於研究及顧問性質的機構,同時也賣了許多 OPS 的產品 ( OPS2 、 OPS5 等等)。這時候 Forgy 也發表了第二代 Rete 演算法,聲稱它不只能夠表達知識,還能夠做資料處理。又後來,他在 RulesPower 公司的時代發表了第三代 Rete 演算法,這個技術在 2005 年被 Fair Issac 公司取得了。據 Rete III 的聲明,有 300% 的效能。 2006 年 11 月,據 JavaRule 部落格訊息指出, Forgy 在參加 Business Rule 論壇的時候發生心臟疾病,希望他身體健康。
目前我們知道的規則系統研究走向, Rete 演算法是公開的資訊, Rete II 與 III 是企業不公開的技術,而且 production system 及專家系統在 70 、 80 年代發展、 90 年代成熟之後,已經走向商業規則領域。所以,今後可以多參考 business rules 方面的資訊,幫助我們的系統開發。
No comments:
Post a Comment