算法導(dǎo)論-貪心算法_第1頁
算法導(dǎo)論-貪心算法_第2頁
算法導(dǎo)論-貪心算法_第3頁
算法導(dǎo)論-貪心算法_第4頁
算法導(dǎo)論-貪心算法_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

算法設(shè)計與分析2023年2月6日講授內(nèi)容:貪心算法I

教師:胡學(xué)鋼、吳共慶綱要圖等表示最小擴展樹

最優(yōu)子結(jié)構(gòu)貪婪選擇Prim’s貪婪

MST算法2/6/2023算法設(shè)計與分析-貪心算法I2有向圖

(digraph)G=(V,E)是一個有序?qū)Φ募希旤cV的集合

(singular:vertex),邊的集合EV×V.無向圖G=(V,E)中,邊集合E包括無序

的頂點對.任何情況下

均有

|E|=O(V2).另外,如果

G是連通的,那么

|E|≥|V|–1,這意味著

lg|E|=(lgV).圖

(復(fù)習(xí))2/6/2023算法設(shè)計與分析-貪心算法I3鄰接矩陣表示法一個圖G=(V,E)的鄰接矩陣,

V={1,2,…,n},為矩陣

A[1..n,1..n]

A123412340110001000000010(V2)存儲空間

稠密表示法.A[i,j]=1if(i,j)

E,0if(i,j)E.2/6/2023算法設(shè)計與分析-貪心算法I4頂點

v

V的鄰接鏈表

Adj[v]是和頂點v相鄰的頂點的鏈表。Adj[1]={2,3}Adj[2]={3}Adj[3]={}Adj[4]={3}對于無向圖,|Adj[v]|=degree(v).對于有向圖,|Adj[v]|=out-degree(v).握手定理:對于無向圖∑v∈V

=2|E|

鄰接表使用的存儲空間為

(V+E)—是一種

稀疏

表示

(對兩種圖均適用).鄰接鏈表表示法2/6/2023算法設(shè)計與分析-貪心算法I5輸入:一個連通的,無向圖

G=(V,E)其加權(quán)函數(shù)

w:E→.為了簡化,假設(shè)所有邊的權(quán)各不相同.(CLRS包括了通用的情況.)輸出:擴展樹

T—連接所有頂點的樹—其權(quán)最小:最小擴展樹2/6/2023算法設(shè)計與分析-貪心算法I6MST舉例2/6/2023算法設(shè)計與分析-貪心算法I7MSTT:(G的其他頂點沒有畫出)去掉邊

(u,v)

T.然后,將T劃分為兩棵子樹T1

和T2.定理:子樹

T1

G1=(V1,E1)

的MST,

G1是由T1的頂點導(dǎo)出G的子圖

。V1=

T1的頂點,E1={(x,y)∈E:x,y∈V1}.T2類似.最優(yōu)子結(jié)構(gòu)2/6/2023算法設(shè)計與分析-貪心算法I8證明:粘貼拷貝:w(T)=w(u,v)+w(T1)+w(T2).如果

T1是

G1中比T1加權(quán)更小的擴展樹,那么在G中T={(u,v)}T1

T2

將是一棵比T加權(quán)更小的擴展樹。我們得到了重疊子問題了嗎?

是的.很好,那么可以使用動態(tài)規(guī)劃!

是的,但是

MST表現(xiàn)出更強特征,可以使用更加有效的算法。證明最優(yōu)子結(jié)構(gòu)2/6/2023算法設(shè)計與分析-貪心算法I9定理:令

T為

G=(V,E)

MST,

并且令

A

V。假設(shè)

(u,v)∈E是連接A和V–A的最小加權(quán)邊.那么,(u,v)∈T.貪婪選擇特征局部的最優(yōu)選擇全局范圍內(nèi)也是最優(yōu)的.“貪婪”算法的特征2/6/2023算法設(shè)計與分析-貪心算法I10證明.假設(shè)

(u,v)

T.粘貼和拷貝.T:(u,v)=連接A和

V–A的最小加權(quán)邊

A

V–A定理的證明2/6/2023算法設(shè)計與分析-貪心算法I11T:

A

V–A考慮T中從u到v的唯一的簡單路徑.證明.假設(shè)

(u,v)

T.粘貼和拷貝.(u,v)=連接A和

V–A的最小加權(quán)邊證明.假設(shè)

(u,v)

T.粘貼和拷貝.(u,v)=連接A和

V–A的最小加權(quán)邊定理的證明2/6/2023算法設(shè)計與分析-貪心算法I12T:

A

V–A將(u,v)和這條路徑上的第一條邊交換,這個邊連接A中的一個頂點,同時連接V–A中的一個頂點。考慮T中從u到v的唯一的簡單路徑.證明.假設(shè)

(u,v)

T.粘貼和拷貝.(u,v)=連接A和

V–A的最小加權(quán)邊證明.假設(shè)

(u,v)

T.粘貼和拷貝.(u,v)=連接A和

V–A的最小加權(quán)邊定理的證明2/6/2023算法設(shè)計與分析-貪心算法I13T:

A

V–A將(u,v)和這條路徑上的第一條邊交換,這個邊連接A中的一個頂點,同時連接V–A中的一個頂點。一個比T加權(quán)更小的擴展樹產(chǎn)生了??紤]T中從u到v的的一的簡單路徑.證明.假設(shè)

(u,v)

T.粘貼和拷貝.(u,v)=連接A和

V–A的最小加權(quán)邊定理的證明2/6/2023算法設(shè)計與分析-貪心算法I14思路:用優(yōu)先隊列

Q維護

V–A。

將Q中的每個頂點按照其和A中的頂點連接的邊的最小權(quán)進行排序。Q←Vkey[v]←

forallv

Vkey[s]←0forsomearbitrarys

VwhileQ≠dou←EXTRACT-MIN(Q)foreachv

Adj[u]doifv

Qandw(u,v)<key[v]thenkey[v]←w(u,v)?

DECREASE-KEYπ[v]←u最后,{(v,π[v])}組成了

MST.Prim算法2/6/2023算法設(shè)計與分析-貪心算法I15∈A∈V–APrim算法舉例2/6/2023算法設(shè)計與分析-貪心算法I16∈A∈V–APrim算法舉例2/6/2023算法設(shè)計與分析-貪心算法I17∈A∈V–APrim算法舉例2/6/2023算法設(shè)計與分析-貪心算法I18∈A∈V–APrim算法舉例2/6/2023算法設(shè)計與分析-貪心算法I19∈A∈V–APrim算法舉例2/6/2023算法設(shè)計與分析-貪心算法I20∈A∈V–APrim算法舉例2/6/2023算法設(shè)計與分析-貪心算法I21∈A∈V–APrim算法舉例2/6/2023算法設(shè)計與分析-貪心算法I22∈A∈V–APrim算法舉例2/6/2023算法設(shè)計與分析-貪心算法I23∈A∈V–APrim算法舉例2/6/2023算法設(shè)計與分析-貪心算法I24∈A∈V–APrim算法舉例2/6/2023算法設(shè)計與分析-貪心算法I25∈A∈V–APrim算法舉例2/6/2023算法設(shè)計與分析-貪心算法I26∈A∈V–APrim算法舉例2/6/2023算法設(shè)計與分析-貪心算法I27∈A∈V–APrim算法舉例2/6/2023算法設(shè)計與分析-貪心算法I28(V)總和Q←Vkey[v]←∞

對所有

v∈Vkey[s]←0對某個任意的

s∈VwhileQ≠|(zhì)V|次degree(u)次dou←EXTRACT-MIN(Q)foreachv∈Adj[u]doifv∈Qandw(u,v)<key[v]thenkey[v]←w(u,v)π[v]←u握手定理

隱含(E)次

DECREASE-KEY.時間

=(V)·TEXTRACT-MIN+(E)·TDECREASE-KEYPrim算法分析2/6/2023算法設(shè)計與分析-貪心算法I29時間

=(V)·TEXTRACT-MIN+(E)·TDECREASE-KEY

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論