版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
高級算法設(shè)計與分析
第五章貪心算法2本章大綱貪心法活動選擇問題3最優(yōu)化問題貪心算法可用來解決最優(yōu)化問題。最優(yōu)化問題:給出一個問題的實例,一組約束條件和目標(biāo)函數(shù),找到一個可行的解決方案,對于給定的實例為目標(biāo)函數(shù)的最優(yōu)值??尚械慕鉀Q方案滿足問題的約束條件。解決方案中要詳細(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)解這種觀點(diǎn),我們需要反例。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)點(diǎn)(例如動態(tài)規(guī)劃和回溯):在尋找局部最優(yōu)解選擇時通常更有效率。通常易于實施。14活動選擇問題:一個活動實例假設(shè)你在迪士尼主題樂園,你買了特殊的快速通道票,使得等待游玩項目時間最短。(兩個娛樂設(shè)施之間的快速通道)有很多搭乘車次,每一車次的開始和到達(dá)時間都不同。假設(shè)我們忽略搭乘時步行和車等待你上車的時間,也就是說在兩趟車次之間趕車的時間忽略不計。問題:如何讓你盡可能地玩到更多的項目。這就關(guān)于活動選擇問題。15動態(tài)選擇問題:定義問題:給定一個
n個元素的活動集合S={a1
,…,an},其中ai
的時間間隔[si,fi),si表示開始時間,fi時間表示結(jié)束時間,找到一個最大的兼容子集?;顒又g的時間沒有重疊表示活動之間是兼容的。不失一般性,我們假設(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運(yùn)行時間:(n)當(dāng)包括排序時間時為
(nlogn)23證明貪心活動選擇的最優(yōu)性(1)論點(diǎn):a1
在所有的活動中有最早結(jié)束時間,則先選擇
a1是一個最佳的方案。證明:A為最優(yōu)方案。讓活動
a1
成為貪心選擇(i即為最早選擇的一個).如果
a1
A,證明完成。
如果
a1
A,我們需要證明
A*=A–{a}+{a1}是另一個最優(yōu)方案包括a1,而a是在A中某個有最早結(jié)束時間的活動.在算法中,活動根據(jù)結(jié)束時間進(jìn)行分類。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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒交通安全國旗下精彩講話稿范文(5篇)
- 感謝老師學(xué)生演講稿
- 小孩百日宴父母感謝致辭6篇
- 公眾平臺相關(guān)知識
- 銀星養(yǎng)腦片治療彌漫性軸索損傷瘀阻腦絡(luò)證的臨床研究
- 國家知識產(chǎn)權(quán)政策
- 電廠鍋爐補(bǔ)給水和凝結(jié)水處理工藝設(shè)計
- 初級會計經(jīng)濟(jì)法基礎(chǔ)-初級會計《經(jīng)濟(jì)法基礎(chǔ)》模擬試卷421
- 智研咨詢發(fā)布-2024年中國光儲一體化行業(yè)市場運(yùn)行態(tài)勢及發(fā)展趨勢預(yù)測報告
- 水下機(jī)器人航跡跟蹤及容錯控制方法研究
- 遼寧省沈陽名校2025屆高三第一次模擬考試英語試卷含解析
- 2022版藝術(shù)新課標(biāo)解讀心得(課件)小學(xué)美術(shù)
- 《中小學(xué)校園食品安全和膳食經(jīng)費(fèi)管理工作指引》專題知識培訓(xùn)
- 2024年新疆區(qū)公務(wù)員錄用考試《行測》真題及答案解析
- Profinet(S523-FANUC)發(fā)那科通訊設(shè)置
- 第三章-自然語言的處理(共152張課件)
- 醫(yī)學(xué)教程 常見化療藥物歸納
- 行政事業(yè)單位國有資產(chǎn)管理辦法
- 六年級口算訓(xùn)練每日100道
- 高一生物生物必修一全冊考試題帶答題紙答案
- 統(tǒng)編版九年級歷史下冊第一單元教案教學(xué)設(shè)計
評論
0/150
提交評論