![第五章 貪心算法_第1頁](http://file4.renrendoc.com/view14/M02/2C/32/wKhkGWZcdIKAHvtGAADmORS2b7A015.jpg)
![第五章 貪心算法_第2頁](http://file4.renrendoc.com/view14/M02/2C/32/wKhkGWZcdIKAHvtGAADmORS2b7A0152.jpg)
![第五章 貪心算法_第3頁](http://file4.renrendoc.com/view14/M02/2C/32/wKhkGWZcdIKAHvtGAADmORS2b7A0153.jpg)
![第五章 貪心算法_第4頁](http://file4.renrendoc.com/view14/M02/2C/32/wKhkGWZcdIKAHvtGAADmORS2b7A0154.jpg)
![第五章 貪心算法_第5頁](http://file4.renrendoc.com/view14/M02/2C/32/wKhkGWZcdIKAHvtGAADmORS2b7A0155.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
高級算法設(shè)計與分析
第五章貪心算法2本章大綱貪心法活動選擇問題3最優(yōu)化問題貪心算法可用來解決最優(yōu)化問題。最優(yōu)化問題:給出一個問題的實例,一組約束條件和目標(biāo)函數(shù),找到一個可行的解決方案,對于給定的實例為目標(biāo)函數(shù)的最優(yōu)值。可行的解決方案滿足問題的約束條件。解決方案中要詳細(xì)說明約束條件中的限制因素。例:在背包問題中,我們要求背包中所有物件的質(zhì)量總和不能超過所能承受的最大重量。4貪心法:基本原理貪心法是設(shè)計算法中另一種常用的策略,就像分治法、回溯法和動態(tài)規(guī)劃算法一樣。經(jīng)典貪心算法基本思想:遵循某些貪心準(zhǔn)則,在當(dāng)前狀態(tài)下做出局部最優(yōu)選擇。這被稱為貪心選擇。我們希望能夠從局部最優(yōu)解中推導(dǎo)出全局最優(yōu)解。貪心選擇屬性:局部最優(yōu)解導(dǎo)出全局最優(yōu)解。在設(shè)計好的貪心算法的過程中,找到一個合適的貪心選擇準(zhǔn)則是很關(guān)鍵的。不同的貪心準(zhǔn)則會導(dǎo)致不同的結(jié)果。
5貪心法:不足盡管貪心算法能夠得出可行的解決方案,但它得出的可能不總是最優(yōu)解。因此需要證明對于任何有效的輸入,貪心算法總能找到最優(yōu)解。然而為了反駁貪心算法不能得出最優(yōu)解這種觀點,我們需要反例。60/1背包問題假定
:背包能夠承受的重量C>0,N個物件分別有重量為wi>0,價值分別為
pi>0fori=1,…n,指出一個子集A{1,2,…,n}滿足以下公式:這個問題已有的解決方案:回溯法動態(tài)規(guī)劃貪心法70/1背包問題:貪心法解決方案得到局部最優(yōu)選擇有一些可能的貪心選擇準(zhǔn)則:最大價值優(yōu)先:選擇可用價值最高的物件放入背包中。最小重量優(yōu)先:選擇可用重量最小的物件放入背包中。最大重量優(yōu)先:選擇可用重量最大的物件放入背包中。最大性價比優(yōu)先:選擇可用的、價值重量比最高的物件放入背包中。不盡人意的是,以上方法沒有一種能保證是最優(yōu)解決方案——我們能夠找到每一種方案的反例。8選擇準(zhǔn)則:最大價值優(yōu)先——反例有三個物件,背包的可承受重量為25:5lb$7010lb$90$140C=25lb
25lbitem1item2item3Knapsack貪心解決方案25lb$140最佳方案10lb5lb$7010lb$90=$140=$1609選擇準(zhǔn)則:最小重量優(yōu)先——反例有三個物件,背包的可承受重量為30:5lb$15010lb$60$140C=30lb
20lbitem1item2item3Knapsack貪心方案5lb5lb20lb$150$1405lb10lb$60$150最優(yōu)方案=$210=$29010選擇準(zhǔn)則:最大重量優(yōu)先——反例有三個物件,背包的可承受重量為30:5lb$15010lb$60$140C=30lb
20lbitem1item2item3Knapsack貪心方案5lb5lb20lb$150$14020lb10lb$60$140最優(yōu)方案=$200=$29011選擇準(zhǔn)則:最高性價比優(yōu)先——反例有三個物件,背包的可承受重量為30:5lb$50C=30lb5lb5lb20lbitem1$14020lbitem2Knapsack貪心方案10lb20lb$50$140$140$60最優(yōu)方案v/w:$10v/w:$6v/w:$710lb$60item3=$190=$20012背包問題的貪心算法對于0/1背包問題沒有最好的貪心算法。但是對于部分背包問題有最優(yōu)的貪心算法,就是以最大價值重量比優(yōu)先為基礎(chǔ)的選擇準(zhǔn)則。這種貪心算法的原理如下:根據(jù)價值/重量比降序排列所有物件。根據(jù)順序依次將這些物件添加到背包中直到?jīng)]有更多的物件或者下一個物件添加后會超出背包的承受范圍。如果背包還是沒有超出承受重量,用未選擇的部分物件填滿它。13更多關(guān)于貪心算法一個最優(yōu)化問題能找到最佳的貪心算法時,他通常在其他的解決方案中有一些優(yōu)點(例如動態(tài)規(guī)劃和回溯):在尋找局部最優(yōu)解選擇時通常更有效率。通常易于實施。14活動選擇問題:一個活動實例假設(shè)你在迪士尼主題樂園,你買了特殊的快速通道票,使得等待游玩項目時間最短。(兩個娛樂設(shè)施之間的快速通道)有很多搭乘車次,每一車次的開始和到達時間都不同。假設(shè)我們忽略搭乘時步行和車等待你上車的時間,也就是說在兩趟車次之間趕車的時間忽略不計。問題:如何讓你盡可能地玩到更多的項目。這就關(guān)于活動選擇問題。15動態(tài)選擇問題:定義問題:給定一個
n個元素的活動集合S={a1
,…,an},其中ai
的時間間隔[si,fi),si表示開始時間,fi時間表示結(jié)束時間,找到一個最大的兼容子集。活動之間的時間沒有重疊表示活動之間是兼容的。不失一般性,我們假設(shè):
f1
f2…fn16動態(tài)選擇問題:實例有9個活動的集合:很多實施方案:{a1
,a3
,a6
,a8
},{a1
,a3
,a7
,a9
},{a1
,a3
,a6
,a9
},{a2
,a5
,a7
,a9
},{a1
,a5
,a7
,a8
},……17活動選擇:貪心選擇有幾個直觀合理的貪心選擇值得考慮:最早開始時間優(yōu)先:選擇一個最早開始時間的可兼容活動最小持續(xù)時間優(yōu)先:選擇一個最小時間間隔的可兼容活動。最早完成時間優(yōu)先:選擇一個最早結(jié)束時間的可兼容活動問題:哪一個會有效?18反例1貪心選擇準(zhǔn)則:最早開始時間優(yōu)先時間0123456789101112131415015141115活動12319反例2貪心選擇準(zhǔn)則:最小間隔時間優(yōu)先時間01234567891011121314151879815活動12320反例3貪心選擇準(zhǔn)則:最早結(jié)束時間優(yōu)先時間012345678910111213141502143711153102121113活動123456721反例4貪心選擇準(zhǔn)則:最早結(jié)束時間優(yōu)先此準(zhǔn)則對這個例子也使用。需要證明這個貪心算法的正確性。22活動選擇:一個貪心算法
首先我們更多的以公式的形式表示這個算法(最早結(jié)束時間基準(zhǔn)),然后證明它的正確性。
我們假設(shè):f1
f2…fn貪心活動選擇(s,f)//s=(s1,…,sn),
f=(f1,…,fn) n=s.length//活動的數(shù)量 A={a1}//A
存儲一個解決方案,讓
a1=(s1,f1)為第一個 j=1//aj
表示上一個被添加的活動 fori=2ton
//選擇下一個活動ifsi
≥fj
//ai
是兼容的
A=A
{ai}
j=i//保存上一個被添加的活動 returnA運行時間:(n)當(dāng)包括排序時間時為
(nlogn)23證明貪心活動選擇的最優(yōu)性(1)論點:a1
在所有的活動中有最早結(jié)束時間,則先選擇
a1是一個最佳的方案。證明:A為最優(yōu)方案。讓活動
a1
成為貪心選擇(i即為最早選擇的一個).如果
a1
A,證明完成。
如果
a1
A,我們需要證明
A*=A–{a}+{a1}是另一個最優(yōu)方案包括a1,而a是在A中某個有最早結(jié)束時間的活動.在算法中,活動根據(jù)結(jié)束時間進行分類。f(a1)
f(a).如果f(a1)
s(a)我們可以添加a1到
A,表明A不是最優(yōu)的.如果
s(a)<f(a1),則a1和
a重疊.f(a1)
f(a),如果我們移除a
并且添加a1,我們得到另一個最優(yōu)方案A*
,它包括a1,
A*是最優(yōu)的因為|A*|=|A|.24證明貪心活動選擇的最優(yōu)性(2)法則:貪心活動選擇是最優(yōu)的,也就是說,對于每一個活動選擇問題都能得到一個最優(yōu)解決方案。證明:讓算法選擇活動
a1
。
S*為活動的子集且不與a1重疊。S*={ai|i=2,…,n
,si
f(a1)}.讓B為S*的一個最優(yōu)解決方案.根據(jù)S*的定義,A*={a1}
B
是兼容的,而且是原始問題的一個解決方案.25證明貪心活動選擇的最優(yōu)性(3)證明法則(續(xù)):我們可以得出A*是一個最優(yōu)解決方案是矛盾的.假設(shè)
A*不是原始問題的最優(yōu)方案。
讓A是一個包含a1的最優(yōu)解決方案。
因此|A*|<|A|,|A–{a1}|>|A*–{a1}|=|B|.但是
A–{a1}也是
S*這個問題的一個方案,和B是S*一個最優(yōu)方案的假設(shè)相矛盾。這就表明A*必須是原始問題的一個最優(yōu)方案.26活動選擇:最優(yōu)子結(jié)構(gòu)假設(shè)a1是最佳方案A中的活動,并且有最早的完成時間,則
我們需要求A–{a1}是問題
S*={ai
S|si
f1
}的另一個最佳解決方案。換句話說:一旦第一個活動被選擇,該問題就可轉(zhuǎn)變?yōu)椋簽榛顒舆x擇找到一個最優(yōu)的解
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年超低頻傳感器標(biāo)定系統(tǒng)合作協(xié)議書
- 八年級上冊第一章復(fù)習(xí)導(dǎo)學(xué)案
- 新華東師大版七年級數(shù)學(xué)下冊《10章-軸對稱、平移與旋轉(zhuǎn)-10.5-圖形的全等》教案-162
- 2025年代理合同解除協(xié)議常用版(2篇)
- 2025年代合同標(biāo)準(zhǔn)樣本(2篇)
- 2025年五年級作文工作總結(jié)范例(二篇)
- 2025年五星級酒店保潔勞務(wù)合同協(xié)議(2篇)
- 2025年二年級老師個人教學(xué)工作總結(jié)模版(四篇)
- 熱點1-1 集合與復(fù)數(shù)(8題型+滿分技巧+限時檢測)(解析版)
- 2025年產(chǎn)品買賣協(xié)議燈具(2篇)
- 學(xué)校物業(yè)服務(wù)合同范本專業(yè)版
- SL 288-2014 水利工程施工監(jiān)理規(guī)范
- 部編版八年級語文上冊期末考試卷
- 2024年02月中央軍委后勤保障部2024年公開招考專業(yè)技能崗位文職人員筆試參考題庫附帶答案詳解
- (2024年)肺栓塞的護理課件
- 小學(xué)數(shù)學(xué)三年級下冊第八單元《數(shù)學(xué)廣角-搭配(二)》大單元集體備課整體設(shè)計
- (高清版)TDT 1031.6-2011 土地復(fù)墾方案編制規(guī)程 第6部分:建設(shè)項目
- 2024年江蘇省高中學(xué)業(yè)水平測試生物試卷
- 露天采場危險有害因素辨識
- 蘇教版一年級上、下冊勞動與技術(shù)教案
- 七上-動點、動角問題12道好題-解析
評論
0/150
提交評論