本文目錄一覽:
產生式表示法的產生式表示法
「產生式」由美國數學家波斯特(E.POST)在1934年首先提出,它根據串代替規則提出了一種稱為波斯特機的計算模型,模型中的每條規則稱為產生式。
1972年,紐厄爾和西蒙在研究人類的認知模型中開發了基於規則的產生式系統,目前,產生式表示法已經成了人工智能中應用最多的一種知識表示模式,尤其是在專家系統方面,許多成功的專家系統都是採用產生式知識表示方法。產生式的基本形式P→Q 或者 IF P THEN QP是產生式的前提,也稱為前件,它給出了該產生式可否使用的先決條件,由事實的邏輯組合來構成;Q是一組結論或操作,也稱為產生式的後件,它指出當前題P滿足時,應該推出的結論或應該執行的動作。產生式的含義如果前提P滿足,則可推出結論Q或執行Q所規定的操作。
產生式規則的基本形式
P→Q或IF P THEN Q
產生式規則的例子
r6: IF 動物有犬齒 AND 有爪 AND 眼盯前方
THEN 該動物是食肉動物
其中,r6是該產生式的編號;「動物有犬齒 AND 有爪 AND 眼盯前方」是產生式的前提P;「該動物是食肉動物」是產生式的結論Q。
與蘊涵式的主要區別:
(1) 蘊涵式表示的知識只能是精確的,產生式表示的知識可以是不確定的
原因是蘊涵式是一個邏輯表達式,其邏輯值只有真和假。
(2) 蘊含式的匹配一定要求是精確的,而產生式的匹配可以是不確定的
原因是產生式的前提條件和結論都可以是不確定的,因此其匹配也可以是不確定的。
與條件語句的主要區別:
(1) 前件結構不同
產生式的前件可以是一個複雜的的結構
傳統程序設計語言中的左部僅僅是一個布爾表達式
(2) 控制流程不同
產生式系統中滿足前提條件的規則被激活後,不一定被立即執行,能否執行將取決於衝突消解策略
傳統程序設計語言中是嚴格地從一個條件語句向其下一個條件語句傳遞。
產生式表示法
編輯
產生式是一種知識表達方法,具有和Turing機一樣的表達能力。
事實與規則的表示
事實可看成是斷言一個語言變量的值或是多個語言變量間的關係的陳述句,語言變量的值或語言變量間的關係可以是一個詞。不一定是數字。如雪是白色的,其中雪是語言變量,其值是白色的。John喜歡Mary,其中John、Mary是兩個語言變量,兩者的關係值是喜歡。
一般使用三元組(對象,屬性,值)或(關係,對象1,對象2)來表示事實,其中對象就是語言變量,若考慮不確定性就成了四元組表示(增加可信度)。這種表示的機器內部實現就是一個表。
如事實「老李年齡是35歲」,便寫成(Lee,age,35)
事實「老李、老張是朋友」,可寫成(friend,Lee,Zhang)
對於規則是表示事物間的因果關係,以下列形式表示:
condition-action
condition作為前件或模式,而action稱作動作或後件或結論。前件部分常是一些事實Ai的合取,而結論常是某一事實B,如考慮不確定性,需另附可信度度量值。
產生式系統的組成和推理
多數較為簡單的專家系統(Expert System)都是以產生式表示知識的,相應的系統稱作產生式系統。
產生式系統,由知識庫和推理機兩部分組成。其中知識庫由規則庫和數據庫組成。規則庫是產生式規則的集合,數據庫是事實的集合。
規則是以產生式表示的。規則集蘊涵著將問題從初始狀態轉換解狀態的那些變換規則,規則庫是專家系統的核心。規則可表成與或樹形式,基於數據庫中的事實對這與或樹的求值過程就是推理。
數據庫中存放着初始事實、外部數據庫輸入的事實、中間結果事實和最後結果事實。
推理機是一個程序,控制協調規則庫與數據庫的運行,包含推理方式和控制策略。
產生式系統的推理方式有正向推理、反向推理和雙向推理
正向推理:從已知事實出發,通過規則庫求得結論,或稱數據驅動方式。推理過程是:
規則集中的規則前件與數據庫中的事實進行匹配,得匹配的規則集合。
從匹配規則集合中選擇一條規則作為使用規則。
執行使用規則的後件。將該使用規則的後件送入數據庫中
重複這個過程直至達到目標
具體說如數據庫中含有事實A,而規則庫中有規則A-B,那麼這條規則便是匹配規則,進而將後件B送入數據庫中。這樣可不斷擴大數據庫直至包含目標便成功結束。如有多條匹配規則需從中選一條作為使用規則,不同的選擇方法直接影響着求解效率,選規則的問題稱作控制策略。正向推理會得出一些與目標無直接關係的事實,是有浪費的。
反向推理:從目標(作為假設)出發,反向使用規則,求得已知事實,或稱目標驅動方式,推理過程是:
規則集中的規則後件與目標事實進行匹配,得匹配的規則集合;
從匹配的規則集合中選擇一條規則作為使用規則;
將使用規則的前件作為子目標;
重複這個過程直至各子目標均為已知事實成功結束;
如果目標明確,使用反向推理方式效率較高。
雙向推理:同時使用正向推理又使用反向推理。
產生式表示的特點
產生式表示格式固定,形式單一,規則(知識單位)間相互較為獨立,沒有直接關係使知識庫的建立較為容易,處理較為簡單的問題是可取的。另外推理方式單純,也沒有複雜計算。特別是知識庫與推理機是分離的,這種結構給知識的修改帶來方便,無須修改程序,對系統的推理路徑也容易作出解釋。所以,產生式表示知識常作為構造專家系統的第一選擇的知識表示方法。
什麼是專家系統?
專家系統(expert system)是人工智能應用研究最活躍和最廣泛的課題之一。
專家系統是一個智能計算機程序系統,其內部含有大量的某個領域專家水平的知識與經驗,能夠利用人類專家的知識和解決問題的方法來處理該領域問題。也就是說,專家系統是一個具有大量的專門知識與經驗的程序系統,它應用人工智能技術和計算機技術,根據某領域一個或多個專家提供的知識和經驗,進行推理和判斷,模擬人類專家的決策過程,以便解決那些需要人類專家處理的複雜問題,簡而言之,專家系統是一種模擬人類專家解決領域問題的計算機程序系統。
專家系統
expert system
運用特定領域的專門知識,通過推理來模擬通常由人類專家才能解決的各種複雜的、具體的問題,達到與專家具有同等解決問題能力的計算機智能程序系統。它能對決策的過程作出解釋,並有學習功能,即能自動增長解決問題所需的知識。
發展簡況 專家系統是人工智能中最重要的也是最活躍的一個應用領域,它實現了人工智能從理論研究走向實際應用、從一般推理策略探討轉向運用專門知識的重大突破。20世紀60年代初,出現了運用邏輯學和模擬心理活動的一些通用問題求解程序,它們可以證明定理和進行邏輯推理。但是這些通用方法無法解決大的實際問題,很難把實際問題改造成適合於計算機解決的形式,並且對於解題所需的巨大的搜索空間也難於處理。1965年,f.a.費根鮑姆等人在總結通用問題求解系統的成功與失敗經驗的基礎上,結合化學領域的專門知識,研製了世界上第一個專家系統dendral ,可以推斷化學分子結構。20多年來,知識工程的研究,專家系統的理論和技術不斷發展,應用滲透到幾乎各個領域,包括化學、數學、物理、生物、醫學、農業、氣象、地質勘探、軍事、工程技術、法律、商業、空間技術、自動控制、計算機設計和製造等眾多領域,開發了幾千個的專家系統,其中不少在功能上已達到,甚至超過同領域中人類專家的水平,並在實際應用中產生了巨大的經濟效益。
專家系統的發展已經歷了3個階段,正向第四代過渡和發展。第一代專家系統(dendral、macsyma等)以高度專業化、求解專門問題的能力強為特點。但在體系結構的完整性、可移植性等方面存在缺陷,求解問題的能力弱。第二代專家系統(mycin、casnet、prospector、hearsay等)屬單學科專業型、應用型系統,其體系結構較完整,移植性方面也有所改善,而且在系統的人機接口、解釋機制、知識獲取技術、不確定推理技術、增強專家系統的知識表示和推理方法的啟發性、通用性等方面都有所改進。第三代專家系統屬多學科綜合型系統,採用多種人工智能語言,綜合採用各種知識表示方法和多種推理機制及控制策略,並開始運用各種知識工程語言、骨架系統及專家系統開發工具和環境來研製大型綜合專家系統。在總結前三代專家系統的設計方法和實現技術的基礎上,已開始採用大型多專家協作系統、多種知識表示、綜合知識庫、自組織解題機制、多學科協同解題與並行推理、專家系統工具與環境、人工神經網絡知識獲取及學習機制等最新人工智能技術來實現具有多知識庫、多主體的第四代專家系統。
類型 對專家系統可以按不同的方法分類。通常,可以按應用領域、知識表示方法、控制策略、任務類型等分類。如按任務類型來劃分,常見的有解釋型、預測型、診斷型、調試型、維護型、規劃型、設計型、監督型、控制型、教育型等。
體系結構 專家系統與傳統的計算機程序系統有着完全不同的體系結構,通常它由知識庫、推理機、綜合數據庫、知識獲取機制、解釋機制和人機接口等幾個基本的、獨立的部分所組成,其中尤以知識庫與推理機相互分離而別具特色。專家系統的體系結構隨專家系統的類型、功能和規模的不同,而有所差異。
為了使計算機能運用專家的領域知識,必須要採用一定的方式表示知識 。目前常用的知識表示方式有產生式規則、語義網絡、框架、狀態空間、邏輯模式、腳本、過程、面向對象等。基於規則的產生式系統是目前實現知識運用最基本的方法。產生式系統由綜合數據庫、知識庫和推理機3個主要部分組成,綜合數據庫包含求解問題的世界範圍內的事實和斷言。知識庫包含所有用「如果:〈前提〉,於是:〈結果〉」形式表達的知識規則。推理機(又稱規則解釋器)的任務是運用控制策略找到可以應用的規則。正向鏈的策略是尋找出前提可以同數據庫中的事實或斷言相匹配的那些規則,並運用衝突的消除策略,從這些都可滿足的規則中挑選出一個執行,從而改變原來數據庫的內容。這樣反覆地進行尋找,直到數據庫的事實與目標一致即找到解答,或者到沒有規則可以與之匹配時才停止。逆向鏈的策略是從選定的目標出發,尋找執行後果可以達到目標的規則;如果這條規則的前提與數據庫中的事實相匹配,問題就得到解決;否則把這條規則的前提作為新的子目標,並對新的子目標尋找可以運用的規則,執行逆向序列的前提,直到最後運用的規則的前提可以與數據庫中的事實相匹配,或者直到沒有規則再可以應用時,系統便以對話形式請求用戶回答並輸入必需的事實。
早期的專家系統採用通用的程序設計語言(如fortran、pascal、basic等)和人工智能語言(如lisp、prolog、smalltalk等),通過人工智能專家與領域專家的合作,直接編程來實現的。其研製周期長,難度大,但靈活實用,至今尚為人工智能專家所使用。大部分專家系統研製工作已採用專家系統開發環境或專家系統開發工具來實現,領域專家可以選用合適的工具開發自己的專家系統,大大縮短了專家系統的研製周期,從而為專家系統在各領域的廣泛應用提供條件。
正向推理方法的特點
正向推理又稱數據驅動推理,是按照由條件推出結論的方向進行的推理方式,它從一組事實出發,使用一定的推理規則,來證明目標事實或命題的成立。一般的推理過程是先向綜合數據庫提供一些初始已知事實,控制系統利用這些數據與知識庫中的知識進行匹配,被觸發的知識,將其結論作為新的事實添加到綜合數據庫中。重複上述過程,用更新過的綜合數據庫中的事實再與知識庫中另一條知識匹配,將其結論更新至綜合數據庫中,直到沒有可匹配的新知識和不再有新的事實加入到綜合數據庫中為止。然後測試是否得到解,有解則返回解,無解則提示運行失敗。
1) 將用戶提供的初始已知事實送入綜合數據庫;
2) 檢查綜合數據庫中是否已經包含問題的解,若有則求解結束,否則執行下一步;
3)將初始已知事實與知識庫中的知識做匹配,若有,則轉4),否則轉6);
4)將所有的匹配成功的知識構建成一個知識集;
5)若知識集不為空,則按某種衝突消解策略選擇一條規則進行推理,並將其推出的新事實更新至綜合數據庫,然後轉2);若知識集為空,則轉6)
6)詢問用戶是否可提供新的事實,若有則將其添加至綜合數據庫,轉3);否則表示問題求解失敗,退出。
正向推理控制策略的優點在於用戶可以主動地提供問題的相關信息(新事實),並且及時給出反應。不足之處在於求解過程中執行許多與問題無關的操作,有一定的盲目性,效率較低,在推理過程中可能推出許多和問題無關的子目標。
異常原因分析和控制決策的正向推理流程
用JAVA如何實現基於產生式表示的動物識別系統?
(1) 初始化綜合數據庫,即把欲解決問題的已知事實送入綜合數據庫中;
(2) 檢查規則庫中是否有未使用過的規則,若無轉 (7);
(3) 檢查規則庫的未使用規則中是否有其前提可與綜合數據庫中已知事實相匹配的規則,若有,形成當前可用規則集;否則轉(6);
(4) 按照衝突消解策略,從當前可用規則集中選擇一個規則執行,並對該規則作上標記。把執行該規則後所得到的結論作為新的事實放入綜合數據庫;如果該規則的結論是一些操作,則執行這些操作;
(5) 檢查綜合數據庫中是否包含了該問題的解,若已包含,說明解已求出,問題求解過程結束;否則,轉(2);
(6) 當規則庫中還有未使用規則,但均不能與綜合數據庫中的已有事實相匹配時,要求用戶進一步提供關於該問題的已知事實,若能提供,則轉(2);否則,執行下一步;
(7) 若知識庫中不再有未使用規則,也說明該問題無解,終止問題求解過程。
說明:從第(3)步到第(5)步的循環過程實際上就是一個搜索過程
原創文章,作者:JSHR,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/147923.html