• 沒有找到結果。

第二章 研究流程

2.2 研究方法

2.2.2 專家系統介紹

程序性之程式語言,如 C 或 Fortran 語言,一般皆作為資料處理 之用(如數字或陣列之處理)。然而人類常使用抽象及象徵性的方法處 理複雜的問題,這種抽象及象徵性的方法往往不適用於程序性之程式

11

語言。雖然抽象的資訊仍然可用程序性之程式語言撰寫,但必須耗費 大量的時間進行程式編撰才足以描述這些抽象資訊,以轉換這些抽象 資訊成為可以使用的格式。

近年來人工智慧領域的研究結果已經發展出可具體化抽象資訊 的技術,這項技術可讓程式表達得更接近人類邏輯,且更利於程式的 發展與日後之維護。上述的電腦程式即為專家系統,具有能夠模仿人 類專家解決複雜問題的能力。

Edward Feigenbaum 教授將專家系統定義為一個使用知識及推 理過程解決問題的智慧型電腦程式,且這樣的問題是需要大量專家知 識才得以解決的問題。也就是說,專家系統是一個模仿具有決策能力 之人類專家的電腦系統。

專家系統係由知識庫(Knowledge Base)及推理引擎(Inference Engine)等兩個主要元件所組成。由規則(Rules)的方式表示知識之專家 系統(Rule-based Expert System)是最常見的專家系統之一,這些儲存 於知識庫中之規則,用來表示數組相對於給定情況的反應。每條規則 皆由條件部分(conditional element)和動作部分(action element)所組 成。條件部分為一系列的條件敘述,若這部份的敘述和事實(facts)相 符,則執行(fire)此規則之動作部分。推理引擎會配對這些敘述與事實 是否相符合,此過程稱為 patterns matching,每當規則的動作部分改 變事實後,推理機便會再次執行 patterns matching 的動作,判斷哪些 規則是可執行的,直到沒有任何條件部分的敘述符合事實為止。

專家系統相較於程序性程式(如:C 或 Fortran 等)語言有很大的 差異,首先專家系統解題的知識與推論機制是分開的,而程序性程式 設計則通常會將資料與演算法交織在一起;此外在資料處理方面,專 家系統偏向高度交談式處理,而程序性程式設計則為批次順序處理;

12

因此專家系統可以因知識抽換而改變系統功能及行為或是強化解題 模式與能力,而程序性程式設計則需頻繁修改程式,相較之下專家系 統適於應用在特定領域且維護和擴充會較為方便。另外專家系統相較 程序性程式語言,具有提供解釋推論過程之能力,因此較易滿足人們 的質疑,推論過程相較傳統程式也變得較為透明。

CLIPS 是 C Language Integrated Production System 的縮寫,係由 NASA/Johnson Space Center 使用 C 程式語言所開發的工具。CLIPS 是一個提供了完整的環境方便於建立專家系統的工具,其支援了三種 不同的程式編撰方法,分別為以規則為基礎(rule-based)、物件導向 (object-oriented)及程序導向(procedural)等。以規則為基礎(Rule-based) 的程式編撰方式允許了知識可以表示成啟發式的敘述,以指定對特定 的情況做出動作;物件導向(Object-oriented)則是允許複雜的系統可以 被拆解並模組化成數個元件,這些元件可以再用於建立其他的系統或 是其他元件;程序導向(Procedural)的程式編撰方式則是類似其他程式 語言的程式碼有順序性,如 C、Java 及 FORTRAN 等等。另外,CLIPS 可以嵌入至別的程式語言,或是被當作子程式呼叫,以方便與其他程 式語言做整合。

本研究採用以規則為基礎(rule-based)及物件導向(object-oriented) 的知識表示法建立專家系統。在以規則為基礎(Rule-based)的編撰方 式上,本研究將地下水模式參數檢定之知識歸納成數條規則,這些規 則儲存於專家系統之知識庫,透過 patterns matching 執行規則內之動 作。而物件導向(Object-oriented)的應用方面,本研究建立一個地下水 類別,此類別中包含與參數檢定相關的屬性,如淨補注量或抽水量、

模擬水位與觀測水位誤差等等,而此類別的實作則稱之為實例 (instance),每個實例皆具有類別所擁有的屬性。本研究以參數分區

13

(Zonation)法降低參數檢定維度,並將一個參數分區實作為一個實例 (instance),以此概念作為地下水模式參數檢定之基礎。

相關文件