版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、知識工程課程報告一一CLIPS學習總結.概述CLIPS是一種被用來編寫專家系統(tǒng)應用程序的計算機語言。專家系統(tǒng)是一組計算機程序,專門用來模仿人類專家的技能和知識。相比之下,一些普通的程序如報表程序,文本處理器,電子表格,電腦游戲等等,并沒有包含人類的技能 和知識。CLIPS之所以被稱之為專家系統(tǒng)工具,是因為它是一個開發(fā)專家系統(tǒng) 的完整環(huán)境,包括一個整合版本和一個調試工具。殼這一詞被保留在CLIPS負責推理的部分中。CLIPS的殼提供了專家系統(tǒng)的基本元素:.事實表和實例表:數(shù)據(jù)的全局存儲。.數(shù)據(jù)庫:包括所有的規(guī)則和規(guī)則表。.推理機:控制所有規(guī)則的執(zhí)行。CLIPS的程序一般包含有規(guī)則,事實和對象。推
2、理機決定了哪條規(guī)則應該被執(zhí)行和在什么時候被執(zhí)行。一個用CLIPS寫成的基于規(guī)則庫的專家系統(tǒng)程序是一個數(shù)據(jù)-驅動型程序,程序里的事實,對象數(shù)據(jù)通過推理機的激活執(zhí)行。.工具的使用事實啟動CLIPS將看到CLIPS的提示如下所示:CLIPSA。此時在CLIPS中直 接輸入命令,這種直接輸入命令的方式被稱之為最高階層。如果有 CLIPS的圖 形界面版本(GUI),也可以用鼠標選擇相應的菜單來代替輸入命令行。離開 CLIPS的一般方式是輸入 exit命令,如下:(exit),按照CLIPS提示點擊返回 鍵。與其他編程語言一樣,CLIPS也有關鍵字??梢允褂?assert命令在事實表 中輸入數(shù)據(jù)。命令如下
3、: CLIPS(assert (duck)。這里,assert命令以(duck)作為 其參數(shù)。點擊回車鍵將命令行發(fā)送到 CLIPS,并有如下響應:Fact-1。這表示 CLIPS已經存儲了 duck的事實,并將其標識為1。并用(facts*看事實,(watch facts)監(jiān)聽事實,(clear)清除所有事實。規(guī)則完成一項有價值的工作,專家系統(tǒng)必須得有事實和規(guī)則。CLIPS語言的規(guī)則 與程序語言如Java, C或Ada中的IF THEN表述非常相似。規(guī)則的常規(guī)語法 如下所示:(defrule rule_name “optinal_comment ”(pattern_1);由一些在“=”之前的元
4、素組成的規(guī)則左部分(pattern_2)(pattern_N)=(action_1);由一些在“二”之后的元素組成的規(guī)則右部分(action_2)(action_M);最后一個“)”是與defrule”前面的“)”配套的。;保證你的圓括弧完整, 否則你將得到錯誤消息提示。CLIPS試圖將模式與事實表中的事實進行匹配,如果規(guī)則的模式與事實匹 配成功,規(guī)則將會被激活(activated)而放入到議程(agenda沖。議程中存放的是所 有被激活的規(guī)則集合。議程中通常包含零個或多個激活的規(guī)則。當議程中沒有激活的規(guī)則時,程序停止執(zhí)行;當議程中有多條激活規(guī)則時,CLIPS自動決定哪條規(guī)則將被合理的觸發(fā)。C
5、LIPS依照增加優(yōu)先權和特權(salience冰對議程的激 活排序。規(guī)則中箭號之前的被稱之為左部(LHS),箭號之后的部分被稱之為右部 (RHS)o如果沒有指定模式,則CLIPS會在輸入(reset命令后自動的激活該條規(guī) 則。詳細介紹在專家系統(tǒng)中,strategy術語的一個用法是激活的沖突消解。CLIPS提供了七種不同的沖突消解策略:深度優(yōu)先(depth),廣度優(yōu)先(breadth), LEX, MEA , complexity, simplicity和隨機(random)。在不考慮具體的應用軟件程序時,很難 說清哪一種策略更好。深度優(yōu)先策略(depth strategy)是CLIPS標準默認
6、策略(default strategy)。當CLIPS第一次啟動時,該默認設置便會被自動設置,后面, 你可以更改默認設置。在深度優(yōu)先策略中,在高權值的激活后,同權值或低權值 之前,新的激活將會被放到議程中。這就是說議程中是從高權值到低權值進行排 序的。自定義事實的關鍵字是deffacts。CLIPS(clear)CLIPS(deffacts facts-name “explaination ” (fact1);被聲明的事實(factN);被聲明的事實CLIPS(reset) ;引入被自定義聲明的事實自定義事實聲明,必需指定一個事實名,如上面的walk,跟在關鍵字deffacts 的后面,事實名
7、后面可以跟由雙引號包含的注釋。同規(guī)則中的注釋一樣,當CLIPS 載入(deffacts*實時,(deffacts)的注釋將會被保留。事實名或注釋后面便是將要 被聲明到事實表中的事實,自定義的事實由 CLIPS的(reset命令聲明添加。(reset命令較之(clear)命令的一個好處是,它不會丟棄所有的規(guī)則。(reset渝令使規(guī)則完整無缺,而(clear)命令將會移除所有議程中的規(guī)則,并移除所有事實 表中的舊的事實。用(reset渝令是開始一個程序執(zhí)行的首選方法,特別是之前程 序已經在運行并且事實表已經被舊的事實打亂時??偠灾?,(reset病令作用于事實有三點:(1)將存在的事實從事實表中移
8、除,同時也會移除議程中的激活規(guī)則。(2)聲明事實(initial-fact)(3)聲明已自定義(deffacts)聲明的事實。事實上,(resetm令對于對象也有相似的作用。它可以刪除實例,創(chuàng)建initial-object,聲明添加自定義實例(definstances)undeffacts命令的作用是通過消除內存中的自定義事實來撤銷(deffacts)聲明的事實:CLIPS(undeffacts fact-name變量與通配符同其他編程語言一樣,CLIPS也通過變量(variables)來存儲值。與事實不同 的是,事實是靜態(tài)的且不會改變,而變量的內容是隨著其分配的值的改變而動態(tài) (dynami
9、c)變化的。變量名,或者稱之為變量標識符(variable identifier),通常被寫 在一個問號的后面,即變量名。通用格式如下:?在一個變量能夠被使用之前,它必須被分配一個值。一個變量的慣用方式是:在 LHS中匹配一個值,隨后在 RHS中對該變量進行約束。舉例如下: (defrule make-quack (duck-sound ?sound)=(assert (sound-is ?sound)最簡單的通配符格式被稱之為單字段通配符,以一個問號“?”來表示。一個單字段通配符僅代表一個字段。多字段通配符的符號是在問號前面加上一個美 元符號,為“ $?,該符號指代零個或多個字段。通配符的另
10、外一個作用是,它 可附屬于一個符號字段來創(chuàng)建一個變量,如?x, $?x, ?name或者$?nama依照LHS中“?”或“$?”的使用,變量可以是單字段變量或多字段變量。注意在 RHS中,只能用?x,這里的x可以是任意名。你可以將“ $”理解成一個函數(shù), 函數(shù)的參數(shù)是一個單字段通配符或者一個單字段變量,分別返回多字段通配符或多字段變量。格式自定義模板(deftemplate奘似于C語言中的結構定義。deftemplate定義模式 中一組相關的字段類似于 C語言中用結構來定義一組相關數(shù)據(jù)。自定義模板是 由一些被命名為slot的字段構成的表。在專家系統(tǒng)程序中,自定義模板有助于 編寫好的格式,同時它
11、在軟件工程中也是非常有用的。示例如下:(deftemplate prospect ;自定義模板關系名可選注釋字段名可選注釋字段名字段類型字段“名字”的默認值(slot name(type STRING)(default ?DERIVE)(slot assets(type SYMBOL)(default rich)(slot age(type NUMBER) ; NUMBER 類型可以是整型 INTEGER 或浮點 FLOAT(default 80)通常,一個有N個槽的自定義模板的一般結構如下所示:(deftemplate (slot-1)ot-2)(slot-N)在一個自定義模板中,屬性值一般
12、被指定精確的值。自定義函數(shù)像其他語言一樣,CLIPS允許程序員通過deffunction來定義自己的函數(shù)C 自定義函數(shù)(deffunction)在提高程序的可讀性上也是非常有用的,可以像調用其 他函數(shù)一樣調用自定義函數(shù),自定義函數(shù)也可以被用來當作其他函數(shù)的參數(shù)使 用。在自定義函數(shù)中,(printout)可以在任何位置使用,甚至不是作為最后一個行 為,因為打印的一個副作用是調用了 (printout)函數(shù)。自定義函數(shù)的通用語法如下所示:(deffunction optional comment(?arg1 ?arg2 , ?argM $?argN);參數(shù)表,最后一個為可選多字段參數(shù) (; act
13、ionK之前的行為不會返回值,僅最后一行;為返回值)自定義函數(shù)僅僅返回最后一個行為,該行為可能是個函數(shù),一個變量或一個常量。 2.7程序的控制除了模式匹配外,規(guī)則還可以通過其他方式獲取信息。CLIPS可以通過使用讀入函數(shù)(read function)來讀入用戶輸入的鍵盤信息。但read函數(shù)有以下限制:(read)函數(shù)并不是可以讀入所有鍵盤輸入的通用函數(shù),它僅能讀入一個字段。(read)的第二個限制是不能輸入圓括號,除非使用雙引號。readline函數(shù)被用來讀入多值,直到輸入回車鍵為止。該函數(shù)將讀入的數(shù)據(jù) 作為一個字符串。為了聲明(readline)數(shù)據(jù),(assert-string)函數(shù)用來聲明一個非字 符串事實,就像用(readline購入。3.總結CLIPS同時支持與其他語言的集成,如 C和Java事實上,CLIPS是C Language Integrated Production的縮寫。規(guī)則能基于事實與對象的匹配,規(guī)則和 對象同時組成了一個集成系統(tǒng)。除了被當作一個獨立的工具之外,CLIPS還能被 程序語言調用,運行其函數(shù),然后返回給調用函數(shù)控制權。同樣的,程序代碼也 能作為一個外部函數(shù)在 CLIPS中被定義和調用。當外部代碼執(zhí)行完畢后,控制 權返回至ij CLIPSo與其他專家系統(tǒng)相比,CLIPS的又是主要體現(xiàn)在以下幾個方面:高效及可移植性好。由于它
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年生物基材料生產與銷售合同
- 2024旅游景區(qū)導游勞動合同書含旅游行業(yè)創(chuàng)新發(fā)展研究2篇
- 7-2 《一名物理學家的教育歷程》說課稿 2023-2024學年統(tǒng)編版高中語文必修下冊
- 2024柚子果品質量檢測與認證服務合同3篇
- 2024年財務報表保密合同3篇
- 個人住宅租賃簡明合同樣本(2024版)版B版
- 2024年水產養(yǎng)殖聯(lián)盟協(xié)議3篇
- 福建省南平市武夷山第三中學高三地理月考試題含解析
- 個人融資擔保借款標準化協(xié)議樣本版
- 6 影子第二課時 說課稿-2024-2025學年語文一年級上冊統(tǒng)編版
- 智能機器人技術導論PPT完整全套教學課件
- 危險性較大的分部分項工程清單 及安全管理措施
- 中職英語語文版(2023)基礎模塊1 Unit 1 The Joys of Vocational School 單元測試題(含答案)
- 最全-房屋市政工程安全生產標準化指導圖冊
- 算法向善與個性化推薦發(fā)展研究報告
- 聚合物的流變性詳解演示文稿
- 電氣設備預防性試驗安全技術措施
- 壓力彈簧力度計算器及計算公式
- 內科學教學課件:免疫性血小板減少癥(ITP)
- 聚焦項目化學習,讓核心素養(yǎng)在教學中落實 教學設計
- 路立得4.1roadleaderv3.0說明書Roadleader是鴻業(yè)研制的BIM系列軟件之一旨在
評論
0/150
提交評論