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

正文內(nèi)容

[工學(xué)]第6章prolog語言-在線瀏覽

2024-12-03 18:49本頁面
  

【正文】 1/10 16 3. 結(jié)構(gòu) 結(jié)構(gòu)也稱復(fù)合對(duì)象 , 它是 PROLOG謂詞中的一種特殊的參量項(xiàng)( 類似于謂詞邏輯中的函數(shù) ) 。 注意 , 這意味著結(jié)構(gòu)中還可包含結(jié)構(gòu) 。 例如下面的謂詞 likes(Tom,sports(football,basketball,tabletennis)) 其中 sports(football,basketball,tabletennis)就是一個(gè)結(jié)構(gòu) ,即復(fù)合對(duì)象。 復(fù)合對(duì)象在程序中的說明,需分層進(jìn)行。 其中 xi(i=1,2,… ,n)為 PROLOG的項(xiàng),一般要求同一個(gè)表的元素必須屬于同一領(lǐng)域。 第 6章 PROLOG語言 2021/11/10 19 例如下面就是一些合法的表 。 這時(shí)其元素可以屬于不同領(lǐng)域 。 后一個(gè)例子說明 , 表也可以嵌套 。 這五種運(yùn)算的順序?yàn)椋?*、 /、mod優(yōu)先于 +、 。 算術(shù)表達(dá)式的形式與數(shù)學(xué)中的形式基本一樣 。 第 6章 PROLOG語言 2021/11/10 21 Prolog語言中的運(yùn)算可以是中綴形式 , 使之簡(jiǎn)明直觀 , 符合人們的習(xí)慣 。Z中, “ +”、 “ amp。( YZ))。 ※ Prolog語言提供了統(tǒng)一的數(shù)據(jù)結(jié)構(gòu) ——項(xiàng)( term)。 項(xiàng)的定義為: 項(xiàng) ∷ = 常量 | 變量 | 結(jié)構(gòu) | “ (” 項(xiàng) “ )” 每一個(gè)項(xiàng)書寫為一個(gè)字符串。 : 事實(shí)用來說明有關(guān)客體以及客體之間的相互關(guān)系 。 關(guān)系中變量的個(gè)數(shù)是任意的 , 而語義意義的解釋是由程序員自己確定的 。 在自然語言中 ,用 “ 如果 ” 一詞來說明規(guī)則 。 如:如果某人是學(xué)生 , 則 John就喜歡該人 。 如: mammal(X):animal(X),has(X,hair). 這一規(guī)則就表示, “ 如果 X是動(dòng)物并且有毛發(fā),則 X是哺乳動(dòng)物 ” 第 6章 PROLOG語言 2021/11/10 25 格式為: ? … ?是 POLOG語言詢問的特殊符號(hào) , 意義就是為真嗎 ? Marry喜歡葡萄酒嗎 ? John喜歡什么 詢問可以寫為: ?likes(marry,wine) ?likes(john,X) Prolog系統(tǒng)將根據(jù)數(shù)據(jù)庫或知識(shí)庫中的事實(shí)和規(guī)則進(jìn)行推演來回答用戶的問題 。 編程時(shí)可以直接利用這些謂詞 , 所以有很高的執(zhí)行效率 。 這六個(gè)關(guān)系運(yùn)算符可用來比較兩個(gè)算術(shù)表達(dá)式的大小。 這六個(gè)關(guān)系運(yùn)算符可用來比較兩個(gè)算術(shù)表達(dá)式的大小 。 該謂詞首先對(duì) Y求值 , 得到一個(gè)整數(shù) , 如果 X未被例化 , 則 X例化為這一結(jié)果 , 且目標(biāo)成功;否則如果 X被例化 , 則 is退化為 =用來判斷成功與否 。 為此每種具體PROLOG一般都提供專門的輸入和輸出謂詞 , 供用戶直接調(diào)用 。 這個(gè)謂詞的功能是從鍵盤上讀取一個(gè)字符串 , 然后約束給變量 X。 這個(gè)謂詞的功能是從鍵盤上讀取一個(gè)整數(shù),然后約束給變量 X,如果鍵盤上打入的不是整數(shù)則該謂詞失敗。 這個(gè)謂詞的功能是從鍵盤上讀取一個(gè)實(shí)數(shù) , 然后約束給變量 X, 如果鍵盤上打入的不是實(shí)數(shù)則該謂詞失敗 。 這個(gè)謂詞的功能是從鍵盤上讀取一個(gè)字符 , 然后約束給變量 X, 如果鍵盤上打入的不是單個(gè)字符 , 則該謂詞失敗 。 這個(gè)謂詞的功能是把項(xiàng) Xi(i=1,2,… n)的值顯示在屏幕上或者打印在紙上 ,當(dāng)有某個(gè) Xi未實(shí)例化時(shí) , 該謂詞失敗 , 其中的 Xi可以是變量 , 也可以是字符串或數(shù)字 。 它使后面的輸出 (如果有的話 )另起一行 。 例如: write(name), n l ,write(age)與 write(name,\n,age)的效果完全一樣 。 2. seeing( X) :如 X為變量 , 則 X被例化為當(dāng)前輸入流;如 X已例化 , 則X與當(dāng)前輸入流匹配時(shí) , 目標(biāo)成功 。 4. tell( X) :把 X定義為當(dāng)前輸出流 , 打開文件 X。 6. told 關(guān)閉當(dāng)前輸出流 , 并在文件尾加上結(jié)束標(biāo)志;置當(dāng)前輸出流為顯示器 。 回溯到 repeat時(shí)又使目標(biāo)成功 , 產(chǎn)生無限循環(huán)的結(jié)果 。 含義是:作為一個(gè)目標(biāo) , 它直接成功 , 但當(dāng)回溯到它的時(shí)候 , 不能重新被滿足 , 并使其雙親目標(biāo)立即失敗 , 即:穿過 !的回溯是不可能的 。 使用 call可以在編制程序時(shí) , 調(diào)用還未知的目標(biāo)函子 。 謂詞 not( X) 可用 ! 和 fail來定義: not( X) :- call( X) , ! , fail. not( X) . 第 6章 PROLOG語言 2021/11/10 36 3. X, Y 謂詞中 “ , ” 是 “ 并且 ” 的意義 。 4. X; Y 謂詞中 “ ; ” 是 “ 或 ” 的意義。 第 6章 PROLOG語言 2021/11/10 37 6. 3. 7 項(xiàng)類 1. var( X) :當(dāng) X為一未例化的變量 , var( X) 為 True。 3. atom( X) :當(dāng) X為原子時(shí) , 目標(biāo) atom( X) 成功 。 5. atomic(X): 當(dāng) X為一個(gè)原子或一個(gè)整數(shù)時(shí) , 則目標(biāo)成功 。 例: ① ? - functor( [ a, b, c ], F, N) . f = 表示表運(yùn)算 。 使用時(shí) , N和 T必須為已例化變量 。 ?, a, [ b, c, d ] ] 4. name( A, L) 該謂詞表示 L由組成 A的字符 ( ASCII碼表示 ) 所構(gòu)成 。 要求 ,X必須是一基本字串--原子 , 它表示一個(gè)文件名 。 同樣地 , X必須是一原子 , 它表示一文件名 。 X必須例化為一個(gè)項(xiàng) 。 同樣地 , X也必須例化為一個(gè)項(xiàng) 。 為了確定被刪除的項(xiàng) ,項(xiàng) X需充分例化 。 第 6章 PROLOG語言 2021/11/10 41 6. retractall( X) :是刪除數(shù)據(jù)庫中所有與 X匹配 ( 頭匹配 ) 的項(xiàng) 。 該目標(biāo)滿足時(shí) , 將數(shù)據(jù)庫中所有以該原子為謂詞的項(xiàng)輸出到當(dāng)前輸出流 。使用時(shí), X必須已例化及已知規(guī)則的主要謂詞,如無該謂詞的規(guī)則,則目標(biāo)失敗;如不止一個(gè)規(guī)則滿足,則首先匹配第一個(gè)規(guī)則,當(dāng)重新滿足該目標(biāo)時(shí),再繼續(xù)與下面的規(guī)則依次匹配。 第 6章 PROLOG語言 2021/11/10 43 例化與匹配 首先通過一個(gè)例子了解幾個(gè)概念:例化 , 解脫 , 匹配 設(shè)有知識(shí)庫: play(marry,swim). play(marry,tennis). play(john,swim). play(john,football). 詢問 ?play(marry,swim).( 瑪麗會(huì)游泳嗎 ? ) 第 6章 PROLOG語言 2021/11/10 44 PROLOG系統(tǒng)將詢問作為一個(gè)目標(biāo) , 搜索知識(shí)庫檢查是否有知識(shí)能滿足目標(biāo) 。 (變量 ) (2)一個(gè)常量只能與自己匹配 (常量 ) (3)如果兩個(gè)函子一致 , 且分量個(gè)數(shù)相等 , 當(dāng)對(duì)應(yīng)分量均匹配的時(shí)候 , 則這兩個(gè)結(jié)構(gòu)可以匹配 (結(jié)構(gòu) ) (4)兩個(gè)事實(shí)匹配 , 就是他們的謂詞相同 , 且對(duì)應(yīng)自變量相匹配 。 若問題 ?play(john,X)此時(shí) X是一個(gè)未例化的變量 , 系統(tǒng)同樣搜索知識(shí)庫 , 與第三個(gè)事實(shí)相匹配 ,X被例化為tennis,并在此處做一個(gè) 標(biāo)記 。 往下搜索 , 又與第四個(gè)事實(shí)匹配 , 系統(tǒng)回答 。 第 6章 PROLOG語言 2021/11/10 47 下面看一下系統(tǒng)的搜索過程: (1) 首先看第一個(gè)子目標(biāo) play(marry,X)X是未例化變量 。 (2) X被例化為 swim, 再看第二個(gè)子目標(biāo) play(john,X)即 ,play(john,swim)。 再從第一個(gè)子目標(biāo)搜索,此時(shí)系統(tǒng)從子句 (1)出,也就是標(biāo)記出開始搜索,同時(shí) X被解脫,重新變?yōu)槲幢焕淖兞俊? (2) 再看第二個(gè)子目標(biāo) , 由于 X被例化為 tennis, 只需要滿足目標(biāo) play(john,tennis), 這時(shí)系統(tǒng)從第一個(gè)子句開始搜索 , 找到事實(shí) (3), 由于第二個(gè)子目標(biāo)滿足了 ,所以系統(tǒng)也在 (3)處做一個(gè)標(biāo)記 , 注意 (2)(3)處的標(biāo)記是不同的 , 因?yàn)橄到y(tǒng)要在可與任何一個(gè)子目標(biāo)滿足的子句處做一個(gè)標(biāo)記 。 試圖 重新滿足 第二個(gè)子 目標(biāo)play(john,tennis), 系統(tǒng)再從 (3)處往下搜索 , 沒有可以匹配的事實(shí) , 該目標(biāo)失敗 , 但是并不能解脫 X因?yàn)?,X是在第一個(gè)目標(biāo)滿足時(shí)被例化的 , 此時(shí)再試圖重新滿足第一個(gè)子目標(biāo) play(marry,X)(此時(shí) X被解脫 )。 系統(tǒng)回答 no 回溯的搜索過程圖見書上 163頁 第 6章 PROLOG語言 2021/11/10 50 綜上所述 , PROLOG系統(tǒng)對(duì)一個(gè)目標(biāo)進(jìn)行處理的步驟就是: (1)從左往右一次滿足連接中的各個(gè)子目標(biāo) (2)對(duì)任何一個(gè)子目標(biāo) , 第一次搜索時(shí) , 總是從知識(shí)庫的第一項(xiàng)開始搜索 a) 如果與事實(shí)匹配 , 則這一子目標(biāo)成功 , 例化相應(yīng)變量 , 設(shè)置標(biāo)記 。 但是兩者可以共享因?yàn)樗麄兲幵谕粋€(gè)位置上面 。 play(marry,Z),play(Y,Z),diff(marry,Y).首先需要滿足 第一個(gè) 子目 標(biāo) play(marry,Z), 從 頭開始 搜索 , 與第 一事 實(shí)play(marry,swim).匹配所以 Z被例化為 swim。 (4)第三個(gè)目標(biāo)就是 diff(ma
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1