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

正文內容

人工智能教程答案-資料下載頁

2025-06-19 19:34本頁面
  

【正文】 actions(X).,由于商品每天都在流動,商店的平面圖經常變化。一個典型的平面路徑如圖所示,在這個圖中,點代表機器人的工作站,線表示點與點之間適于巡邏的通道。在機器人的內部數據庫中,將通過一組事實表示圖的路徑,例如:joined_to(a, b)。joined_to(b, c)。joined_to(b, d)。joined_to(d, c)。joined_to(c, e) 。機器人必須能夠判斷連接兩個點的路線,例如,它應該識別出 這個序列代表從e到b的一條路線。請寫出一個程序,用來證明或者反證某一個給定序列是兩個給定點之間的路線。:理解問題已知一個序列和一對點,要求證明(或反證)這個序列是這兩個點之間一條可能的路線??梢钥闯觯@是一個證明型問題:即證明給出的序列是給定的兩點之間的一條路線。那么什么是路線?結合圖2,我們來看幾個有用的例子。(1)b d c這個序列是a和c兩點之間的路線嗎?顯然不是,因為它的起始點不對。(2)d c e這個序列是d和b兩點之間的路線嗎?當然不是:它的終止點不對。(3)a b e是a和e之間的路線嗎?不是,因為在平面圖上,b和e兩個點之間不是直接相連的??梢姡瑢τ谝粋€給定的點序列,要使它成為某對特定的點之間的路線,需要滿足以下三個條件:序列應該從點對的第一點開始。序列應該以點對的第二點結束。序列應該是連通的(連通序列)——也就是說,序列中任意兩個連續(xù)的點在平面圖中應該是相連的。對于給定的一個序列和一對端點,如果這三個條件都滿足,那么可以確信這個序列是這兩個點之間的路線。這三個條件是證明該假設的充分條件,同時也是必要條件。設計方案在Prolog中可以用一個表來表示一個點序列,例如,序列 可以表示為[e, c, d, b];一對端點也可以用一個表表示。因此,route_between([e, c, d, b], [e, b])可以表示egcgdgb是e、b兩點之間的路線。將是我們所關心的關系的一個實例。目標是什么?我們可以寫成route_between(X, [Y, Z]),這里序列X和一對端點[Y, Z]是給定的,我們關心的是目標能否取得成功。為了給route_between寫出一條規(guī)則,我們只需要將上面寫下的三個條件轉換成Prolog就可以了,如下所示:route_between(X, [Y, Z]): begins_with(X, Y),ends_with(X, Z),is_connected(X).如果能夠寫出begins_with、ends_with和is_connected這三個謂詞的檢驗定義,我們應該能夠輸入詢問,如 route_between([a, d, e,c, b], [a, b]),并得到一個是還是否的回答。執(zhí)行方案(1) begins_with該關系的一個實例就是begins_with([b, a, d], b)。顯然,這個關系要成立,端點與表頭必須是完全相同的。用規(guī)則表示就是begins_with([X|Y], X)??梢杂靡恍┰儐栠M行試驗,例如begins_with([b, a, d,], b)等。(2) ends_withends_with([b, a, d], d)就是該關系的一個實例。與begins_with相比,這個關系就不是那么容易定義了,因為表的最后一個元素看起來并不像第一個元素那樣特別。不過,你可以想出一個表,使得它與表[b, a, d]相關,又是從它的最后一個元素開始的嗎?將原表倒置一下,變成[d, a, b]如何?所以我們可以這樣描述ends_with:表X以點Y結束,如果X的逆序從點Y開始。表的倒置,即求一個表的逆序表是關于表的一個最常見的問題,這里我們不做具體討論,其完整程序如圖4所示?,F在,我們就可以用reverse關系和剛才已經定義好的begins_with關系,將上面的描述用Prolog表示成:ends_with(X, Y): reverse(X, Z),begins_with(Z, Y).可以用一些合適的詢問來試驗一下。domainss_list=symbol*predicatesappend(s_list,s_list,s_list)reverse(s_list,s_list)clausesappend([],L,L).append([H|T],L2,[H|Tn]):append(T,L2,Tn).reverse([],[]).reverse([H|T],L):reverse(T,L1),append(L1,[H],L).(3) is_connected給這個關系舉出幾個例子并不困難,例如,通過圖3我們可以看出,表[c, d, b, a]是一個連通序列,而[b, d, c, e, a]不是。用一般序列的表示方法,即[X|Y]來表示可以嗎?為了使得[X|Y]是一個連通序列,對于X有什么要求呢?顯然,X必須與序列中下一個出現的點在平面圖中是直接相連的;因此要把這個“下一個”點展開。所以我們應該用[X1,X2|Y]來表示一般序列,而不是[X|Y];如果X1與X2相連,并且[X2|Y]是一個連通序列,那么這就是一個連通的序列。(注意這里的第二個條件,為什么只問Y是否連通是不夠的呢?)因此,我們寫出如下規(guī)則is_connected([X1,X2|Y]):linked_to(X1, X2),is_connected([X2|Y]).這里我們已經特意用linked_to替代joined_to了,為什么呢?舉例來說,前面給出的joined_to事實聲明a是連到b的,但是沒有事實對應于b連到a。所以需要使用關系linked_to,以使Prolog能夠做出明顯的推論。我們用下面兩條規(guī)則來定義:linked_to(X, Y):joined_to(X, Y).linked_to(X, Y):joined_to(Y, X).然而,我們還沒有完成is_connected的定義。上面的規(guī)則是遞歸的,所以我們需要一個特殊的、非遞歸的情況。[X1,X2|Y]這個模式是包含兩個或兩個以上成員的表,一個只有一個點的表當然是“連通的”,所以我們加上is_connected([X]),這個語句提供了一個“直接的答案”?,F在程序已經完成了,接下來就是檢驗我們的計算機現在確實能夠解決機器人巡邏問題了,用一些詢問,如route_between([d, b,c, e], [d, e])試驗一下。機器人巡邏問題的完整程序如圖5所示,該程序在Turbo Prolog 。domains /*領域段,說明程序要用到的數據類型*/s_list=symbol*predicates /*謂詞段,說明程序要用到的謂詞名和參數*/append(s_list,s_list,s_list)reverse(s_list,s_list)joined_to(symbol,symbol)linked_to(symbol,symbol)begins_with(s_list,symbol)ends_with(s_list,symbol)is_connected(s_list)route_between(s_list,s_list)clauses /*子句段,說明程序要用到的事實和規(guī)則*/append([],L,L).append([H|T],L2,[H|Tn]):append(T,L2,Tn).reverse([],[]).reverse([H|T],L):reverse(T,L1),append(L1,[H],L).joined_to(a,b).joined_to(b,a).joined_to(b,c).joined_to(c,b).joined_to(b,d).joined_to(d,b).joined_to(d,c).joined_to(c,d).joined_to(c,e).joined_to(e,c).linked_to(X,Y):joined_to(X,Y).linked_to(X,Y):joined_to(Y,X).begins_with([X|_],X).ends_with(X, Y):reverse(X,Z),begins_with(Z,Y).is_connected([_]).is_connected([X1,X2|Y]):linked_to(X1,X2),is_connected([X2|Y]).route_between(X, [Y,Z]):begins_with(X,Y),ends_with(X,Z),is_connected(X).第七章 專家系統(tǒng):(1)專家系統(tǒng)的定義 費根鮑姆(E.A.Feigenbaum):“專家系統(tǒng)是一種智能的計算機程序,它運用知識和推理步驟來解決只有專家才能解決的復雜問題” 專家系統(tǒng)是基于知識的系統(tǒng),用于在某種特定的領域中運用領域專家多年積累的經驗和專門知識,求解需要專家才能解決的困難問題 保存和大面積推廣各種專家的寶貴知識 博采眾長 比人類專家更可靠,更靈活 (2)專家系統(tǒng)的特點 ①具有專家水平的專門知識 專家系統(tǒng)中的知識按其在問題求解中的作用可分為三個層次:數據級、知識庫級和控制級 數據級知識(動態(tài)數據):具體問題所提供的初始事實及在問題求解過程中所產生的中間結論、最終結論 數據級知識通常存放于數據庫中 知識庫級知識:專家的知識,這一類知識是構成專家系統(tǒng)的基礎 一個系統(tǒng)性能高低取決于這種知識質量和數量 控制級知識(元知識):關于如何運用前兩種知識的知識 在問題求解中的搜索策略、推理方法 ②能進行有效的推理 推理機構——能根據用戶提供的已知事實,通過運用知識庫中的知識,進行有效的推理,以實現問題的求解。專家系統(tǒng)的核心是知識庫和推理機 ③具有啟發(fā)性 除能利用大量專業(yè)知識外,還必須利用經驗判斷知識來對求解問題作出多個假設(依據某些條件選定一個假設,使推理繼續(xù)進行)④ 能根據不確定(不精確)的知識進行推理 綜合利用模糊的信息和知識進行推理,得出結論 ⑤具有靈活性 知識庫與推理機相互獨立,使系統(tǒng)易于擴充,具有較大的靈活性 ⑥具有透明性 一般有解釋機構,所以具有較好的透明性 解釋機構向用戶解釋推理過程,回答“Why?”、“How?”等問題 ⑦具有交互性 一般都為交互式系統(tǒng),具有較好的人機界面 一方面它需要與領域專家或知識工程師進行對話以獲取知識;另一方面它也需要不斷地從用戶處獲得所需的已知事實并回答詢問。:專家系統(tǒng)的一般結構 人機接口、推理機、知識庫、動態(tài)數據庫、知識獲取機構、解釋機構 知識庫:主要用來存放領域專家提供的專門知識 (1) 知識表達方法的選擇(最多的三種表示方法是產生式規(guī)則、框架和語義網絡) ① 充分表示領域知識 ② 能充分、有效地進行推理 ③ 便于對知識的組織、維護與管理 ④ 便于理解與實現 (2) 知識庫管理冗余和矛盾一致性和完整性安全性推理機 模擬領域專家的思維過程,控制并執(zhí)行對問題的求解 能根據當前已知的事實,利用知識庫中的知識,按一定的推理方法和控制策略進行推理,直到得出相應的結論為止 推理機包括推理方法和控制策略兩部分 推理方法有精確推理和不精確推理(已在推理章節(jié)介紹) 控制策略主要指推理方向控制及推理規(guī)則選擇策略 推理有正向推理、反向推理和正反向混合推理 推理策略一般還與搜索策略有關(已在推理章節(jié)介紹) 推理機性能/構造與知識的表示方法有關,但與知識的內容無關224。保證推理機與知識庫的獨立性,提高靈活性 知識獲取機構 “瓶頸”,是建造和設計專家系統(tǒng)的關鍵 基本任務是為專家系統(tǒng)獲取知識,建立起健全、完善、有效的知識庫,以滿足求解領域問題的需要 要對知識進行一致性、完整性檢測人機接口 專家系統(tǒng)與領域專家、知識工程師、一般用戶間進行交互的界面,由一組程序及相應的硬件組成,用于完成輸入輸出工作 更新、完善、擴充知識庫;推理過程中人機交互;結束時顯示結果 內部表示形式與外部表示形式的轉換 數據庫 又稱“黑板”、“綜合數據庫”或“動態(tài)數據庫”,主要用于存放用戶提供的初始事實、問題描述及系統(tǒng)運行過程中得到的中間結果、最終結果等信息 數據庫是推理機不可缺少的工作場地,同時由于它可記錄推理過程中的各種有關信息,又為解釋機構提供了回答用戶咨詢的依據(需相應的數據庫管理程序) 解釋機構:回答用戶提出的問題,解釋系統(tǒng)的推理過程,使系統(tǒng)對用戶透明:(1) 傳統(tǒng)程序是依據某一確定的算法和數據結構來求解某一確定的問題,而專家系統(tǒng)是依據知識和推理來求解問題,這是專家系統(tǒng)與傳統(tǒng)程序的最大區(qū)別。 傳統(tǒng)程序 = 數據結構 + 算法 專家系統(tǒng) = 知識 + 推理 (2) 傳統(tǒng)程序把關于問題求解的知識隱含于程序中,而專家系統(tǒng)則將知識與運用知識的過程即推理機分離。(使專家系統(tǒng)具有更大的靈活性,使系統(tǒng)易于修改) (3) 從處理對象來看,傳統(tǒng)程序主要是面向數值計算和數據處理,而專家系統(tǒng)則面向符號處理。傳統(tǒng)程序處理的數據多是精確的,對數據的檢索是基于模式的布爾匹配,而專家系統(tǒng)處理的數據和知識大多是不精確的、模糊的,知識的模式匹配也多是不精確的。(4) 傳統(tǒng)程序一般不具有解釋功能,而專家系統(tǒng)一般具有解釋機構,可對自己的行為作出解釋。 (5) 傳統(tǒng)程序因為是根據算法來求解問題,所以每次都能產生正確的答案,而專家系統(tǒng)則像人類專家那樣工作,通常產生正確的答案,但有時也會產生錯誤的答案(這也是專家系統(tǒng)存在的問題之一)。專家系統(tǒng)有能力從錯誤中吸取教訓,改進對某一工作的問題求解能
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1