人工智能與機器翻譯_第1頁
人工智能與機器翻譯_第2頁
人工智能與機器翻譯_第3頁
人工智能與機器翻譯_第4頁
人工智能與機器翻譯_第5頁
已閱讀5頁,還剩107頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

人工智能與機器翻譯主講:楊憲澤——產生式系統(tǒng)及其搜索方法第3章產生式系統(tǒng)及其搜索方法3.1產生式系統(tǒng)3.2產生式系統(tǒng)的搜索(控制)戰(zhàn)略3.3圖搜索算法3.4產生式系統(tǒng)的規(guī)那么問題3.5運用舉例3.6產生式系統(tǒng)的不確定性問題3.7系統(tǒng)設計技巧3.1產生式系統(tǒng)產生式系統(tǒng)運用類似于文法的規(guī)那么,對符號串作交換運算。它是智能軟件中運用最普遍、最典型的一種構造。為什么要采用產生式系統(tǒng)作為智能軟件的主要構造呢?這可以有兩點理由:(1)用產生式系統(tǒng)構造求解問題的過程和人類求解問題時的思想過程很相象,因此可以用它來模擬人類求解問題時的思想過程;(2)可以把產生式系統(tǒng)作為智能軟件中的根本構造單元或根本方式對待,就好象是積木世界中的積木塊一樣,因此研討產生式系統(tǒng)的根本問題就具有普通意義。3.1產生式系統(tǒng)3.1.1產生式系統(tǒng)的組成部分一個智能軟件用產生式系統(tǒng)設計的根本組成是:一個綜合數(shù)據(jù)庫;一組產生式規(guī)那么;一個控制系統(tǒng)。綜合數(shù)據(jù)庫是產生式系統(tǒng)所運用的主要數(shù)據(jù)構造,用來表述問題的形狀或有關現(xiàn)實。它包含求解問題的信息,其中有些部分可以是不變的,有些部分能夠只與當前問題的解有關。人們可以根據(jù)問題的性質,用適當?shù)姆椒▉順嬙炀C合數(shù)據(jù)庫的信息。3.1產生式系統(tǒng)3.1.1產生式系統(tǒng)的組成部分產生式規(guī)那么的普通方式為:條件─→行動或前提─→結論即表示成為:if┄┄then┄┄的方式。其中,左邊確定了該規(guī)那么可運用的先決條件;右邊描畫了運用這條規(guī)那么所采取的行動或得出的結論。一條產生式規(guī)那么滿足了運用的先決條件之后,就可對綜合數(shù)據(jù)庫進展操作,使其發(fā)生變化。如綜合數(shù)據(jù)庫代表當前形狀,那么運用規(guī)那么后就使形狀發(fā)生轉換,生成新形狀。3.1產生式系統(tǒng)3.1.1產生式系統(tǒng)的組成部分控制系統(tǒng)是軟件的控制程序,也是規(guī)那么的解釋(推理)程序。它規(guī)定了如何選擇一條可運用的規(guī)那么對數(shù)據(jù)庫進展操作,即確定了求解過程的推理道路。當數(shù)據(jù)庫滿足終了條件時,系統(tǒng)就應停頓運轉;還要使系統(tǒng)在求解過程中記住運用過的規(guī)那么序列,以便最終能給出解的途徑。控制系統(tǒng)也稱控制戰(zhàn)略,它也可以是從規(guī)那么集中選擇規(guī)那么并作用于形狀的一種廣義選取函數(shù)。確定某一種戰(zhàn)略后,可以算法的方式給出。在建立產生式系統(tǒng)描畫時,還要給出初始形狀和目的條件,詳細闡明所求解的問題。產生式系統(tǒng)中控制戰(zhàn)略的作用就是從初始形狀出發(fā),尋求一個滿足一定條件的問題形狀。目的條件也是產生式系統(tǒng)終了條件的根底。3.1產生式系統(tǒng)3.1.1產生式系統(tǒng)的組成部分上述產生式系統(tǒng)的定義具有普通性,它可用來模擬任一可計算過程。在研討人類進展問題求解過程時,完全可用一個產生式系統(tǒng)來模擬求解過程,及可作為描畫搜索的一種有效方法。作為智能中的一種方式體系,它還具有以下優(yōu)點:(1)適宜于模擬強數(shù)據(jù)驅動特點的智能行為。當一些新的數(shù)據(jù)數(shù)入時,系統(tǒng)的行為就要改動;(2)易于添加新規(guī)那么去順應新的情況,而不破壞系統(tǒng)的其他部分。這是由于產生式系統(tǒng)的各組成部分具有相對的獨立性,因此便于擴展和修正。3.1產生式系統(tǒng)3.1.1產生式系統(tǒng)的組成部分用產生式系統(tǒng)來求解問題,首先必需建立起問題的產生式系統(tǒng)描畫,即規(guī)定出數(shù)據(jù)庫、規(guī)那么集合及其控制戰(zhàn)略。這種把一個問題的表達轉化為產生式系統(tǒng)的三個組成部分,在智能技術中通常稱為問題的表示。普通來說一個問題可有多種表示方式,而選擇一種較好的表示是運用智能技術處理實踐問題首先要思索的,而且要有一定的技巧。建立了產生式系統(tǒng)描畫之后,經(jīng)過控制戰(zhàn)略,可求得實現(xiàn)目的的一個規(guī)那么序列,這就是所謂問題的解,這個解序列是根據(jù)控制系統(tǒng)記住搜索目的過程中用過的一切規(guī)那么而構造出來的。3.1產生式系統(tǒng)3.1.1產生式系統(tǒng)的組成部分在普通情況下,問題能夠有多個解的序列,但有時會要求得到有某些附加約束條件的解,例如要求步數(shù)最少、間隔最短等。這些約束條件通常是用耗散或代價這一概念來概括,這時問題可稱為尋覓具有最小耗散的解。在用產生式系統(tǒng)求解問題時,有時引入形狀空間圖。形狀空間圖是一個有向圖,其節(jié)點可表示問題的各種形狀(綜合數(shù)據(jù)庫),節(jié)點之間的弧線代表一些操作(產生式規(guī)那么),它們可把一種形狀導向另一種形狀。這樣建立起來的形狀空間圖,描畫了問題一切能夠出現(xiàn)的形狀及形狀和操作之間的關系,因此可以較直觀地看出問題的解途徑及其性質。當然,只需問題空間規(guī)模較小才能夠作出形狀空間圖。3.1產生式系統(tǒng)3.1.1產生式系統(tǒng)的組成部分建立產生式系統(tǒng)描畫的過程,就是所謂問題的表示。對問題表示的好壞,往往對求解過程的效率有很大的影響。一種較好的表示法會簡化形狀空間和規(guī)那么集表示,此外,高效率的問題求解過程與控制戰(zhàn)略有關,適宜的控制戰(zhàn)略可減少形狀空間的搜索范圍,提高求解的效率。從以上論述可知,用產生式系統(tǒng)來描畫和求解問題,就是在問題空間中搜索一條從初始形狀到達某一個目的形狀的途徑。這完全可以模擬人的求解過程,也就是可以把產生式系統(tǒng)作為求解問題思索過程的一種模擬。3.1產生式系統(tǒng)3.1.2產生式系統(tǒng)的根本算法E1:DATA←初始現(xiàn)實庫E2:untilDATA滿足終了條件以前,doE3:beginE4:在規(guī)那么集中,選某一條可用于DATA的規(guī)那么E5:DATA←規(guī)那么運用到DATA得到的結果E6:終了3.1產生式系統(tǒng)3.1.3產生式系統(tǒng)的類型正向、逆向、雙向產生式系統(tǒng)用產生式系統(tǒng)求解某一問題時,假設按照規(guī)那么運用的方式或者說按推理方向來劃分的話,有正向、逆向和雙向產生式系統(tǒng)。正向產生式系統(tǒng)是從初始形狀出發(fā)朝著目的形狀這個方向運用規(guī)那么,即正推的方式任務,稱這些規(guī)那么為F規(guī)那么;假設選目的形狀作為初始數(shù)據(jù)庫逆向進展求解,即逆向運用規(guī)那么,產生子目的形狀,反方向一步一步朝著初始形狀方向求解,整個逆推方式任務,稱逆向產生式系統(tǒng),逆向運用的規(guī)那么稱B規(guī)那么;假設以雙向搜索的方式(即正向和逆向同時進展)去求解問題,那么稱為雙向產生式系統(tǒng)。3.1產生式系統(tǒng)3.1.3產生式系統(tǒng)的類型可交換的產生式系統(tǒng)可交換式產生式系統(tǒng)的可交換性指幾條規(guī)那么的運用可以恣意交換次序而不影響求解。普通來說,當一個產生式系統(tǒng)對任何一個數(shù)據(jù)庫D都具有如下性質時,這樣一個產生式系統(tǒng)是可交換的。(1)可運用于D的規(guī)那么集合,運用了其中恣意一條規(guī)那么之后所生成的任何數(shù)據(jù)庫,這樣一個規(guī)那么集合還適用;(2)滿足目的條件的某個數(shù)據(jù)庫D,當運用任何一個可運用于數(shù)據(jù)庫D的規(guī)那么之后所生成的任何數(shù)據(jù)庫,任然滿足目的條件;(3)假設對D運用某一規(guī)那么序列后得到的一個數(shù)據(jù)庫D'(并能到達解),當改動這些規(guī)那么次序后,任然可求得解,即求得D'與運用滿足D的可運用規(guī)那么集合中的規(guī)那么次序無關。3.1產生式系統(tǒng)3.1.3產生式系統(tǒng)的類型可交換的產生式系統(tǒng)例:給定一個整數(shù)集合的初始形狀{a,b,c},設目的形狀為具有a,b,c,ab,bc,ca這六個元素組成的集合??蛇\用的規(guī)那么集合為R1:if{a,b,c}then{a,b,c,ab}R2:if{a,b,c}then{a,b,c,bc}R3:if{a,b,c}then{a,b,c,ca}顯然,這個產生式實例具有可交換性。一個產生式系統(tǒng)具有可交換性,求解時只需搜索其中任一條途徑,只需解存在就一定能找到目的,不用探求多條途徑,因此不可撤回的控制方式(下節(jié)論述)在這種系統(tǒng)中運用很適宜,因解與最初可運用的規(guī)那么系列的次序無關,系統(tǒng)不用提供特殊選擇規(guī)那么的機理。3.1產生式系統(tǒng)3.1.3產生式系統(tǒng)的類型可分解的產生式系統(tǒng)先研討一個重寫問題的產生式系統(tǒng),初始數(shù)據(jù)庫為(C,B,Z),產生式規(guī)那么如下:R1:C→(D,L)R2:C→(B,M)R3:B→(M,M)R4:Z→(B,B,M)終了條件是生成只包含M組成的數(shù)據(jù)庫,即(M,…,M)。3.1產生式系統(tǒng)3.1.3產生式系統(tǒng)的類型可分解的產生式系統(tǒng)用圖搜索方式求解這個問題時,搜索得到的部分形狀空間圖見圖26。圖中只給出兩條到達目的的途徑和一條失敗的途徑。實踐搜索時有能夠去探求更多的途徑,往往導致效率降低。對于個問題,為了防止搜索多余的途徑,可以將初始數(shù)據(jù)庫分解成幾個可以獨立加以處置的分量,分別對它們進展求解。即可以分別對每一個分量數(shù)據(jù)庫,測試產生式規(guī)那么可以運用的條件,如此進展下去,直到分量數(shù)據(jù)庫滿足某種終了條件為止。要留意普通結束條件應是一切分量數(shù)據(jù)庫都已滿足終了條件。3.1產生式系統(tǒng)3.1.3產生式系統(tǒng)的類型可分解的產生式系統(tǒng)可以分解產生式系統(tǒng)的綜合數(shù)據(jù)庫和終了條件的產生式系統(tǒng)稱為可分解的產生式系統(tǒng)。一個可分解的產生式系統(tǒng),其根本算法描畫如下:(1)DATA:=初始數(shù)據(jù)庫(2){Di}:=DATA的分解式;每個Di元素都看成單獨的數(shù)據(jù)庫(3)Until{Di}的一切元素都滿足終了條件之前,do:(4)begin(5)從{Di}中選一個不滿足終了條件的D*(6)從{Di}中刪去D*(7)在規(guī)那么集中選擇一條可運用于D*的規(guī)那么R(8){di}:=R運用于D*的結果(9)在{Di}上添加di(10)end以下圖為分解方式(C,B,Z)初態(tài)┌──────┼──────┐↓R2↓R4R1↓(B,M,B,Z)(C,B,B,B,M)(D,L,B,Z)↓R3↓R2↓R3(M,M,M,B,Z)(B,M,B,B,B,M)(D,L,M,M,Z)↓R3↓R3↓R4(M,M,M,M,M,Z)(M,M,M,B,B,B,M)(D,L,M,M,B,B,M)│┌─────┘│↓R4↓R3↓R3(M,M,M,M,M,B,B,M)(D,L,M,M,M,B,M)↓R3↓R3(M,M,M,M,M,M,M,B,M)─┐(D,L,M,M,M,M,M,M,M)R3↓目的(M,M,M,M,M,M,M,M,M,M)圖263.2產生式系統(tǒng)的搜索(控制)戰(zhàn)略在3.1.2節(jié)的算法中,如何選擇一條可運用的規(guī)那么,作用于當前的綜合數(shù)據(jù)庫,生成新的形狀以及記住選用的規(guī)那么序列是構成控制戰(zhàn)略的主要內容。對大多數(shù)的智能運用問題,所擁有的控制戰(zhàn)略知識或信息并缺乏以使每次經(jīng)過算法E4時,一下子就能選出最適宜的一條規(guī)那么來,因此產生式系統(tǒng)還必需把E4擴展成搜索(推理)算法,以致于根本算法的每一循環(huán)中選一條規(guī)那么試用,最終找出某一序列能產生一個滿足終了條件的數(shù)據(jù)庫為止。由此可見,高效率的控制戰(zhàn)略需求有關被求解問題的足夠知識,這樣才干在搜索過程減少盲目性,比較快的找到解途徑。過去三十多年中,人們研討了許多種搜索算法,歸納起來主要有兩類:一類是非啟發(fā)式算法;另一類是啟發(fā)式算法。非啟發(fā)式算法是按預定的控制戰(zhàn)略進展搜索,在其過程中獲得的中間信息不用來改良控制戰(zhàn)略。由于搜索總是按預先規(guī)定的道路進展,沒有思索問題本身的特性,所以不容易選擇到最優(yōu)的搜索途徑,效率較低,且出現(xiàn)"組合爆炸"的頻率高。啟發(fā)式算法是在搜索中參與了與問題有關的啟發(fā)性信息,用以指點搜索朝著最有希望的方向前進,加速問題的求解過程并找到最優(yōu)解。3.2產生式系統(tǒng)的搜索(控制)戰(zhàn)略3.2產生式系統(tǒng)的搜索(控制)戰(zhàn)略3.2.1產生式系統(tǒng)控制戰(zhàn)略分類可分解的產生式系統(tǒng)控制戰(zhàn)略可劃分為兩大類:┌不可撤回方法┌回溯方法└試探性方法─┤└圖搜索方法3.2產生式系統(tǒng)的搜索(控制)戰(zhàn)略3.2.2不可撤回方法這種方法相當于沿著單獨一條路搜索下去,利用問題給出的部分知識決議如何選取規(guī)那么,就是說根據(jù)當前可靠的部分知識選一條可運用規(guī)那么并作用于當前綜合數(shù)據(jù)庫。接著再根據(jù)新形狀繼續(xù)選取規(guī)那么,搜索過程不斷進展,不用思索撤回用過的規(guī)那么。這是由于在搜索過程中如能有效利用部分知識,即使運用了一條不理想的規(guī)那么,也不妨礙下一步選得另一條更適宜的規(guī)那么。這樣不吊銷用過的規(guī)那么,并不影響求到解,只是解序列中能夠多了一些不用要的規(guī)那么。顯然這種戰(zhàn)略具有控制簡單的優(yōu)點。3.2產生式系統(tǒng)的搜索(控制)戰(zhàn)略3.2.2不可撤回方法爬山法不僅適用于爬山問題,那些目的為極大值,搜索過程是不斷接近目的的單值問題都可運用這一方法。運用不可撤回戰(zhàn)略,雖然不能夠對任何形狀總能選得最優(yōu)的規(guī)那么,但是假設運用了一條不適宜的規(guī)那么之后,不去吊銷它并不排除下一步運用一條適宜的規(guī)那么,那么只是解序列有些多余的規(guī)那么而已,求得的解不是最優(yōu)解,但控制較簡單。此外還該當指出,普通很難對給定問題構造出任何情況下都能通用的爬山函數(shù),因此不可撤回的方法具有一定的局限性。3.2產生式系統(tǒng)的搜索(控制)戰(zhàn)略3.2.3回溯方法在問題求解過程中,有時會發(fā)現(xiàn)運用一條不適宜的規(guī)那么會阻擾或拖延到達目的的過程。在這種情況下,需求有這樣的控制戰(zhàn)略:先試一試某一條規(guī)那么,假設以后發(fā)現(xiàn)這條規(guī)那么不適宜,那么允許退回去,另選一條規(guī)那么來試?;厮莘椒ú槐9芡旰玫乃阉鳂錁嬙?只記住當前任務的一條途徑,回溯就是對這條途徑進展修正。運用回溯戰(zhàn)略首要的問題要研討在什么情況下應該回溯,即要確定回溯條件的問題。其次就是如何利用有用知識進展規(guī)那么排序,以減少回溯次數(shù)。回溯應發(fā)生在以下三種情況:(1)新生成的形狀在通向初始形狀的途徑上已出現(xiàn)過;(2)從初始形狀開場,運用的規(guī)那么數(shù)目到達所規(guī)定的數(shù)目之后還未找到目的形狀(這一組規(guī)那么的數(shù)目實踐上就是搜索深度范圍所規(guī)定的);(3)對當前形狀,再沒有可運用的規(guī)那么。3.2產生式系統(tǒng)的搜索(控制)戰(zhàn)略3.2.3回溯方法搜索深度的設置是一個值得留意的問題,設置太淺,有能夠找不到解;設置太深,有能夠導致回溯次數(shù)巨增。因此應根據(jù)實踐情況來規(guī)定搜索范圍,先設置適中的深度搜索,失敗時再逐漸加深。回溯過程是一種可試探的方法,從方式上無論能否存在對選擇規(guī)那么有用的知識,都可以采用這種戰(zhàn)略。即假設沒有有用的知識來引導規(guī)那么選取,那么規(guī)那么可按恣意方式(固定排序或隨機)選取;假設有好的選擇規(guī)那么的知識可用,那么用這種知識來引導規(guī)那么選取,就會減少盲目性,降低回溯次數(shù),甚至不回溯就能找到解,總之普通來說有利于提高效率。此外由于引入回溯機理,可以防止墮入部分極大值的情況,繼續(xù)尋覓其他到達目的的途徑。3.2產生式系統(tǒng)的搜索(控制)戰(zhàn)略3.2.3回溯方法可用遞歸算法描畫回溯戰(zhàn)略:YX0:選擇一條新途徑搜索;YX1:搜索已超出規(guī)定目的(無新途徑、超時,超深度等),失敗退出;否那么搜索繼續(xù);YX2:搜索的形狀找不到可用規(guī)那么,回溯到YX0;YX3:搜索的形狀依某種原那么(恣意陳列或按啟發(fā)式準那么)取有用規(guī)那么;YX4:假設規(guī)那么用完未找到目的,回溯YX0;YX5:取頭條可用規(guī)那么Ri;YX6:刪去頭條規(guī)那么,減少搜索中規(guī)那么集長度(留意,這不動原始規(guī)那么集);YX7:規(guī)那么Ri作用于當前形狀,生成新形狀;YX8:假設找到目的,勝利退出;假設生成的"新形狀"已出現(xiàn)過,回溯到YX0;YX9:記錄新形狀,對新形狀遞規(guī)調用YX1~YX7;產生式系統(tǒng)求解問題時,假設控制系統(tǒng)保管一切規(guī)那么運用后生成并鏈接起來的形狀記錄圖,那么稱任務在這種方式下的控制系統(tǒng)運用了圖搜索戰(zhàn)略。實踐上圖搜索戰(zhàn)略是實現(xiàn)從一個隱含圖中,生成一部分確實含有一個目的節(jié)點的顯式表示的子圖搜索過程。3.3圖搜索算法3.3圖搜索算法3.3.1普通性圖搜索算法步驟1G←S,OPEN←(S);建立一個搜索圖G,它只含有初始節(jié)點S,建立一個OPEN表(今后它用于存儲生成的節(jié)點),開場它只含有初始節(jié)點S。步驟2CLOSED←();建立一個CLOSED表(今后它用于存儲已擴展節(jié)點或將要擴展的某個節(jié)點),它的初始形狀為空表。步驟3LOOP:ifOPEN=()thenreturnFAIL;進入循環(huán)。假設OPEN表已空,闡明沒有節(jié)點可擴展,就前往FAIL,即失敗。步驟4n←FIRST(OPEN),CLOSED←(n,CLOSED);從OPEN表中取出一個節(jié)點n,將其放入CLOSED表中。3.3圖搜索算法3.3.2典型的非啟發(fā)式圖搜索算法分析與改良廣度優(yōu)先搜索法該方法從初始節(jié)點開場,序擴展生成下一級各子節(jié)點,OPEN表中已有的節(jié)點后面(實現(xiàn)先生成的子節(jié)點先擴展),然后從OPEN表中提取最前的一個節(jié)點檢查能否是目的節(jié)點,否那么再擴展,再反復上述操作。這種方法以為同一級各節(jié)點對問題求解的價值是同等的,因此對全部節(jié)點沿廣度進展橫向掃描,按各節(jié)點生成的先后次序,先生成、先檢查、先擴展,沿廣度遍歷一切節(jié)點。這種方法只需問題有解,即假設樹圖上存在目的節(jié)點,經(jīng)搜索一定能找到。所以,廣度優(yōu)先搜索法是完備的,是一種推理算法。但是,在問題大節(jié)點多,且目的節(jié)點間隔初始節(jié)點較遠時將會產生許多無用節(jié)點,搜索效率低,還能夠產生組合爆炸。因此,這種方法較適宜問題不大的環(huán)境中3.3圖搜索算法3.3.2典型的非啟發(fā)式圖搜索算法分析與改良深度優(yōu)先搜索法該方法從初始節(jié)點開場,順序擴展生成下一級各子節(jié)點,放在OPEN表中已有的節(jié)點前面(實現(xiàn)后生成的子節(jié)點先擴展),然后從OPEN表中提取最前的一個節(jié)點檢查能否是目的節(jié)點,否那么再擴展,再反復上述操作。這種方法每一次擴展最晚生成的子節(jié)點,沿著最晚生成的子節(jié)點分支,逐級縱向深化開展。這種方法搜索一旦進入某個分支,就將沿著該分支不斷向下搜索。假設目的節(jié)點恰好在此分支上,那么可較快地得到解。但是,假設目的節(jié)點不在此分支上,不回溯就不能夠得到解。所以,深度優(yōu)先搜索是不完備的,只是推理步驟。假設回溯,不難證明其平均效率與廣度優(yōu)先搜索法一樣。因此,深度優(yōu)先搜索法假設沒有啟發(fā)信息,很難有適用價值。3.3圖搜索算法3.3.2典型的非啟發(fā)式圖搜索算法分析與改良代價驅動搜索法該方法思索了從一個節(jié)點經(jīng)過一條支路,轉移到另一個節(jié)點時所需求支付的代價,如費用、時間等。該方法從初始節(jié)點開場,擴展生成下一級各子節(jié)點,這些子節(jié)點中假設沒有目的節(jié)點需再擴展搜索。把它們放進OPEN表中,根據(jù)初始節(jié)點到它們各自所付出的代價大小進展排序,代價小的節(jié)點放在前面擴展,周而復始反復上述操作,直至找到目的節(jié)點為止。這種方法根據(jù)各條支路所需支付的代價有差別,所以具有同樣途徑長度(所經(jīng)過的支路數(shù))的搜索過程,其搜索代價(所支付的總代價)能夠不同,優(yōu)選最小代價的搜索途徑,進展推理求解問題。代價驅動搜索無論在實際研討方面還是實踐運用方面都很有前景,例如最短途徑問題。進一步的研討以為最短途徑問題的改良應為以下幾點:3.3圖搜索算法3.3.2典型的非啟發(fā)式圖搜索算法分析與改良代價驅動搜索法1)OPEN表的節(jié)點排序問題,特別是在問題節(jié)點多達成千上萬時尤為重要.這一排序應采用映射排序,它是一個基于地址計算的排序,在預置途徑最大代價dmax后,開辟一個數(shù)組P(dmax),就可把節(jié)點送入其值與P數(shù)組下標相等的對應元素中,顯然di=50它對應P(50);dj=500,對應P(500)。一樣代價值的節(jié)點落在同一數(shù)組元素中,用計數(shù)方式可知有幾個。由于數(shù)組元素是有序的,500>50,數(shù)組元素的下標自然把節(jié)點一次定好了位置,排序即完成。這一排序的時間復雜性為O(N),對于OPEN外表臨的無數(shù)次排序操作,極大的提高了效率.2)搜索過程中,假設到達某一節(jié)點的代價≥任一初始節(jié)點到目的節(jié)點的途徑代價,這一節(jié)點的途徑刪去。3)搜索過程中,假好像時出現(xiàn)了兩條到達某一節(jié)點的途徑,代價大的那條途徑即時刪去。3.3圖搜索算法3.3.3典型的啟發(fā)式搜索算法分析與改良搜索過程中,假設在確定擴展那一個節(jié)點時能充分利用與問題求解有關的特性信息,就可以估計出節(jié)點的重要性,就能使搜索選擇重要性較高的節(jié)點,以利于求得最優(yōu)解。象這樣就可用于指點搜索過程,且與詳細問題求解有關的控制性信息稱為啟發(fā)性信息。啟發(fā)性信息可以用于估價節(jié)點重要性,表示為函數(shù)方式:f(x)=g(x)+h(x)其中,g(x)為初始節(jié)點S。到節(jié)點x曾經(jīng)付出的代價;h(x)是從節(jié)點x到目的節(jié)點Sg的最優(yōu)途徑的估計代價,它表達了問題的啟發(fā)性信息,其方式根據(jù)問題的特性確定。3.3圖搜索算法3.3.3典型的啟發(fā)式搜索算法分析與改良A*算法假設對普通性圖搜索算法作以下限制,那么它成為A*算法:(1)OPEN表中的節(jié)點按估價函數(shù)f(x)=g(x)+h(x)的值從小至大進展排序.(2)g(x)是到目前為止,從S。到x的一條最小耗散值途徑的耗散值,是作為從S。到x最小耗散值途徑的耗散值g*(x)的估計值,g(x)>0。(3)h(x)是h*(x)的下界,即對一切x均有h(x)≤h*(x)。而h*(x)是從節(jié)點x到目的節(jié)點的最小代價,假設有多個目的節(jié)點,那么為其中最小的一個。3.3圖搜索算法3.3.3典型的啟發(fā)式搜索算法分析與改良A*算法幾個重要性質:性質1對于有限圖,A*算法一定會在有限步內終止.證明:對于有限圖,其節(jié)點個數(shù)是有限的,A*算法在經(jīng)過假設干次循環(huán)后會出現(xiàn)兩種情況:或者搜索到目的節(jié)點在步驟5終了;或者OPEN表中的節(jié)點被取完在步驟3終了。不管那種情況,A*算法都在有限步內終止。3.3圖搜索算法3.3.3典型的啟發(fā)式搜索算法分析與改良A*算法幾個重要性質:性質2對于無限圖,只需從初始節(jié)點到目的節(jié)點有途徑存在,A*算法也必然終止。證明:分兩步.第一步證明A*算法終了前,OPEN表中存在節(jié)點x‘,它是最優(yōu)途徑上的一個節(jié)點,且滿足f(x')≤f*(s).。設最優(yōu)途徑是S。x1,x2,…,S*g由于A*算法中的h(x)滿足h(x)≤h*(x)所以f(s0),f(x1),f(x2),…,f(xm)均不大于f(sg*)=f*(s0).又由于A*算法是廣度代價擇優(yōu),所以在它終了之前,OPEN表中一定含有S。x1,x2,…,S*g中的一些節(jié)點,設x'是其中最前面的一個,那么它必然滿足f(x')≤f*(S0)至此,第一步證明終了;3.3圖搜索算法3.3.3典型的啟發(fā)式搜索算法分析與改良A*算法幾個重要性質:性質2對于無限圖,只需從初始節(jié)點到目的節(jié)點有途徑存在,A*算法也必然終止。第二步證明:用反證法,假設A*算法不終止,并設e是圖中各條邊的最小代價,d*(xn)是從S。到節(jié)點xn的最短途徑長度,那么顯然有g*(xn)≥d*(xn)×e又由于g(xn)≥g*(xn)所以有g(xn)≥d*(xn)×e再因h(xn)≥0,f(xn)≥g(xn)故得到f(xn)≥d*(xn)×e由于A*算法不終止,隨著搜索的進展,d*(xn)會無限增大,從而使f(xn)也無限增大。這與第一步證明得出的結論矛盾,因對可解形狀空間來說,f*(s0)一定是有限值。所以,只需從初始節(jié)點到目的節(jié)點有途徑存在,即使對于無限圖,A*算法也一定會終止。3.3圖搜索算法3.3.3典型的啟發(fā)式搜索算法分析與改良A*算法幾個重要性質:性質3A*算法一定終止在最正確途徑上證明:假設A*算法不是在最優(yōu)途徑上終止,而是在某個目的節(jié)點t處終止,那么f(t)=g(t)>f*(s0)。但是由性質2證明可知,在A*算法終了之前,OPEN表中存在著節(jié)點x‘,它應該在最優(yōu)途徑上,且滿足f(x')≤f*(s0)此時,A*算法一定會選擇x'來擴展而不會選擇t,這就與假設矛盾,所以,A*算法一定會終止在最優(yōu)途徑上。3.3圖搜索算法3.3.3典型的啟發(fā)式搜索算法分析與改良A*算法幾個重要性質:性質4A*算法是最優(yōu)的證明:A*算法的搜索效率很大程度上取決h(x),在滿足h(x)≤h*(x)的前提下,h(x)的值越大越好。h(x)值越大,闡明它攜帶的啟發(fā)信息越多,搜索時擴展的節(jié)點數(shù)越少,搜索的效率越高。設f1(x)與f2(x)是對同一問題的兩個估價函數(shù)f1(x)=g1(x)+h1(x)f2(x)=g2(x)+h2(x)A1*和A2*分別是以f1(x)及f2(x)為估價函數(shù)的A*算法,且對于一切的非目的節(jié)點x均有h1(x)<h2(x)。3.3圖搜索算法3.3.3典型的啟發(fā)式搜索算法分析與改良A*算法幾個重要性質:性質4A*算法是最優(yōu)的證明〔接前頁):此情況下證明A1*擴展的節(jié)點數(shù)不會比A*2擴展的節(jié)點數(shù)少,用歸納法:設K表示搜索樹的深度當K=0時,結論顯然成立;設當搜索樹的深度為K-1時結論成立,即A*2擴展了的節(jié)點,A*1也擴展了;現(xiàn)僅證明A*2擴展的第K代的任一節(jié)點xk也被A*1擴展:3.3圖搜索算法3.3.3典型的啟發(fā)式搜索算法分析與改良A*算法幾個重要性質:性質4A*算法是最優(yōu)的證明〔接前頁):由假設可知,A*2擴展的前K-1代節(jié)點A*1也都擴展了,因此A1*搜索樹中有一條從初始節(jié)點S。到xk的途徑,其費用不會比A*2搜索樹從S。到xk的費用更大。即g1(xk)≤g2(xk)假設A*1不擴展節(jié)點xk,這表示A*1能找到另一個具有更小估價值的節(jié)點進展擴展并找到最優(yōu)解,此時有f1(xk)≥f*(S0)即g1(xk)+h1(xk)≥f*(S0)運用關系式g1(xk)≤g2(xk)到上列不等式中,得h1(xk)≥f*(S0)-g2(xk),由于h2(xk)=f*(S0)-g2(xk),這就得到h1(xk)≥h2(xk)這與最初的假設h1(x)<h2(x)相矛盾證畢。3.3圖搜索算法3.3.3典型的啟發(fā)式搜索算法分析與改良A*算法的改良改良1OPEN表中自始至終的排序,采用3.3.2.3節(jié)中引見的映射方法。改良2h(x)單調限制:A*算法中,每當擴展一個節(jié)點時都要檢查其子節(jié)點能否已在OPEN表或CLOSED表中,有時還需調整指向父節(jié)點的指針,這就添加了搜索代價。假設對啟發(fā)函數(shù)h(x)單調限制,可減少檢查和調整的任務量,從而提高搜索效率。3.3圖搜索算法3.3.3典型的啟發(fā)式搜索算法分析與改良A*算法的改良所謂單調限制h(x)應滿足兩個條件:(1)h(Sg)=0(2)設xj是節(jié)點xi的任一子節(jié)點,那么有h(xi)-h(xj)≤c(xi,xj)其中,Sg是目的節(jié)點;c(xi,xj)是節(jié)點xi到其子節(jié)點xj的邊代價。假設把上式改寫h(xi)≤h(xj)+c(xi,xj),可看出節(jié)點xi到目的節(jié)點的估價不會超越xi到其子節(jié)點xj邊代價加從xj到目的節(jié)點的估價。3.3圖搜索算法3.3.3典型的啟發(fā)式搜索算法分析與改良A*算法的改良當A*算法的啟發(fā)函數(shù)h(x)滿足單調限制時,可得出以下兩個結論:(1)假設A*算法選擇節(jié)點xn進展擴展,那么g(xn)=g*(xn)(2)由A*算法所擴展的節(jié)點序列其f值是非遞減的。這兩個結論都是在h(x)滿足單調限制時才成立.對于第2個結論,當h(x)不滿足單調限制時,有能夠某個要擴展的節(jié)點比以前擴展的節(jié)點具有較小的f值.3.3圖搜索算法3.3.3典型的啟發(fā)式搜索算法分析與改良A*算法的改良改良3引入感興趣集的算法:這一改良的思緒是這樣的,問題求解時,人們往往知道最正確途徑上有關節(jié)點的某些啟發(fā)信息。例如,在求城市A到城市B的最正確途徑時,人們往往憑本人的閱歷斷定所要求的最正確途徑必經(jīng)城市C和城市H,這里我們稱{C,H}是感興趣集合。假設知道感興趣集且啟發(fā)式搜索算法恰當?shù)剡\用感興趣集,那么一定可以改善算法的搜索效率。3.3圖搜索算法3.3.3典型的啟發(fā)式搜索算法分析與改良A*算法的改良算法的改良運用OPEN1和OPEN2,CLOSED1和CLOSED2四個表,對任一節(jié)點x,假設從s到節(jié)點x的當出途徑中不含感興趣集中的節(jié)點,那么x放入OPEN1中;否那么放入OPEN2中。選擇節(jié)點擴展時,首先擴展OPEN2中的節(jié)點,由于OPEN2中含有感興趣集中的節(jié)點,能夠比OPEN1中的節(jié)點更有希望在最正確途徑上,而且所擴展的節(jié)點數(shù)目總不會多于原算法。3.3圖搜索算法3.3.3典型的啟發(fā)式搜索算法分析與改良討論(1)啟發(fā)式搜索算法在大問題中普通優(yōu)于非啟發(fā)式搜索算法,因此,有效地分析利用啟發(fā)信息尤為重要。含有啟發(fā)信息的評價函數(shù)可寫成以下方式:f(x)=v·g(x)+w·h(x)其中,v、w為權系數(shù)且≥0.當w↑,強調啟發(fā)信息,搜索過程沿最有希望的方向進展,效率一定高,但降低了完備性;當v↑,強調歷史信息,搜索過程沿橫向掃描,有利于完備性,但降低了搜索效率。3.3圖搜索算法3.3.3典型的啟發(fā)式搜索算法分析與改良討論(2)根據(jù)啟發(fā)信息,可將復雜的、規(guī)模大的問題分解為簡單的規(guī)模小的假設干子問題。那么各子問題的搜索過程A1,A2,…,An是完備的,那么搜索過程A也是完備的。A=A1∩A2∩…∩An根據(jù)啟發(fā)信息,可將原始的問題進展同構或同態(tài)的等價變換,轉換為假設干等價問題。那么等價問題的搜索過程A1,A2,…,An是完備的,那么搜索過程A也是完備的。A=A1∪A2∪…∪An.3.3圖搜索算法3.3.4AND/OR圖搜索算法上節(jié)討論的算法具有重要的意義。但對于復雜的問題,它們并不是獨一的途徑,假設利用它們直接求解往往還比較困難。AND/OR圖算法是用于表示問題及其求解過程的又一種方式化方法。定義1AND圖及AND圖算法把一個復雜的問題分解成假設干個較為簡單的子問題,每個子問題又可繼續(xù)分解為更為簡單的子問題,反復此過程,直到不需求再分解或者不能再分解為止。這個分解圖是與圖,根據(jù)這個圖對每個子問題分別求解,然后把這些解合并起來得到原問題解的過程是AND圖算法。3.3圖搜索算法3.3.4AND/OR圖搜索算法定義2OR圖及OR圖算法把一個復雜問題利用同構或同態(tài)的等價變換,使之成為假設干個較容易求解的新問題。這個變換圖是OR圖,根據(jù)這個圖對新問題求解,當且僅當新問題有一個可解,就得到原問題的解的解過程是AO圖算法。定義3可解節(jié)點在AND/OR圖中,滿足以下條件之一者為可解節(jié)點:(1)它是一個終止節(jié)點.(2)它是一個OR節(jié)點,且子節(jié)點中至少有一個是可解節(jié)點.(3)它是一個AND節(jié)點,且其子節(jié)點全部是可解節(jié)點。3.3圖搜索算法3.3.4AND/OR圖搜索算法定義4不可解節(jié)點定義3中三個條件全部不滿足的節(jié)點稱為不可解節(jié)點。下面分析AND/OR圖AO*搜索算法,作一些改良討論;討論類比搜索方法.為此,我們首先給出AND/OR圖的普通搜索過程:(1)把原始問題作為初始節(jié)點,并作為當前節(jié)點。(2)運用分解或等價變換算符對當前節(jié)點進展擴展。(3)為每個子節(jié)點設置指向父節(jié)點的指針。(4)選擇適宜的子節(jié)點作為當前節(jié)點,反復執(zhí)行(2)和(3),直至找到可解節(jié)點或不可解節(jié)點為止。下班可解或不可解的搜索過程都是至上而下的。假設確定某個節(jié)點是可解節(jié)點,那么不可解的后裔節(jié)點不再有用,可從搜索圖中刪去;同樣,假設確定某個節(jié)點是不可解節(jié)點,那么全部后裔節(jié)點都不在有用,也可從搜索圖中刪去。3.3圖搜索算法3.3.5AO*搜索算法分析與改良定義定義5設AND/OR圖G,那么從節(jié)點n到一立刻可解的葉節(jié)點集合N的一解圖G'定義為:(1)G'是G的子圖;(2)假設節(jié)點n是集合N中的元素,那么G'是由單一節(jié)點n組成的;(3)假設節(jié)點n有一個指向節(jié)點{n1,n2,…,nk}的k-銜接符,使得從每個后繼節(jié)點ni到集合N有一個解圖(i=1,2,…,k),那么G'由節(jié)點n、k-銜接符、節(jié)點{n1,n2,…,nk}以及從{n1,n2,…,nk}中的每個節(jié)點到集合N的解圖組成。(4)否那么,從節(jié)點n到集合N不存在解圖。3.3圖搜索算法3.3.5AO*搜索算法分析與改良定義定義6從AND/OR圖恣意節(jié)點n到一立刻可解的葉節(jié)點集合N的解圖耗散值k(n,N)可遞歸地定義為:(1)假設節(jié)點n是集合N中的元素,那么k(n,N)=0;(2)否那么,節(jié)點n有一個通到解圖中后繼節(jié)點集合{n1,n2,…,ni}的銜接符.令該銜接符的耗散值為Cn,那么k(n,N)=Cn+k(n1,N)+k(n2,N)+…+k(ni,N)3.3圖搜索算法3.3.5AO*搜索算法分析與改良定義定義7AND/OR圖求解中,從起始節(jié)點到一可解葉節(jié)點集合具有最小耗散值的一個解圖稱為最正確解圖。令函數(shù)h*(n)表示從AND/OR圖中的節(jié)點n到一可解的葉節(jié)點集合的最正確解圖的耗散值;啟發(fā)式估價函數(shù)h(n)是h*(n)的估計。定義8假設啟發(fā)式估價函數(shù)h滿足單調限制,即對AND/OR圖中恣意節(jié)點n及其適用于n的任一k-銜接符,有h(n)≤Ck+h(n1)+…+h(nk)其中,Ck為k-銜接符的耗散值,n1,n2,…,nk是運用k-銜接符于節(jié)點n所得的全部后繼節(jié)點。3.3圖搜索算法3.3.5AO*搜索算法分析與改良AO*算法A1:建立一個搜索圖G,G:=s,計算q(s)=h(s),IFGOAL(s)THENM(s,SOLVED);開場時圖G只包含s,耗散值估計為h(s),假設s是終節(jié)點,那么標志能解.A2:Untils已標志上SOLVED,do:A3:beginA4:G':=FIND(G);根據(jù)銜接符標志(指針)找出一個待擴展的部分解圖G'.A5:n:=G'中的任一非終節(jié)點;選一個非終節(jié)點作為當前節(jié)點.A6:EXPAND(n),生成子節(jié)點集{nj},G:=ADD({nj},G),計算q(nj)=h(nj),其中nj∈G,IFGOAL(nj)THENM(nj,SOLVED);把n的子節(jié)點添加到G中,對G中未出現(xiàn)的子節(jié)點計算耗散值,假設有終節(jié)點那么加能解標志.A7:S:={n};建立含n的單一節(jié)點集合S.A8:UntilS為空,do3.3圖搜索算法3.3.5AO*搜索算法分析與改良AO*算法(接前頁)A9:beginA10:REMOVE(m,S),mc∈{S};這個m的子節(jié)點mc應不在S中.A11:(1)修正m的耗散值q(m):對m指向節(jié)點集{n1i,n2i,…,nki}的每一個銜接符i分別計算qi,qi(m)=Ci+q(n1i)+…+q(nki),q(m):=minqi(m);對m個的i個銜接符,取計算結果最小的那個耗散值為q(m).(2)加指針到minqi(m)的銜接符上,或把指針修正到minqi(m)的銜接符上,即原來指針與新確定的不一致時應刪去.(3)IFM(nji,SOLVED)THENM(m,SOLVED);假設該銜接符的一切子節(jié)點都是能解的,那么m也標上能解.A12:IFM(m,SOLVED)∨(q(m)≠q0(m))THENADD(ma,S);m能解或修正的耗散值與原先估算q0不同,那么把m的一切先輩節(jié)點ma添加到S中.A13:endA14:end3.3圖搜索算法3.3.5AO*搜索算法分析與改良分析與改良算法AO*可以了解為兩個主要運算:A1~A6,完成自上而下的圖生成,經(jīng)過有標志的銜接符,尋覓最好的部分解圖,然后對其中一個非終節(jié)點進展擴展,并對其后繼節(jié)點賦給耗散值;A7~A12,完成自下而上的耗散值修正、銜接符標志和節(jié)點的能解標志。(1)耗散值的修正從剛被擴展的節(jié)點n開場,其修正耗散值q(n)取估計h*(n)的一切值中最小的一個,然后根據(jù)耗散值遞歸計算公式逐級向上修正先輩節(jié)點的耗散值,只需下層節(jié)點耗散值修正后,才能夠影響上一層節(jié)點的耗散值,因此必需自底向上不斷修正到初始節(jié)點。(2)在A6中擴展節(jié)點n時,假設不存在后繼節(jié)點(即限入死胡同),那么可在A11中對m(即n)賦一個高的q值,這個高的q值會依次傳送到s,使得含有節(jié)點n的子圖具有高的q(s),從而排除了被當作后選部分解圖的能夠性。3.3圖搜索算法3.3.5AO*搜索算法分析與改良分析與改良(3)A5中怎樣選G'中的一個非終節(jié)點擴展值得研討:普通可以選一個最能夠導致該部分解圖耗散值發(fā)生較大變化的那個節(jié)點先擴展,由于選這個節(jié)點先擴展,會促使及時修正部分解圖的標志。(4)與3.3.3.2節(jié)A算法類似,應讓h(n)滿足單調限制條件,這樣,當h(n)≤h*(n)那么AO*一定能找到最正確解圖。當h(n)≡0時,AO*成寬度優(yōu)先算法。(5)AO*中評價函數(shù)只思索h(n)分量,計算g沒有必要也不能夠。其次由于k-銜接符銜接的有關子節(jié)點,對于父節(jié)點能解與否以及耗散值都有影響,因此不能象A算法那樣優(yōu)先擴展其中具有最小耗散值的節(jié)點。3.3圖搜索算法3.3.6類比搜索方法討論構思在AO*和A算法中,所運用的啟發(fā)信息大多是人們根據(jù)詳細領域問題靠閱歷總結得來的,啟發(fā)信息獲取非常困難,且準確性和可靠性也難以保證。此外,搜索算法普通執(zhí)行一次性搜索,將同一問題的多次搜索視為彼此獨立、毫無相關的過程。每次求解問題時,面臨的都是全新的搜索圖,即使求解的是一樣問題,算法依然從零開場,這顯然與人類求解問題的方式不符。人類求解問題的一個重要特點,就是經(jīng)常利用以前求解一樣或類似問題的閱歷來指點新問題的求解。這實踐上是一種類比學習機制,假設將這種機制引入搜索算法,那么多次搜索被看成相互關聯(lián)的過程,前面搜索積累的閱歷將有助于提高后面搜索的效率。即,利用類比獲得與新問題類似的過去問題的求解過程,作為啟發(fā)信息來指點新問題的求解,這樣可以減少搜索范圍,降低問題求解的復雜性。也就是說,假設算法設計恰當,可以自動獲得啟發(fā)信息。3.3圖搜索算法3.3.6類比搜索方法討論方法討論AO*、A及其它算法在問題的求解過程中利用與該問題相關的啟發(fā)信息來協(xié)助搜索,啟發(fā)信息通常被用于三種情況:(1)協(xié)助確定擴展節(jié)點。(2)在擴展節(jié)點的過程中,協(xié)助決議產生后繼節(jié)點。(3)在擴展節(jié)點的過程中,決議那些節(jié)點可從搜索樹上刪除。值得留意的是,啟發(fā)信息是一種部分信息,只在搜索途徑的每個節(jié)點上為選擇操作提供參考。3.3圖搜索算法3.3.6類比搜索方法討論方法討論類比搜索方法把類比推理技術與形狀空間的啟發(fā)式搜索相結合,實踐上是對人類求解問題、積累閱歷和添加求解問題才干的一種模擬。要實現(xiàn)它,需求處理如下一些主要問題:(1)如何積累問題求解的閱歷,即在一個問題的求解過程中,需求記錄那些有用信息。(2)如何定義和判別兩個問題的求解情況是類似的,如何高效的進展檢索。(3)如何有效地運用類比結論,即類似的過去問題的求解閱歷,作為特殊的啟發(fā)信息指點新問題的求解。3.3圖搜索算法3.3.6類比搜索方法討論方法討論基于上述幾點,需求建立一個類比的啟發(fā)式搜索求解模型。它主要包括生成求解事例、檢索及指點求解三個推理過程。類比搜索方法在每次求解一個新問題時,不是直接去搜索給定的形狀空間,而是首先在求解事例庫中檢索,查找與該問題類似的過去問題的求解事例。假設存在類似問題的求解事例,那么以此作為啟發(fā)信息,指點該問題的求解。詳細地說,就是在新問題的求解過程中,對過去問題的求解事例中記錄的勝利搜索途徑上每個操作的根據(jù)條件重新測試.假設根據(jù)條件仍滿足,那么算法根隨勝利的求解途徑。否那么,對原求解過程進展改寫,構成的新問題求解過程作為一個新事例存儲在事例庫中,以便指點未來類似問題的求解。過去問題與新問題的類似性越高,求解過程需求的搜索就越少。在最理想的情況下,甚至不需求搜索。當沒有檢索到一個與新問題類似的過去問題的求解事例時,那么運用A*或AO*等算法進展,并在獲得解時將求解過程作為一個求解事例存儲在事例庫中。3.3圖搜索算法3.3.6類比搜索方法討論方法討論系統(tǒng)最初運用時,由于事例庫中短少求解事例,只需運用A*或AO*等算法。隨著求解次數(shù)的添加,求解事例將不斷積累,類比的資料增多(啟發(fā)信息增多),從而使求解問題的效率不斷提高。由此可知,類比搜索方法的特點是:類比啟發(fā)信息不僅包含了部分信息,而且提供了指點求解的搜索方向,這樣就可以將一個龐大空間的搜索緊縮為對一個或數(shù)個很小空間的搜索,極大地提高了求解效率。3.3圖搜索算法3.3.7討論用AND/OR圖算法求解問題時,求解過程就是對一個隱含的AND/OR圖進展搜索。初始數(shù)據(jù)庫對應于AND/OR圖的根節(jié)點,規(guī)那么對應于k-銜接符,終了條件的數(shù)據(jù)庫對應于一組終節(jié)點集合,搜索算法的義務就是找到從初始節(jié)點到一組終節(jié)點集的一個解圖。AND/OR圖的啟發(fā)式搜索算法AO*是經(jīng)過評價函數(shù)f(n)=h(n)來引導搜索過程,適用于分解得到的子問題不存在相互作用的情況。假設S→N集存在解圖,當h(n)≤h*(n)且h(n)滿足單調限制條件時,AO*算法一定能找到最正確解圖,在這種情況下,AO*具有可采用性。3.3圖搜索算法3.3.7討論類比搜索方法實施的關鍵技術在于生成求解事例、類似性度量和檢索、以及指點求解。生成求解事例就是積累問題的求解閱歷,其生成過程主要處理的問題是對于一個求解事例需求記錄和保管問題求解過程中的那些特征信息,以及如何進展表示、抽取和存儲這些信息。求解一個復雜問題時,經(jīng)常面臨龐大的搜索。大量被搜索的節(jié)點中,有勝利的、也有失敗的。為了給類似問題的求解提供有用信息,就要確定保管搜索過程中的哪些有用特征信息。顯然,走兩個極端最簡單:第一是記下整個搜索過程;第二是只記問題的最終解。這兩個極端都不圓滿,詳細地作法除了保管問題的最終解外,還應該記錄有關選擇這些操作的情境和根據(jù)條件。這是一個很有意義的研討課題。類似性的度量也是類比搜索方法的一個關鍵問題。類似程度越高,度量方法恰當,類似問題的檢索俞易獲得。關于這方面,目前還是主要根據(jù)新、老問題的特征和關系來確定它們之間的類似性。此外,還可設置類似度閥值,檢索采用直接映射式方法。3.3圖搜索算法3.3.7討論指點求解是類比搜索方法的控制程序,主要思索靈敏的處置戰(zhàn)略。普通要思索以下幾點:(1)當檢索沒有類比啟發(fā)信息時,程序能轉向常規(guī)搜索方法。(2)當檢索到一個與新問題完全類似的過去問題的求解事例時,程序能直接轉換解。(3)當檢索到一個與新問題部分類似的過去問題的求解事例時,程序能提取類似部分解過程,還能組織部分搜索、銜接新的解過程。此外,應有裁剪過去問題多余解過程的功能。3.4產生式系統(tǒng)的規(guī)那么問題3.4.1規(guī)那么不一致緣由及處理方法規(guī)那么集中存在的不一致是影響系統(tǒng)性能的重要要素之一。系統(tǒng)建立初期,由于規(guī)那么集較小,內容也比較簡單,設計人員能對每一條規(guī)那么的條件和結論部分反復琢磨和精心構造,這類問題容易防止。但隨著時間的推移,新的規(guī)那么不斷參與,規(guī)那么集合越來越大,內容也越來越豐富,這時規(guī)那么間的相互影響和相互聯(lián)絡就隨之變得復雜。在此情況下,規(guī)那么的不一致就將自然產生,當然,對它的認識和處理也就顯得很重要。3.4產生式系統(tǒng)的規(guī)那么問題3.4.1規(guī)那么不一致緣由及處理方法主要的不一致規(guī)那么種類(1)循環(huán)規(guī)那么:由數(shù)個規(guī)那么的前提和結論構成一個循環(huán)鏈,最終由末尾規(guī)那么的結果子句推出起始規(guī)那么的前提部分;(2)沖突規(guī)那么:兩個規(guī)那么的前提條件等價,但一個或多個結果子句有矛盾或者前提子句有矛盾而結論部分完全等價;也有能夠由多條規(guī)那么鏈構成沖突規(guī)那么集;(3)冗余規(guī)那么:兩個規(guī)那么的前提條件等價,一個或多個子結果子句也等價;(4)從屬規(guī)那么:兩個規(guī)那么有一樣的結果,但其中一個包含有多余的約束條件。3.4產生式系統(tǒng)的規(guī)那么問題3.4.1規(guī)那么不一致緣由及處理方法不一致規(guī)那么的檢查處理方法(1)對于循環(huán)規(guī)那么,可構造規(guī)那么集的IF---THEN圖,從起始規(guī)那么的條件部分開場搜索,假設搜索過程中遇到的THEN部分已在前面出現(xiàn),就可以中斷搜索,規(guī)那么集中包含的循環(huán)規(guī)那么子集合需設計人員檢查,處理;(2)對于沖突規(guī)那么,構造IF---IF表,對規(guī)那么集內有一樣的IF規(guī)那么子句構造規(guī)那么樹,構成推理圖。同時建立THEN---THEN表用以判別能否有沖突規(guī)那么出現(xiàn)。對一樣IF部分的規(guī)那么繼續(xù)用它的各自THEN部分作為其它可以匹配的IF前提條件,遞歸地構造,如發(fā)現(xiàn)兩個推理圖上分別有節(jié)點在THEN---THEN表上是矛盾的,那么檢測出沖突規(guī)那么,人工予以處理。(3)對冗余規(guī)那么和從屬規(guī)那么的檢查類似于沖突規(guī)那么鏈的方法.不同之處是前者在推理圖中的遍歷是試圖發(fā)現(xiàn)有THEN部分等價的兩條規(guī)那么。3.4產生式系統(tǒng)的規(guī)那么問題3.4.2規(guī)那么排序算法排序算法原那么依賴規(guī)那么:假設Ri的結論部份包含有Rj的條件部份,那么Rj是一個依賴規(guī)那么,即Rj依賴規(guī)那么Ri,或稱Ri是一個被依賴規(guī)那么。優(yōu)先規(guī)那么:假設Ri被Pi個其它規(guī)那么所依賴次數(shù)pi越大,Ri被征引的能夠性越大。靜態(tài)規(guī)那么陳列:亦是在原文分析、原文譯文轉換、譯文生成之前,對規(guī)那么集中已有的規(guī)那么按優(yōu)先次序陳列。動態(tài)規(guī)那么陳列:這相當于自學習才干,即某些句子分析、轉換、生成時,會添加一條或幾條規(guī)那么。這些規(guī)那么有能夠還與未完成的其它語句有關。因此,在對其它語句和完成速度影晌不大的情況下,同時再陳列規(guī)那么稱之為動態(tài)規(guī)那么陳列。3.4產生式系統(tǒng)的規(guī)那么問題3.4.2規(guī)那么排序算法排序算法原那么映射陳列:是一個基于地址計算的排序。例如,求出上述Pi(i=1,2,...,N〕的最大值后,假設開辟一個數(shù)組D〔Pmax〕,就可把數(shù)據(jù)送入數(shù)據(jù)值下標相等的對應元素中。顯然Pi=50,對應D(50);Pj=500,對應D(500)。一樣數(shù)據(jù)落在同一數(shù)組元素中,用計數(shù)方式可知有幾個。由于數(shù)組元素是有序的,500>50,數(shù)組元素的下標自然把數(shù)據(jù)一次定好位置,最后只需按規(guī)定的方式調非零元秦,一樣元素按計數(shù)值次數(shù)調動,排序即完成。枚舉計數(shù):假設規(guī)那么Ri被規(guī)那么Rj依賴(j=1,2,...,N),那么Pi=pi+1〔Pi初值賦1)。顯然,對于N條規(guī)那么,每一條都將確定與其它規(guī)那么的依賴關系并計算,這一過程稱之為枚舉計數(shù)。3.4產生式系統(tǒng)的規(guī)那么問題3.4.2規(guī)那么排序算法排序算法描畫與分析靜態(tài)算法〔上〕B1:[初始化],有N條規(guī)那么,置P1至PN皆為1。B2:〔對i循環(huán)〕對i=N,N—1,N-2,…,2執(zhí)行B3;然后轉B5。B3:〔對j循環(huán)〕對j=i-1,i-2,…,1執(zhí)行B4;然后轉B2。B4:〔尋求Ri被Rj依賴次數(shù)〕假設Ri被Rj依賴,Pi←Pi+1;否那么轉B3。B5:一遍掃描Pi〔i=1,2,...,N),求Pmax。3.4產生式系統(tǒng)的規(guī)那么問題3.4.2規(guī)那么排序算法排序算法描畫與分析靜態(tài)算法〔上〕靜態(tài)算法進展到這里,求出了任一規(guī)那么Ri被依賴次數(shù)Pi。Pi對應于Ri,相當于Ri被依賴次數(shù)Pi。Pi對應Ri,相當于Ri的關鍵字。其中,很能夠出現(xiàn)Pi=Pj(i≠j),這闡明Ri和Rj被其它規(guī)那么依賴的條數(shù)一樣。怎樣快速地按關鍵字Pi(i=1,2,...,N)大小把規(guī)那么快速地陳列起來,并滿足動態(tài)需求,我們采用高效算法——映射排序算法初始按關鍵字值以映射關系作一次掃描,根本排定規(guī)那么位置,Ri→Pi→D〔Pi〕。對一樣關鍵字的處置,算法附加了三個數(shù)組空間:每一記錄的鏈指針空間L〔i〕,鏈首指針空間Q,鏈當前指針空間W。3.4產生式系統(tǒng)的規(guī)那么問題3.4.2規(guī)那么排序算法排序算法描畫與分析靜態(tài)算法〔上〕關鍵字值Pi與D數(shù)組元素下標映射關系有一次時,D(Pi)=1;這時Q(Pi)←1,記錄了具有這獨一對應關系Pi所在規(guī)那么的地址i,并作為最后排序調整位置的首地址。W〔Pi〕←i為出現(xiàn)一樣關鍵字提供鏈接地址作預備。映射時出現(xiàn)一樣關鍵字,如Pi=Pj,這時D〔Pi〕>1,我們把Pi和Pj對應的兩條規(guī)那么鏈接起來,入口地址仍是Q〔Pi〕=i,但L〔W〔Pi〕〕←j,相當于L(i)=j,此外,W〔Pj〕←j,為鏈接出現(xiàn)多個一樣關鍵字作預備。實施映射和鏈接處置后,最后再實施一次掃描,根據(jù)D數(shù)組下標值的有序性,D=0不實施操作,D≥l從相對應的Q數(shù)組下標值作為入口地址調整一次規(guī)那么位置即完成陳列。3.4產生式系統(tǒng)的規(guī)那么問題3.4.2規(guī)那么排序算法排序算法描畫與分析靜態(tài)算法〔下〕B6:[映射初始化,開辟鏈指針空間L,容量N;映射計數(shù)空間D,鏈首指針空間Q,鏈當前指針空間W,容量均為Dmax,賦初值i=1。B7:掃描Pi,讓D〔Pi〕←D〔Pi〕+1;以映射關系確定Pi的位置,記錄一樣Pi的個數(shù)。B8:假設D(Pi)=1,作W(Pi)←i和Q(Pi)←i,轉B10。B9:假設D〔Pi〕>1,作L〔W〔Pi〕〕←i和W(Pi)←i。B10:i←i+1,直至i=N為止,實施B7~B9。3.4產生式系統(tǒng)的規(guī)那么問題3.4.2規(guī)那么排序算法排序算法描畫與分析靜態(tài)算法〔下〕B11:〔Z=1),從J=Dmax開場,假設D〔J〕=0轉B12;D〔J〕≠0,作遞減陳列。(1)T←Q〔J〕;鏈首指針送T。(2)輸出RT。(3)z←z+1,假設Z≠D(J),T←L〔T〕后轉(2);否那么轉B12。B12:J←J-1,實施B11,直至J=0終了。3.4產生式系統(tǒng)的規(guī)那么問題3.4.2規(guī)那么排序算法排序算法描畫與分析動態(tài)算法規(guī)那么匹配過程中,假設系統(tǒng)自學習新增一條規(guī)那么RN+1,將立刻置人規(guī)那么集適當位置,自動啟動的算法是:C1:對i=1,2,...,N,假設RN+1被Ri依賴,PN+1←PN+1+l〔PN+1初值賦1〕;反之,假設Ri被RN+1依賴,Pi←Pi+1。C2:假設PN+1>Pmax,Pmax←PN+1C3,調靜態(tài)算法〔下〕,其中修正N←N+1。3.4產生式系統(tǒng)的規(guī)那么問題3.4.2規(guī)那么排序算法排序算法描畫與分析算法分析1〕靜態(tài)算法〔上〕時間復雜性為O〔N2〕,由于B1~B5執(zhí)行步驟共需(N-1)+(N-2)+...+2+1+N=1/2(N2+N)。2〕靜態(tài)算法〔下〕時間復雜性為O〔N〕,由于算法的構思來源于映射排序算法中的一部份,其證明可參閱書末文獻。由于動態(tài)算法僅C1一C2引進附加操作,顯然為O(N),C3為O(N),所以動態(tài)算法時間復雜性為O(N)3.4產生式系統(tǒng)的規(guī)那么問題3.4.2規(guī)那么排序算法排序算法描畫與分析算法分析3〕由于靜態(tài)算法〔下〕附加存儲空間3Pmax+N,因此,動態(tài)算法獲得的高效率是由空間代價換取的。4〕算法假設了規(guī)那么本身依賴,所以Pi的初值賦1。5)算法將規(guī)那么優(yōu)先陳列,使規(guī)那么匹配破費平均時間最小。平均時間最小亦闡明,一般情況下,分折的句子越多,其效率越高;但也能夠存在某些情況,所需規(guī)那么恰好陳列在最后。所以,這一算法是平均時間較優(yōu)算法。3.4產生式系統(tǒng)的規(guī)那么問題3.4.2規(guī)那么排序算法排序算法描畫與分析實驗結果排序算法的實驗是這樣進展的,在上述規(guī)那么集中,分析4條語句。設計第1條語句產生1條規(guī)那么,該規(guī)那么2、3、4條語句都將涉及。把這條規(guī)那么分別放于最后和進展動態(tài)陳列,結果后者完成2、3、4條語句分析較前者速度提高1倍多。這是一個目前具有3380條規(guī)那么的實驗系統(tǒng),有如此實驗效果足以闡明此算法的適用性。3.5運用舉例任何一種自然言語,總是要遵照一定的語法規(guī)那么的.計算機要了解、翻譯自然言語,就要對了解和翻譯的言語建立一套規(guī)那么,也就是語法,并且提供一種適宜計算機處置的語法描畫方式。上下文無關語法是適宜描畫自然言語的一種體系。作為一個例子,先來調查漢語的一個很小子集,它的上下文無關語法由以下一系列重寫規(guī)那么組成:(1)<一種句子構造>→<名詞><動詞><數(shù)詞><名詞>(2)<名詞>→電腦│學院│中國│地圖│衛(wèi)星│…(3)<動詞>→購買│繪制│發(fā)射│…(4)<數(shù)詞>→一顆│十臺│一幅│

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論