




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
KM算法是通過給每個頂點(diǎn)一個標(biāo)號(叫做頂標(biāo))來把求最大權(quán)匹配的問題轉(zhuǎn)化為求完備匹配的問題的。設(shè)頂點(diǎn)Xi的頂標(biāo)為A[i],頂點(diǎn)Yi的頂標(biāo)為B
[i],頂點(diǎn)Xi與Yj之間的邊權(quán)為w[i,j]。在算法執(zhí)行過程中的任一時(shí)刻,對于任一條邊(i,j),A[i]+B[j]>=w[i,j]始終
成立。KM算法的正確性基于以下定理:
若由二分圖中所有滿足A[i]+B[j]=w[i,j]的邊(i,j)構(gòu)成的子圖(稱做相等子圖)有完備匹配,那么這個完備匹配就是二分圖的最大權(quán)匹配。
初始時(shí)為了使A[i]+B[j]>=w[i,j]恒成立,令A(yù)[i]為所有與頂點(diǎn)Xi關(guān)聯(lián)的邊的最大權(quán),B[j]=0。如果當(dāng)前的相等子圖沒有完備匹配,就按下面的方法修改頂標(biāo)以使擴(kuò)大相等子圖,直到相等子圖具有完備匹配為止。
我們求當(dāng)前相等子圖的完備匹配失敗了,是因?yàn)閷τ谀硞€X頂點(diǎn),我們找不到一條從它出發(fā)的交錯路。這時(shí)我們獲得了一棵交錯樹,它的葉子結(jié)點(diǎn)全部是X頂點(diǎn)?,F(xiàn)在我們把交錯樹中X頂點(diǎn)的頂標(biāo)全都減小某個值d,Y頂點(diǎn)的頂標(biāo)全都增加同一個值d.d=min{A[i]+B[j]-w[i,j]|Xi在交錯樹中,Yi不在交錯樹中}
狀態(tài)空間搜索胡俊峰
2013-11-29狀態(tài)空間搜索適用范圍和意義盲目搜索方法優(yōu)化搜索技巧參考習(xí)題推薦材料狀態(tài)空間搜索適用范圍和意義盲目搜索方法優(yōu)化搜索技巧參考習(xí)題推薦材料狀態(tài)空間搜索適用范圍和意義盲目搜索方法優(yōu)化搜索技巧參考習(xí)題推薦材料盲目搜索方法定義狀態(tài)(state)對問題在某一時(shí)刻進(jìn)展情況的數(shù)學(xué)描述狀態(tài)轉(zhuǎn)移(state-transition)問題從一種狀態(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):棧式和遞歸空間開銷:棧的深度非遞歸的的實(shí)現(xiàn)框框架voidDfs(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)drection[4][2]令k取0,1,2,3之一,則則試探位位置為:g=i+direction[k][0];h=j+direction[k][1];算法設(shè)計(jì)計(jì)走一步,,記一步步。方向試探探前進(jìn)push(current)無法前進(jìn)進(jìn)current=pop()求解迷宮宮中一條條路徑的的方法::從入口開開始,對對每個當(dāng)前位置置沿(E,S,W,N)四個方向向逐一進(jìn)進(jìn)行試探探,當(dāng)選選定一個個可通行行的方向向后,把把當(dāng)前所在位置置及所選的的方向記記錄下來來,然后后從下一一個位置置開始繼繼續(xù)探索索;若在在當(dāng)前位位置探索索不到可可通行的的方向,,則沿原原路一步步一步退退回來,,每后退退一步,,接著在在該點(diǎn)試試尚未試試過的一一個方向向。如此此重復(fù)直直到到達(dá)達(dá)出口。。用一個棧棧記錄走走過的位位置,棧中每每個元素素包括三三項(xiàng),分分別記錄錄當(dāng)前位位置的行行坐標(biāo)、、列坐標(biāo)標(biāo)以及在在該位置置上所選選的方向向(即directon數(shù)組的下標(biāo)標(biāo)值)。廣度優(yōu)先搜搜索(Breadth-firstSearch)搜索順序::1->2->3->4->5->…廣度優(yōu)先搜搜索實(shí)現(xiàn):隊(duì)列列空間開銷::可擴(kuò)展展結(jié)點(diǎn)+已擴(kuò)展結(jié)點(diǎn)點(diǎn)標(biāo)記廣度優(yōu)先搜搜索的實(shí)現(xiàn)現(xiàn)框架voidBFS(){while(隊(duì)列可擴(kuò)展展且尚未到到達(dá)目標(biāo)狀狀態(tài)){從隊(duì)首依次次取出隊(duì)列列中未擴(kuò)展展的結(jié)點(diǎn)進(jìn)進(jìn)行擴(kuò)展展,并將新新結(jié)點(diǎn)加入入隊(duì)尾。}}農(nóng)夫、狼、、羊、菜過過河狀態(tài):<wolf,sheep,cabbage,farmer>(0,1,0,1)0,1分別代表兩兩岸操作(算符符)4種:運(yùn)farmer、wolf運(yùn)farmer、sheep運(yùn)farmer、cabbage運(yùn)farmer狀態(tài)空間大大???24=16Map[2][2][2][2]可以轉(zhuǎn)化為為迷宮問題題?狀態(tài)=路口口操作=通路路限制條件=死胡同無形的迷宮宮。。。。。。。。。。地毯式搜索索!01234567891011121314。。。。。。。如何求得最最優(yōu)解?廣度優(yōu)先搜搜索層層推進(jìn)搜索的層數(shù)數(shù)不超過答答案所在的的層數(shù)01234567891011121314。。。。。。。廣度優(yōu)先搜索索01234567891011121314。。。。。。。隊(duì)列的特點(diǎn)隊(duì)列是一種特殊的的線性表,只只允許在表的的一端有插入入操作,而在在另一端有刪刪除操作。隊(duì)頭:允許刪除的的這一端叫隊(duì)隊(duì)列的頭。隊(duì)尾:允許插入的的這一端叫叫隊(duì)列的尾??贞?duì)列:當(dāng)隊(duì)列中沒沒有任何元素素時(shí),稱為空隊(duì)列。進(jìn)隊(duì)/出隊(duì):隊(duì)列的插入入操作通常稱稱為進(jìn)隊(duì)列或入隊(duì)列,隊(duì)列的刪除除操作通常稱稱為退隊(duì)列或出隊(duì)列。隊(duì)列的基本概概念:隊(duì)列也稱作先先進(jìn)先出表((FirstInFirstOut,F(xiàn)IFO表)。支持隊(duì)尾尾插入,隊(duì)頭頭刪除操作。a0a1a2an-1入隊(duì)列隊(duì)頭隊(duì)尾出隊(duì)列隊(duì)列的示意圖圖隊(duì)列ADTADTQueueisoperationsQueuecreateEmptyQueue(void);//創(chuàng)建一個空隊(duì)隊(duì)列。intisEmptyQueue(Queuequ);//判隊(duì)列qu是否為空隊(duì)列列。voidenQueue(Queuequ,DataTypex);//往隊(duì)列qu尾部插入一個個值為x的元素。voiddeQueue(Queuequ);//從隊(duì)列qu頭部刪除一個個元素。DataTypefrontQueue(Queuequ);//求隊(duì)列qu頭部元素的值值。endADTQueue基于環(huán)形存儲儲結(jié)構(gòu)的隊(duì)列列實(shí)現(xiàn)a1a2a3a4…anfrontrearmodMAXSIZEenQueue:{rear=(rear+1)%MAXSIZEqBuffer[rear]=inData;}deQueue:{outData=qBuffer[rear];rear=(rear+1)%MAXSIZE;}基于環(huán)形存儲儲結(jié)構(gòu)的隊(duì)列列實(shí)現(xiàn)把數(shù)組paqu->q[MAXNUM]從邏輯上看成成一個環(huán),這這種隊(duì)列稱為為環(huán)形隊(duì)列。當(dāng)表中已有MAXNUM-1個結(jié)點(diǎn)時(shí),如如果還要插入入,paqu->r和paqu->f就會重合,而而這與空隊(duì)列列的情形相混混。為區(qū)分空隊(duì)列列與滿隊(duì)列兩兩種情況的環(huán)環(huán)形隊(duì)列,一一般是犧牲隊(duì)隊(duì)列中的一個個結(jié)點(diǎn),當(dāng)隊(duì)隊(duì)列中已有MAXNUM-1個結(jié)點(diǎn)時(shí)就稱稱滿,再要插插入就發(fā)生溢溢出.paqu->rpaqu->f圖(a)空隊(duì)列a1a2a7a6a5a4a3paqu->fpaqu->r圖(b)隊(duì)列滿,判斷(paqu->r+1)==paqu->f環(huán)形隊(duì)列順序結(jié)構(gòu)隊(duì)列列的類型定義義順序結(jié)構(gòu)隊(duì)列列的操作定義義(ADT)BitwiseXORIllustration
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0kijk=i^jk=i^j^j=k深度與廣度優(yōu)優(yōu)先搜索比較較深度優(yōu)先搜索索棧式結(jié)構(gòu)空間開銷小最優(yōu)解需遍歷歷所有解才能能確定廣度優(yōu)先搜索索隊(duì)列結(jié)構(gòu)空間開銷大最先找到最優(yōu)優(yōu)解同學(xué)補(bǔ)充?狀態(tài)表示及狀狀態(tài)變換(生生成)用一個整數(shù)表表達(dá)一個狀態(tài)態(tài):109用1-8表示8個數(shù)字,9表示空位相對于x所在位置,Up,down,left,right四個位置的數(shù)數(shù)字有可能移移動。位置變換:+3,-3,+1,-1數(shù)值變化:(d1-d2)(ten_p(d2))-ten_p(d1))廣度優(yōu)先搜索索的變形雙向廣度優(yōu)先先搜索雙向廣度優(yōu)先先搜索搜索順序兩個隊(duì)列(分分別來自初始始結(jié)點(diǎn)和目標(biāo)標(biāo)結(jié)點(diǎn)的擴(kuò)展展)交替擴(kuò)展展,每次都選選擇較小的一一個隊(duì)列進(jìn)行行擴(kuò)展。優(yōu)勢擴(kuò)展結(jié)點(diǎn)數(shù)明明顯減少存儲需求降低低條件初始狀態(tài)和目目標(biāo)狀態(tài)唯一一只適用于最優(yōu)優(yōu)解問題完全二叉樹、、堆、優(yōu)先隊(duì)隊(duì)列A*算法:F=G+H搜索與博弈經(jīng)典游戲博弈樹與極大大極小過程alpha-beta剪枝棋類游戲設(shè)計(jì)計(jì)概念與研究領(lǐng)領(lǐng)域什么是博弈??谷歌說:百度知道:人生是永不停停息的博弈過過程,博弈意意味著通過選選擇合適策略略達(dá)到合意結(jié)結(jié)果。作為博博弈者,最佳佳策略是最大大程度地利用用游戲規(guī)則;;作為社會的的最佳策略,,是通過規(guī)則則引導(dǎo)社會整整體福利的增增加?!安┺摹边@個詞詞聽起來高深深莫測,其實(shí)實(shí)它就是“游游戲”的意思思。更準(zhǔn)確點(diǎn)點(diǎn)說,是可以以分出勝負(fù)的的游戲。博弈弈論如果直譯譯就是“游戲戲理論”。不不妨說,博弈弈論是通過““玩游戲”獲獲得人生競爭爭知識的。研究領(lǐng)域博弈算法計(jì)算機(jī)的優(yōu)勢勢快速,內(nèi)存大大更嚴(yán)密人工智能領(lǐng)域域主要研究領(lǐng)域域挑戰(zhàn)條件:兩方、、公平。博弈樹雙方博弈背后后隱式圖:我們們可以把所處處的局面看作作是一個狀態(tài)態(tài)。那么博弈弈的過程就可可以看成是在在狀態(tài)空間中中遍歷。博弈樹:由于于雙方博弈的的過程具有明明顯的層次關(guān)關(guān)系,我們可可以依此構(gòu)建建一棵博弈樹樹。【圖】象棋的4層博博弈弈樹樹博弈弈樹樹博弈弈樹樹上上的的搜搜索索數(shù)量量級級極極大大中國國象象棋棋,,平平均均一一次次40種走走法法,5層就就有有10^8個節(jié)節(jié)點(diǎn)點(diǎn)。。只能能向向下下搜搜索索幾幾層層為幾幾層層后后的的狀狀態(tài)態(tài)給給出出估估值值自下下而而上上依依次次對對每每個個狀狀態(tài)態(tài)進(jìn)進(jìn)行行估估值值極大大極極小小過過程程約定定雙雙方方都都用用最最好好的的策策略略把(甲方方得得分分-乙方方得得分分)作為為一一個個局局面面的的估估值值。。MAX/MIN節(jié)點(diǎn)點(diǎn)甲方方::在在子子節(jié)節(jié)點(diǎn)點(diǎn)中中選選擇擇估估值值最最大大的的節(jié)節(jié)點(diǎn)點(diǎn)(MAX)。即即Score(A)=Max{Ai|Ai∈∈F(A)}。乙方::在子子節(jié)點(diǎn)點(diǎn)中選選擇估估值最最小的的節(jié)點(diǎn)點(diǎn)(MIN)。即Score(B)=Min{Bi|Bi∈∈F(B)}?!緢D】一字棋棋極大大極小小過程程【圖】偽代碼碼(極大極極小算算法)負(fù)極大大值算算法極大極極小算算法的的改進(jìn)進(jìn)修改了了返回回估值值的符符號避免了了極大大極小小的交交替【圖】偽代碼碼(負(fù)負(fù)極大大值算算法))α-β剪枝α,β值MAX節(jié)點(diǎn)的的α值:當(dāng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘭州城市學(xué)院《外國文學(xué)經(jīng)典作品賞析》2023-2024學(xué)年第二學(xué)期期末試卷
- 邯鄲市重點(diǎn)中學(xué)2025屆高三第二學(xué)期第二次月考試卷英語試題含解析
- 福建廈門雙十中學(xué)2025屆高三下學(xué)期期末質(zhì)量抽測數(shù)學(xué)試題試卷含解析
- 2025年云南省通海二中高考化學(xué)試題考前最后一卷預(yù)測卷(二)含解析
- 綏化學(xué)院《建筑項(xiàng)目招投標(biāo)與合同管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年杜郎口中學(xué)高三下學(xué)期期末五校聯(lián)考試題含解析
- 商丘職業(yè)技術(shù)學(xué)院《藥物基因組學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆輕工職業(yè)技術(shù)學(xué)院《集散控制系統(tǒng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 電子科技大學(xué)《模擬電子技術(shù)Ⅱ》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津開發(fā)區(qū)職業(yè)技術(shù)學(xué)院《體育活動組織與策劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年超高功率大噸位電弧爐項(xiàng)目建議書
- 寵物殯葬創(chuàng)新創(chuàng)業(yè)
- 2025年第三屆天揚(yáng)杯建筑業(yè)財(cái)稅知識競賽題庫附答案(801-900題)
- 2024年黑龍江出版集團(tuán)招聘筆試真題
- 2024年4月27日浙江省事業(yè)單位招聘考試《職業(yè)能力傾向測驗(yàn)》真題及答案
- 【初中歷史】遼宋夏金元時(shí)期經(jīng)濟(jì)的繁榮 課件 2024-2025學(xué)年統(tǒng)編版七年級歷史下冊
- 2025-2030中國橄欖球行業(yè)市場全景調(diào)研及投資價(jià)值評估咨詢報(bào)告
- 砌體結(jié)構(gòu)檢測試題及答案
- DB32T 5061.1-2025 中小學(xué)生健康管理技術(shù)規(guī)范 第1部分:心理健康
- 2025年寧波職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫審定版
- 2025年洛陽科技職業(yè)學(xué)院單招職業(yè)技能測試題庫及答案(考點(diǎn)梳理)
評論
0/150
提交評論