產生式系統
產生式系統
產生式系統,是構造知識型系統和建立認知模型時常用的知識表示的形式系統。1943年E.波斯特首先將他提出的一種計算形式體系命名為產生式系統。50年代末期,A.紐厄爾和H.A.西蒙在研究人類問題求解的認知模型時也使用了產生式系統這一術語。產生式系統現代已成為研製人工智慧系統時採用的最典型的體系結構之一。
簡稱產生式。它是指形如α─→β或IFαTHENβ或其等價形式的一條規則,其中α稱為產生式的左部或前件;β稱為產生式的右部或後件。①如果α、β分別代表需要注視的一組條件及其成立時需要採取的行動,那麼稱為條件-行動型產生式;②如果α、β分別代表前提及其相應的結論,那麼稱為前提-結論型產生式。人工智慧中的推理很多是建立在直觀經驗基礎上的不精確推理,而產生式在表示和運用不精確知識方面具有靈活性,因此許多專家系統採用產生式系統為體系結構。
一個產生式系統由下列3部分組成:
一個總資料庫(global database),它含有與具體任務有關的信息;隨著應用情況的不同,這些資料庫可能像數字矩陣那樣簡單,也可能像檢索文件結構那樣複雜。
一套規則,它對資料庫進行操作運算。每條規則由左右兩部分組成,左部鑒別規則的適用性或先決條件,右部描述規則應用時所完成的動作。應用規則來改變資料庫。
一個控制策略,它確定應該採用哪一條適用規則,而且當資料庫的終止條件滿足時,就停止計算。
free pascal 中的產生式系統的組成
產生式系統由一個綜合資料庫、一組產生式規則和一個控制系統三個基本 要素組成。其中:綜合資料庫是產生式系統所用的主要數據結構,它主要用來表示問題的狀態,即初始狀態、中間狀態和目標狀態等,以及狀態之間的關係。它不是固定不變的,在求解的過程中,它的內容將越來越多,狀態之間的關係也越來越複雜。
經常用來表示資料庫的數據結構有串、集合、數組、樹、表、記錄、隊列等。
產生式規則是對資料庫進行操作的一系列規則。規則的一般形式是:
IF 條件 THEN 操作
即滿足應用的先決條件后,就對資料庫實行後面的操作。
控制策略規定了操作的順序,即在任何條件下用什麼規則進行操作,什麼條件下停止運行,它規定了問題的求解的搜索策略和路線。控制策略一般可分為不可撤回方式和試探法兩大類,試探法又包括回溯法和圖搜索法兩種。
產生式是系統的單元程序,它與常規程序不同之處在於,產生式是否執行並不在事前硬性規定,各產生式之間也不能相互直接調用,而完全決定於該產生式的作用條件能否滿足,即能否與全局資料庫的數據條款匹配。因此在 人工智慧中常將產生式稱為一種守護神(demon),即“伺機而動”之意。另一方面,產生式在執行之後工作環境即發生變化,因而必須對全局資料庫的條款作相應修改,以反映新的環境條件。全部工作是在控制程序作用下進行的。現代產生式系統的一個工作循環通常包含匹配、選優、行動三個階段。匹配通過的產生式組成一個競爭集,必須根據選優策略在其中選用一條,當選的產生式除了執行規定動作外,還要修改全局資料庫的有關條款。因此現代產生式系統的控制程序常按功能劃分為若干程序。
產生式系統的推理分為正向推理和逆向推理。正向推理指的是從現有條件出發,自底向上地進行推理(條件的綜合),直到預期目標實現。逆向推理則從預期目標出發,自頂向下地進行推理(目標的分析),直到符合當前的條件。運用逆向推理時,後件而不是前件引導產生式的搜索工作,因此按推理方向可將產生式系統分為前件驅動和後件驅動兩種類型。條件-行動型產生式系統採用前件驅動的工作方式。
產生式系統的優點是:①模塊性,每一產生式可以相對獨立地增加、刪除和修改;②均勻性,每一產生式表示整體知識的一個片段,易於為用戶或系統的其他部分理解;③自然性,能自然地表示直觀知識。它的缺點是執行效率低,此外每一條產生式都是一個獨立的程序單元,一般相互之間不能直接調用也不彼此包含,控制不便,因而不宜用來求解理論性強的問題。
程序性知識的學習本質上是掌握一個程序,即在長時記憶中形成一個解決問題的產生式系統。這樣的產生式系統,在遇到同類型的問題時,就可憑藉這個系統一步步做下去,知道問題解決。
產生式系統的提出為揭示程序性知識表徵和獲得的心理機制提供了新的思路,為程序性知識的教學提供了科學依據。