freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

clips中文用戶手冊(cè)-閱讀頁(yè)

2025-01-30 17:24本頁(yè)面
  

【正文】 而是去制定規(guī)則! 在前面一章中的學(xué)習(xí)中,你已經(jīng)對(duì)事實(shí)有所了解了。 構(gòu)造良好的規(guī)則 完成一項(xiàng)有價(jià)值的工作,專家系統(tǒng)必須得有事實(shí)和規(guī)則。一條規(guī)則與程序語言如 Java, C 或 Ada 中的 IF THEN 表述非常相似。偽代碼不能被計(jì)算機(jī)識(shí)別和執(zhí)行,但是它對(duì)書寫可執(zhí)行代碼提供了有用的指南。如果你記住 IF THEN 的類比特性,那么將規(guī)則從自然語言轉(zhuǎn)化到 CLIPS 語言將很簡(jiǎn)單。你可以在 CLIPS 中直接輸入規(guī)則,也可以新建一個(gè)文本文件,將規(guī)則寫在里面,然后加載到 CLIPS 中來。規(guī)則名緊跟在關(guān)鍵字 defrule 后面。 CLIPS(unwatch facts) CLIPS(clear) CLIPS(assert (animalis duck)) Fact1 CLIPS(defrule duck (animalis duck) = (assert (soundis quack))) CLIPS 如果你按照上面正確的輸入,你便會(huì)看到 CLIPS 的提示符出現(xiàn),否則,你將會(huì)看到一個(gè)錯(cuò)誤消息提示。記住,在一個(gè)聲明中,圓括弧的左邊和右邊部分的數(shù)目是配套的。同時(shí)也增加了可選的規(guī)則頭 (ruleheader)注釋:“ Here es the quack”。雖然現(xiàn)在我們只是討論基于事實(shí)的模式匹配,一般來說,模式的匹配時(shí)基于模式實(shí)體上 (pattern entity)的?;趯?duì)象的模式匹配將稍后討論。當(dāng)然,由空格,制表和回車組成的空格將規(guī)則的幾個(gè)部分分隔開來,以增強(qiáng)可讀性。 CLIPS 忽略注釋里的內(nèi)容。 規(guī)則頭 (animalis duck) 。 THEN 箭頭 (assert (soundis quack))) 。 ? 輸入同一個(gè)規(guī)則名,如本例中的“ duck”,將會(huì)更替前面規(guī)則名為“ duck”里已經(jīng)存在的一切。這與其他程序語言中一個(gè)程序名只能標(biāo)識(shí)唯一程序段是一樣的道理。 由一些在“ =”之前的元素組成的規(guī)則左部分 (pattern_2) . . . (pattern_N) = (action_1) 。 最后一個(gè)“ )”是與“ defrule”前面的“ )”配 。保證你的圓括弧完整,否則你將得到錯(cuò)誤 。行為通常是一類沒有返回值 (return value)的函數(shù),但是它可以完成一些有用的執(zhí)行,如 (assert)和 (retract)。這里的函數(shù)名是“ assert”,它的參數(shù)是“ duck”。 CLIPS 中的函數(shù) (function)是一段可執(zhí)行代碼,該段代碼被特定的函數(shù)名標(biāo)識(shí),返回有用的值或產(chǎn)生有用的副作用,如 (printout)。模式和行為的數(shù)量并不一定得相等,這就是上面例子中用 N 和 M 來代指的意義。每個(gè)模式包含一個(gè)或多個(gè)字段。CLIPS 試圖將模式與事實(shí)表中的事實(shí)進(jìn)行匹配,如果規(guī)則的模式與事實(shí)匹配成功,規(guī)則將會(huì)被激活 (activated)而放入到議程 (agenda)中。議程中通常包含零個(gè)或多個(gè)激活的規(guī)則。 規(guī)則的最后部分為零個(gè)或多個(gè)行為,當(dāng)規(guī)則被觸發(fā) (fire)時(shí),這些行為將會(huì)被執(zhí)行。 Fire一詞意味著 CLIPS 已經(jīng)選定了議程中某條規(guī)則并執(zhí)行。 當(dāng)議程中有多條激活規(guī)則時(shí), CLIPS 自動(dòng)決定哪條規(guī)則將被合理的觸發(fā)。 規(guī)則中箭號(hào)之前的被稱之為左部 (LHS),箭號(hào)之后的部分被稱之為右部(RHS)。 讓鴨子叫吧 CLIPS 通常會(huì)執(zhí)行議程中最高優(yōu)先權(quán)規(guī)則右部的行為部 分。這樣持續(xù)執(zhí)行下去,直到議程中沒有激活的規(guī)則或輸入了停止激活的命令為止。如果沒有顯式的聲明特權(quán)值,則 CLIPS默認(rèn)為 0。本書中,我們將用 default 的定義來作為標(biāo)準(zhǔn)方式。前面知道了 ducksound規(guī)則的模式左部為: (animalis duck) 該模式剛好與 (animalis duck)事實(shí)符合,因此 ducksound 規(guī)則將會(huì)被觸發(fā)。之所以稱之為字面意味著有一個(gè)常數(shù)值,與之對(duì)立的是值可以改變的變量。 輸入 run 命令即可使程序運(yùn)行。 CLIPS(run) CLIPS(facts) f0 (initialfact) f1 (animalis duck) f2 (soundis quack) For a total of 3 facts. CLIPS 在操作之前,讓我們使用 save 命令來保存 duck 規(guī)則,這樣你就可以避免重復(fù)輸入了(如果你還沒有將這些保存到編輯器中)。注意,從 CLIPS內(nèi)存中保存下的代碼只保留了雙引號(hào)內(nèi)可選規(guī)則頭的注釋,而分號(hào)后的注釋就沒有了。這也許讓人有一點(diǎn)沮喪,然而,在你做出一些極端的減輕沮喪 的事情之前 如狠踢你的寵物鴨 你得多了解一些專家系統(tǒng)的基本原理。舉個(gè)例子,舊模式實(shí)體的副本便是一個(gè)新的模式實(shí)體。如果是規(guī)則或模式實(shí)體,或者同時(shí)被改變了,激活將會(huì)被移除。 推理機(jī)通過特權(quán)值將激活進(jìn)行分類。 CLIPS 依照議程中最高的特權(quán)值進(jìn)行規(guī)則的激活,并移除激活。當(dāng)有適當(dāng)?shù)拇碳r(shí),神經(jīng)細(xì)胞會(huì)激發(fā)出一定的電壓脈沖,神經(jīng)細(xì)胞激活后,將遭受折射 (refraction)并在一定時(shí)期內(nèi)不能被再次觸發(fā)。 如果沒有折射效應(yīng),專家系統(tǒng)將會(huì)經(jīng)常陷入到無關(guān)重要的循環(huán)當(dāng)中去。在現(xiàn)實(shí)世界 中,引起觸發(fā)的刺激最終都會(huì)消失。 下面的例子展示了一個(gè)規(guī)則的激活和觸發(fā)。右箭號(hào)表明激活和事實(shí)正在被添加,左箭號(hào)表明已存在的事實(shí)和激活。 激活的默認(rèn)權(quán)值為 0,其后是規(guī)則名:模式 Fact1 。 注意復(fù)制的事實(shí)不會(huì)被輸入 FALSE CLIPS(agenda) 0 duck: f1 For a total of 1 activation. CLIPS(run) ==f2 (soundis quack) CLIPS(agenda) 。 即使事實(shí)已與規(guī)則匹配,折射也不會(huì)允許該激 f1 (animalis duck) 。 ? 查看規(guī)則 在你運(yùn)行 CLIPS 時(shí),也許你想查看某一條規(guī)則,這里有一個(gè)命令:ppdefrule恰當(dāng)?shù)拇蛴∫?guī)則 打印一條規(guī)則。規(guī)則箭號(hào)之前的模式部分仍然被稱之為 LHS,箭號(hào)之后的行為部分仍然被稱之為 RHS。你可以定義模塊,將規(guī)則與那些可以被其他編程語言不同包裝,模塊,過程或函數(shù)納入的聲明類比。如果你想了解更多,請(qǐng)參考 CLIPS 參考指南。同樣, CLIPS 有回車換行關(guān)鍵字: crlf,該關(guān)鍵字以換行格式來改進(jìn)輸出效果。舉例如下: CLIPS(defrule duck (animalis duck) = (printout t “ quack” crlf)) 。一定記得在 printout 命令后輸入“ t”,這將告知 CLIPS 將結(jié)果輸出到電腦的標(biāo)準(zhǔn)輸出設(shè)備 (standard output device)中。然而,這可能會(huì)被重新定義,這樣標(biāo)準(zhǔn)輸 出設(shè)備也可能是其他的設(shè)備,如調(diào)制解調(diào)器或磁盤。在使用該特性的時(shí)候要注意不要太過于自由以免你的程序被人為控制太多。獲取增加的重置值命令為: getincrementalreset。 load 命令載入前面你已經(jīng)保存在磁盤中命名為“ ”文件或者相應(yīng)文件夾下的 任何文件名里的規(guī)則。 最快的載入文件的方法是,首先用 bsave 二進(jìn)制存儲(chǔ)命令將規(guī)則存儲(chǔ)為機(jī)器可讀二進(jìn)制格式。這樣, CLIPS 內(nèi)存會(huì)不加解釋的快速讀取這些二進(jìn)制規(guī)則。它們是 savefacts 和 loadfacts。 batch 命令允許你像在頂層輸入一樣執(zhí)行一 個(gè)文件命令。 system 命令允許操作系統(tǒng)的執(zhí)行和在 CLIPS 內(nèi)的可執(zhí)行。 第三章 詳細(xì)資料 問題不是大局,而是細(xì)節(jié)。現(xiàn)在,你將會(huì)學(xué)到怎樣結(jié)合這些基礎(chǔ)構(gòu)建一個(gè)強(qiáng)大的程序。然而,只包含一條規(guī)則的專家系統(tǒng)無疑作用有限。讓我們來看看一個(gè)需要多條規(guī)則的應(yīng)用軟件程序吧。舉個(gè)例子,紅燈和綠燈情況下的規(guī)則按如下書寫: (defrule redlight (light red) = (printout t “ Stop” crlf)) (defrule greenlight (light green) = (printout t “ Go” crlf)) 當(dāng)上述規(guī)則被輸入到 CLIPS 后,增加一個(gè) (light red) 事實(shí)并運(yùn)行,你將會(huì)看到“ Stop”被打印 出來。 行路 如果你考慮上面所述,交通燈不光只簡(jiǎn)單的包含有紅燈,綠燈,應(yīng)該還是黃燈存在,同時(shí)還有綠色的箭頭標(biāo)識(shí)來保護(hù)左轉(zhuǎn)等。行與止的信號(hào)取決于我們裝置顯示是行人還是行車,這可能要關(guān)注一些不同的信號(hào)。規(guī)則必須覆蓋所有的情況,但是它們必須有多個(gè)模式??纯催@些怎樣工作,輸入上面的規(guī)則并添加事實(shí)(status walking)和 (walksign walk),當(dāng)執(zhí)行 (run),規(guī)則的模式均被滿足,程序輸出“ Go”。重要的一點(diǎn)是,只有當(dāng)規(guī)則中所有的模式都被事實(shí)表中 的事實(shí)滿足時(shí),規(guī)則才能被觸發(fā)。 AND 關(guān)系只有當(dāng)所有的條件都為真時(shí)才為真。只有給出規(guī)則 LHS 中所有的模式滿足,規(guī)則才能被放入到議程中?,F(xiàn)在,該術(shù)語普遍被用在商海(商海即是戰(zhàn)場(chǎng))中,適用于一個(gè)組織為了達(dá)到他們的目的所做的高級(jí)計(jì)劃等 。那么你也許會(huì)說,“那好,我現(xiàn)在就將設(shè)計(jì)好我的專家系統(tǒng),以便同一時(shí)刻僅有一條規(guī)則可能被激活,那么就用不上沖突消解了。 CLIPS 提供了七種不同的沖突消解策略:深度優(yōu)先 (depth),廣度優(yōu)先(breadth), LEX, MEA, plexity, simplicity 和隨機(jī) (random)。即使那樣,判斷上面的七種策略哪一個(gè)是“最好”的,也相當(dāng)困難。 深度優(yōu)先策略 (depth strategy)是 CLIPS 標(biāo)準(zhǔn)默認(rèn)策略 (default strategy)。在深度優(yōu)先策略中,在高權(quán)值的激活后,同權(quán)值或低權(quán)值 之前,新的激活將會(huì)被放到議程中。 在本書中,所有的討論和例子均是在假設(shè)為深度優(yōu)先策略前提下的。否則,你會(huì)發(fā)現(xiàn)操作無效或者甚至是錯(cuò)誤的。 自定義事實(shí) 當(dāng)你使用 CLIPS 的時(shí)候,你也許會(huì)對(duì)在頂層中輸入相同的聲明事實(shí)而感到厭煩。舉例如下: CLIPS(unwatch facts) CLIPS(unwatch activations) CLIPS(clear) CLIPS(deffacts walk “ Some facts about walking” (status walking) 。 被聲明的事實(shí) CLIPS(reset) 。同規(guī)則中的注釋一樣,當(dāng) CLIPS 載入 (deffacts)事實(shí)時(shí), (deffacts)的注釋將會(huì)被保留。 事實(shí) (initialfact)由 (reset)命令自動(dòng)添加進(jìn)來,并且它的事實(shí)標(biāo)識(shí)符一直是 f0。在 CLIPS 的早期版本中,該事實(shí)被用來激活一些類型的規(guī)則,但是現(xiàn)在它早已不作此目的使用了。 (reset)命令較之 (clear)命令的一個(gè)好處是,它不會(huì)丟棄所有的規(guī)則。用 (reset)命令是開始一個(gè)程序執(zhí)行的首選方法,特別是之前程序已經(jīng)在運(yùn)行并且事實(shí)表已經(jīng)被舊的事實(shí)打亂時(shí)。 (2)聲明事實(shí) (initialfact) (3)聲明已自定義 (deffacts)聲明的事實(shí)。它可以刪除實(shí)例,創(chuàng)建initialobject,聲明添加自定義實(shí)例 (definstances)。舉個(gè)例子: CLIPS(undeffacts walk) CLIPS(reset) CLIPS(facts) f0 (initialfact) For a total of 1 fact. CLIPS 這個(gè)例子演示了怎樣將自定義的事實(shí) walk 消除。你甚至還可以使用(undeffacts)清除 initialfact事實(shí)。 注意 你 可 以 對(duì) 議 程 監(jiān) 視 規(guī) 則 (watch rules) 觸 發(fā) 和 監(jiān) 視 激 活 (watch activations)。這些統(tǒng)計(jì)信息對(duì)于調(diào)整專家系統(tǒng)、優(yōu)化運(yùn)行速度非常有用。 watch all命令 監(jiān)視所有的項(xiàng)目。dribbleon 命令會(huì)將所有的信息存儲(chǔ)到被選入對(duì)話框的磁盤文件中,直到dribbleoff 命令的輸入才終止。這兩個(gè)命令如下: (dribbleon filename) (dribbleoff filename) 另外一個(gè)有用的調(diào)試命令是 (run),該命令提供了一個(gè)觸發(fā)規(guī)則數(shù)目的可選參數(shù) 。 (run 1)命令允許你每次只能執(zhí)行一步程序。 像其它的編程語言一樣, CLIPS 也提供斷點(diǎn) (breakpoints)支持,斷點(diǎn)作為 CLIPS 的一個(gè)簡(jiǎn)單指示符,停止順序執(zhí)行而優(yōu)先執(zhí)行指定規(guī)則。 removebreak 命令將移除已經(jīng)設(shè)置的斷點(diǎn)。帶參數(shù) (rulename)的規(guī)則句法如下所示: (setbreak fulename) (removebreak rulename) (showbreaks) 合適的匹配 你可能會(huì)遭遇到這種情況:當(dāng)你確定某條規(guī)則應(yīng)該被激活卻沒有被
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1