KM算法是通過給每個(gè)頂點(diǎn)一個(gè)標(biāo)號(hào)(叫做頂標(biāo))來把求最大_第1頁(yè)
KM算法是通過給每個(gè)頂點(diǎn)一個(gè)標(biāo)號(hào)(叫做頂標(biāo))來把求最大_第2頁(yè)
KM算法是通過給每個(gè)頂點(diǎn)一個(gè)標(biāo)號(hào)(叫做頂標(biāo))來把求最大_第3頁(yè)
KM算法是通過給每個(gè)頂點(diǎn)一個(gè)標(biāo)號(hào)(叫做頂標(biāo))來把求最大_第4頁(yè)
KM算法是通過給每個(gè)頂點(diǎn)一個(gè)標(biāo)號(hào)(叫做頂標(biāo))來把求最大_第5頁(yè)
已閱讀5頁(yè),還剩61頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、KM算法是通通過給每每個(gè)頂點(diǎn)點(diǎn)一個(gè)標(biāo)標(biāo)號(hào)(叫叫做頂標(biāo)標(biāo))來把把求最大大權(quán)匹配配的問題題轉(zhuǎn)化為為求完備備匹配的的問題的的。設(shè)頂頂點(diǎn)Xi的頂標(biāo)為為Ai,頂點(diǎn)Yi的頂標(biāo)為為Bi,頂點(diǎn)Xi與Yj之間的邊邊權(quán)為wi,j。在算法法執(zhí)行過過程中的的任一時(shí)時(shí)刻,對(duì)對(duì)于任一一條邊(i,j),Ai+Bj=wi,j始終成成立。KM算法的正正確性基基于以下下定理:若若由由二分圖圖中所有有滿足Ai+Bj=wi,j的邊(i,j)構(gòu)成的子子圖(稱稱做相等等子圖)有完備備匹配,那么這這個(gè)完備備匹配就就是二分分圖的最最大權(quán)匹匹配。初初始時(shí)時(shí)為了使使Ai+Bj=wi,j恒成立,令A(yù)i為所有與與頂點(diǎn)Xi關(guān)聯(lián)的邊邊的最大大權(quán),Bj=

2、0。如果當(dāng)當(dāng)前的相相等子圖圖沒有完完備匹配配,就按按下面的的方法修修改頂標(biāo)標(biāo)以使擴(kuò)擴(kuò)大相等等子圖,直到相相等子圖圖具有完完備匹配配為止。我我們們求當(dāng)前前相等子子圖的完完備匹配配失敗了了,是因因?yàn)閷?duì)于于某個(gè)X頂點(diǎn),我我們找不不到一條條從它出出發(fā)的交交錯(cuò)路。這時(shí)我我們獲得得了一棵棵交錯(cuò)樹樹,它的的葉子結(jié)結(jié)點(diǎn)全部部是X頂點(diǎn)。現(xiàn)現(xiàn)在我們們把交錯(cuò)錯(cuò)樹中X頂點(diǎn)的頂頂標(biāo)全都都減小某某個(gè)值d,Y頂點(diǎn)的頂頂標(biāo)全都都增加同同一個(gè)值值d.d =minAi+Bj-wi,j |Xi在交錯(cuò)樹樹中,Yi不在交錯(cuò)錯(cuò)樹中狀態(tài)空間間搜索胡俊峰2013-11-29狀態(tài)空間間搜索適用范圍圍和意義義盲目搜索索方法優(yōu)化搜索索技巧參考習(xí)題

3、題推薦材料料狀態(tài)空間間搜索適用范圍圍和意義義盲目搜索索方法優(yōu)化搜索索技巧參考習(xí)題題推薦材料料狀態(tài)空間間搜索適用范圍圍和意義義盲目搜索索方法優(yōu)化搜索索技巧參考習(xí)題題推薦材料料盲目搜索索方法定義狀態(tài)(state)對(duì)問題在在某一時(shí)時(shí)刻進(jìn)展展情況的的數(shù)學(xué)描描述狀態(tài)轉(zhuǎn)移移(state-transition)問題從一一種狀態(tài)態(tài)到轉(zhuǎn)移移到另一一種(或或幾種)狀態(tài)的操操作狀態(tài)空間間(statespace)問題可以以處于的的所有狀狀態(tài)盲目搜索索算法深度優(yōu)先先搜索廣度優(yōu)先先搜索*隨機(jī)化化搜索深度優(yōu)先先搜索(Depth-firstSearch)搜索順序序:1-2-4-8-“走迷宮”深度優(yōu)先先搜索實(shí)現(xiàn):棧棧式和遞遞歸

4、空間開銷銷:棧棧的深度度非遞歸的的實(shí)現(xiàn)框框架void Dfs(inta)while(棧不為且且尚未到到達(dá)目標(biāo)標(biāo)狀態(tài))取出(pop)棧頂元素素進(jìn)行擴(kuò)擴(kuò)展將擴(kuò)展出出的元素素依次壓壓入(push)棧棧的應(yīng)用用迷宮老老鼠解決方案案盡可能前前進(jìn),回回溯,記記錄訪問問過的狀狀態(tài)具體:依次探查查所有可可能的沒沒有被探探查過的的方向?qū)μ讲檫^過的位置置進(jìn)行標(biāo)標(biāo)記無法繼續(xù)續(xù)前進(jìn)則則回溯在某一位位置(i,j)進(jìn)行試探探:N(i-1,j)w(i,j-1)(i,j)E(i,j+1)S(i+1,j)drection42令k取0,1,2,3之一,則則試探位位置為:g =i+ directionk0;h=j +directi

5、onk1;算法設(shè)計(jì)計(jì)走一步,記一步步。方向試探探前進(jìn)push (current)無法前進(jìn)進(jìn)current= pop( )求解迷宮宮中一條條路徑的的方法:從入口開開始,對(duì)對(duì)每個(gè)當(dāng)前位置置沿(E,S,W,N)四個(gè)方向向逐一進(jìn)進(jìn)行試探探,當(dāng)選選定一個(gè)個(gè)可通行行的方向向后,把把當(dāng)前所在位置置及所選的的方向記記錄下來來,然后后從下一一個(gè)位置置開始繼繼續(xù)探索索;若在在當(dāng)前位位置探索索不到可可通行的的方向,則沿原原路一步步一步退退回來,每后退退一步,接著在在該點(diǎn)試試尚未試試過的一一個(gè)方向向。如此此重復(fù)直直到到達(dá)達(dá)出口。用一個(gè)棧棧記錄走走過的位位置,棧中每每個(gè)元素素包括三三項(xiàng),分分別記錄錄當(dāng)前位位置的行行坐標(biāo)

6、、列坐標(biāo)標(biāo)以及在在該位置置上所選選的方向向(即directon數(shù)組的下下標(biāo)值)。廣度優(yōu)先先搜索(Breadth-firstSearch)搜索順序序:1-2-3-4-5-廣度優(yōu)先先搜索實(shí)現(xiàn):隊(duì)隊(duì)列空間開銷銷:可可擴(kuò)展結(jié)結(jié)點(diǎn)+已擴(kuò)展結(jié)結(jié)點(diǎn)標(biāo)記記廣度優(yōu)先先搜索的的實(shí)現(xiàn)框框架void BFS()while(隊(duì)列可擴(kuò)擴(kuò)展且尚尚未到達(dá)達(dá)目標(biāo)狀狀態(tài))從隊(duì)首依依次取出出隊(duì)列中中未擴(kuò)展展的結(jié)點(diǎn)點(diǎn)進(jìn)行擴(kuò)擴(kuò)展,并將新新結(jié)點(diǎn)加加入隊(duì)尾尾。農(nóng)夫、狼狼、羊、菜過河河狀態(tài):(0,1,0,1)0,1分別代表表兩岸操作(算算符)4種:運(yùn)farmer、wolf運(yùn)farmer、sheep運(yùn)farmer、cabbage運(yùn)farmer

7、狀態(tài)空間間大???24=16Map2222可以轉(zhuǎn)化化為迷宮宮問題?狀態(tài)=路路口操作=通通路限制條件件=死胡胡同無形的迷迷宮。地毯式搜搜索!01234567891011121314。如何求得得最優(yōu)解解?廣度優(yōu)先先搜索層層推進(jìn)進(jìn)搜索的層層數(shù)不超超過答案案所在的的層數(shù)01234567891011121314。廣度優(yōu)先先搜索01234567891011121314。隊(duì)列的特特點(diǎn)隊(duì)列是一種特特殊的線線性表,只允許許在表的的一端有有插入操操作,而而在另一一端有刪刪除操作作。隊(duì)頭:允許刪刪除的這這一端叫叫隊(duì)列的的頭。隊(duì)尾:允許插插入的這這一端端叫隊(duì)列列的尾。空隊(duì)列:當(dāng)隊(duì)列列中沒有有任何元元素時(shí),稱為空隊(duì)列。進(jìn)

8、隊(duì)/出隊(duì):隊(duì)列的的插入操操作通常常稱為進(jìn)隊(duì)列或入隊(duì)列,隊(duì)列的的刪除操操作通常常稱為退隊(duì)列或出隊(duì)列。隊(duì)列的基基本概念念:隊(duì)列也稱稱作先進(jìn)進(jìn)先出表表(FirstInFirstOut,F(xiàn)IFO表)。支持持隊(duì)尾插插入,隊(duì)隊(duì)頭刪除除操作。a0a1a2an-1入隊(duì)列隊(duì)頭隊(duì)尾出隊(duì)列隊(duì)列的示示意圖隊(duì)列ADTADTQueueisoperationsQueuecreateEmptyQueue (void );/創(chuàng)建一個(gè)個(gè)空隊(duì)列列。intisEmptyQueue (Queuequ);/判隊(duì)列qu是否為空空隊(duì)列。void enQueue(Queuequ,DataTypex);/往隊(duì)列qu尾部插入入一個(gè)值值為x的元素。

9、void deQueue(Queuequ);/從隊(duì)列qu頭部刪除除一個(gè)元元素。DataTypefrontQueue (Queuequ);/求隊(duì)列qu頭部元素素的值。endADTQueue基于環(huán)形形存儲(chǔ)結(jié)結(jié)構(gòu)的隊(duì)隊(duì)列實(shí)現(xiàn)現(xiàn)a1a2a3a4anfrontrearmodMAXSIZEenQueue:rear =(rear+1)%MAXSIZEqBufferrear =inData;deQueue:outData =qBufferrear;rear =(rear+1)%MAXSIZE ;基于環(huán)形形存儲(chǔ)結(jié)結(jié)構(gòu)的隊(duì)隊(duì)列實(shí)現(xiàn)現(xiàn)把數(shù)組paqu-qMAXNUM從邏輯上上看成一一個(gè)環(huán),這種隊(duì)隊(duì)列稱為為環(huán)形隊(duì)列列。

10、當(dāng)表中已已有MAXNUM1個(gè)結(jié)點(diǎn)時(shí)時(shí),如果果還要插插入,paqu-r和paqu-f就會(huì)重合合,而這這與空隊(duì)隊(duì)列的情情形相混混。為區(qū)分空空隊(duì)列與與滿隊(duì)列列兩種情情況的環(huán)環(huán)形隊(duì)列列,一般般是犧牲牲隊(duì)列中中的一個(gè)個(gè)結(jié)點(diǎn),當(dāng)隊(duì)列列中已有有MAXNUM1個(gè)結(jié)點(diǎn)時(shí)時(shí)就稱滿滿,再要要插入就就發(fā)生溢溢出.paqu-rpaqu-f圖(a)空隊(duì)列a1a2a7a6a5a4a3paqu-fpaqu-r圖(b)隊(duì)列滿,判斷(paqu-r +1) = = paqu-f環(huán)形隊(duì)列列順序結(jié)構(gòu)構(gòu)隊(duì)列的的類型定定義順序結(jié)構(gòu)構(gòu)隊(duì)列的的操作定定義(ADT)Bitwise XORIllustration 1 0 1 0 1 0 1 0

11、0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0kijk =ijk =ij j= k深度與廣廣度優(yōu)先先搜索比比較深度優(yōu)先先搜索棧式結(jié)構(gòu)構(gòu)空間開銷銷小最優(yōu)解需需遍歷所所有解才才能確定定廣度優(yōu)先先搜索隊(duì)列結(jié)構(gòu)構(gòu)空間開銷銷大最先找到到最優(yōu)解解同學(xué)補(bǔ)充充?狀態(tài)表示示及狀態(tài)態(tài)變換(生成)用一個(gè)整整數(shù)表達(dá)達(dá)一個(gè)狀狀態(tài):109用1-8表示8個(gè)數(shù)字,9表示空位位相對(duì)于x所在位置置,Up,down,left,right四個(gè)位置置的數(shù)字字有可能能移動(dòng)。位置變換換:+3,-3,+1,-1數(shù)值變化化:(d1-d2)(ten_p(d2)-ten_p(d1)廣度優(yōu)先先搜索的的變形雙向廣度度優(yōu)先搜搜索雙向廣度

12、度優(yōu)先搜搜索搜索順序序兩個(gè)隊(duì)列列(分別別來自初初始結(jié)點(diǎn)點(diǎn)和目標(biāo)標(biāo)結(jié)點(diǎn)的的擴(kuò)展)交替擴(kuò)擴(kuò)展,每每次都選選擇較小小的一個(gè)個(gè)隊(duì)列進(jìn)進(jìn)行擴(kuò)展展。優(yōu)勢(shì)擴(kuò)展結(jié)點(diǎn)點(diǎn)數(shù)明顯顯減少存儲(chǔ)需求求降低條件初始狀態(tài)態(tài)和目標(biāo)標(biāo)狀態(tài)唯唯一只適用于于最優(yōu)解解問題完全二叉叉樹、堆堆、優(yōu)先先隊(duì)列A*算法:F =G+ H搜索與博博弈經(jīng)典游戲戲博弈樹與與極大極極小過程程alpha-beta剪枝棋類游戲戲設(shè)計(jì)概念與研研究領(lǐng)域域什么是博博弈?谷歌說:百度知道道:人生是永永不停息息的博弈弈過程,博弈意意味著通通過選擇擇合適策策略達(dá)到到合意結(jié)結(jié)果。作作為博弈弈者,最最佳策略略是最大大程度地地利用游游戲規(guī)則則;作為為社會(huì)的的最佳策策略,是是通

13、過規(guī)規(guī)則引導(dǎo)導(dǎo)社會(huì)整整體福利利的增加加?!安┺摹边@這個(gè)詞聽聽起來高高深莫測(cè)測(cè),其實(shí)實(shí)它就是是“游戲戲”的意意思。更更準(zhǔn)確點(diǎn)點(diǎn)說,是是可以分分出勝負(fù)負(fù)的游戲戲。博弈弈論如果果直譯就就是“游游戲理論論”。不不妨說,博弈論論是通過過“玩游游戲”獲獲得人生生競(jìng)爭(zhēng)知知識(shí)的。研究領(lǐng)域域博弈算法法計(jì)算機(jī)的的優(yōu)勢(shì)快速,內(nèi)內(nèi)存大更嚴(yán)密人工智能能領(lǐng)域主要研究究領(lǐng)域挑戰(zhàn)條件:兩兩方、公公平。博弈樹雙方博弈弈背后隱式圖:我們可可以把所所處的局局面看作作是一個(gè)個(gè)狀態(tài)。那么博博弈的過過程就可可以看成成是在狀狀態(tài)空間間中遍歷歷。博弈樹:由于雙雙方博弈弈的過程程具有明明顯的層層次關(guān)系系,我們們可以依依此構(gòu)建建一棵博博弈樹。【

14、圖】象棋的4層博弈樹樹博弈樹博弈樹上上的搜索索數(shù)量級(jí)極極大中國(guó)象棋棋,平均均一次40種走法,5層就有108個(gè)節(jié)點(diǎn)。只能向下下搜索幾幾層為幾層后后的狀態(tài)態(tài)給出估估值自下而上上依次對(duì)對(duì)每個(gè)狀狀態(tài)進(jìn)行行估值極大極小小過程約定雙方方都用最最好的策策略把(甲方得分分-乙方得分分)作為一個(gè)個(gè)局面的的估值。MAX/MIN節(jié)點(diǎn)甲方:在在子節(jié)點(diǎn)點(diǎn)中選擇擇估值最最大的節(jié)節(jié)點(diǎn)(MAX)。即Score(A)= MaxAi|AiF(A)。乙方:在在子節(jié)點(diǎn)點(diǎn)中選擇擇估值最最小的節(jié)節(jié)點(diǎn)(MIN)。即Score(B)= MinBi|BiF(B)?!緢D】一字棋極極大極小小過程【圖】偽代碼(極大極小小算法)負(fù)極大值值算法極大極小小算法的的改進(jìn)修改了返返回估值值的符號(hào)號(hào)避免了極極大極小小的交替替【圖】偽代碼(負(fù)極大大值算法法)-剪枝,值MAX節(jié)點(diǎn)的值:當(dāng)前前已經(jīng)展展開的幾幾個(gè)后繼繼節(jié)點(diǎn)中中的最大大值。它它是該結(jié)結(jié)點(diǎn)估值值的下界界。MIN節(jié)點(diǎn)的值:當(dāng)前前已經(jīng)展展開的幾幾個(gè)后繼繼節(jié)點(diǎn)中中的最小小值。它它是該結(jié)結(jié)點(diǎn)估值值的上界界。易見規(guī)律律:一個(gè)正在在展開的的MAX結(jié)點(diǎn)的值永不下降降。一個(gè)正在在展開的的

溫馨提示

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

評(píng)論

0/150

提交評(píng)論