版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、本次課程的主要內(nèi)容本次課程的主要內(nèi)容貪心算法貪心算法貪心算法1 1、什么是貪心算法、什么是貪心算法: :貪心算法又稱貪婪算法是指,在對問題求解時(shí),總是做出貪心算法又稱貪婪算法是指,在對問題求解時(shí),總是做出在當(dāng)前看來是最好的選擇。也就是說,不從整體最優(yōu)上加以考慮,他在當(dāng)前看來是最好的選擇。也就是說,不從整體最優(yōu)上加以考慮,他所做出的僅是在某種意義上的局部最優(yōu)解。貪心算法不是對所有問題所做出的僅是在某種意義上的局部最優(yōu)解。貪心算法不是對所有問題都能得到整體最優(yōu)解,但對范圍相當(dāng)廣泛的許多問題他能產(chǎn)生整體最都能得到整體最優(yōu)解,但對范圍相當(dāng)廣泛的許多問題他能產(chǎn)生整體最優(yōu)解或者是整體最優(yōu)解的近似解。優(yōu)解或
2、者是整體最優(yōu)解的近似解。 2 2、基本思路、基本思路(1)(1)建立數(shù)學(xué)模型來描述問題。建立數(shù)學(xué)模型來描述問題。 (2) (2)把求解的問題分成若干個(gè)子問題。把求解的問題分成若干個(gè)子問題。 (3) (3)對每一子問題求解,得到子問題的局部最優(yōu)解。對每一子問題求解,得到子問題的局部最優(yōu)解。 (4) (4)把子問題的解局部最優(yōu)解合成原來解問題的一個(gè)解。把子問題的解局部最優(yōu)解合成原來解問題的一個(gè)解。 3 3、算法實(shí)現(xiàn)。、算法實(shí)現(xiàn)。(1)(1)從問題的某個(gè)初始解出發(fā)。從問題的某個(gè)初始解出發(fā)。(2)(2)采用循環(huán)語句,當(dāng)可以向求解目標(biāo)前進(jìn)一步時(shí),就根據(jù)局部最優(yōu)采用循環(huán)語句,當(dāng)可以向求解目標(biāo)前進(jìn)一步時(shí),就
3、根據(jù)局部最優(yōu)策略,得到一個(gè)部分解,縮小問題的范圍或規(guī)模。策略,得到一個(gè)部分解,縮小問題的范圍或規(guī)模。(3)(3)將所有部分解綜合起來,得到問題的最終解。將所有部分解綜合起來,得到問題的最終解。貪心算法貪心算法-例題分析例題分析例題例題1、背包問題背包問題 有一個(gè)背包,背包容量是有一個(gè)背包,背包容量是M=150。有。有7個(gè)物品,物品可以分割成任意大小。要個(gè)物品,物品可以分割成任意大小。要求盡可能讓裝入背包中的物品總價(jià)值最大,但不能超過總?cè)萘?。求盡可能讓裝入背包中的物品總價(jià)值最大,但不能超過總?cè)萘俊?物品物品 :A B C D E F G 分量分量 :35 30 60 50 40 10 25 價(jià)值
4、價(jià)值 :10 40 30 50 35 40 30 分析:分析:目標(biāo)函數(shù):目標(biāo)函數(shù): pi最大最大約束條件是裝入的物品總重量不超過背包容量:約束條件是裝入的物品總重量不超過背包容量:wi=M( M=150) (1根據(jù)貪心的策略,每次挑選價(jià)值最大的物品裝入背包,得到的結(jié)果是否最優(yōu)?根據(jù)貪心的策略,每次挑選價(jià)值最大的物品裝入背包,得到的結(jié)果是否最優(yōu)?(2每次挑選所占空間最小的物品裝入是否能得到最優(yōu)解?每次挑選所占空間最小的物品裝入是否能得到最優(yōu)解?(3每次選取單位容量價(jià)值最大的物品,成為解本題的策略。每次選取單位容量價(jià)值最大的物品,成為解本題的策略。 根據(jù)以上的分析我們就可以得到解決本題的策略。即單
5、位容量最大的物品。根據(jù)以上的分析我們就可以得到解決本題的策略。即單位容量最大的物品。貪心算法貪心算法-例題分析例題分析例題例題1算法實(shí)現(xiàn):算法實(shí)現(xiàn): 在算法的實(shí)現(xiàn)上應(yīng)該不是很難,只要我們算出每個(gè)物品在單位容量上的價(jià)值在算法的實(shí)現(xiàn)上應(yīng)該不是很難,只要我們算出每個(gè)物品在單位容量上的價(jià)值就行,然后再使用一個(gè)排序的算法,將其從大到小排序。然后再根據(jù)背包當(dāng)前剩就行,然后再使用一個(gè)排序的算法,將其從大到小排序。然后再根據(jù)背包當(dāng)前剩下的容量來選取本次物品的重量。如果背包的容量比當(dāng)前武平的容量要大,那么下的容量來選取本次物品的重量。如果背包的容量比當(dāng)前武平的容量要大,那么就將當(dāng)前物品全部裝進(jìn)去。如果不夠,那么
6、就將當(dāng)前物品切割裝進(jìn)去。然后就可就將當(dāng)前物品全部裝進(jìn)去。如果不夠,那么就將當(dāng)前物品切割裝進(jìn)去。然后就可以跳出循環(huán)。這里我們在存儲數(shù)據(jù)時(shí)為了方便起見可以使用一個(gè)結(jié)構(gòu)體的方式來以跳出循環(huán)。這里我們在存儲數(shù)據(jù)時(shí)為了方便起見可以使用一個(gè)結(jié)構(gòu)體的方式來存儲。結(jié)構(gòu)體里面保存物品的重量,價(jià)值,以及單位質(zhì)量的價(jià)值。然后使用存儲。結(jié)構(gòu)體里面保存物品的重量,價(jià)值,以及單位質(zhì)量的價(jià)值。然后使用sort函數(shù)來排序,排序時(shí)我們只要重寫函數(shù)來排序,排序時(shí)我們只要重寫sort函數(shù)里面的比較函數(shù)即可。函數(shù)里面的比較函數(shù)即可。Sort(p,p+n,Up)。P使我們保存物品的結(jié)構(gòu)體。使我們保存物品的結(jié)構(gòu)體。N是物品的總數(shù)。是物品
7、的總數(shù)。Up使我們自定使我們自定義的排序方法。義的排序方法。貪心算法貪心算法-例題例題1代碼代碼貪心算法貪心算法-例題分析例題分析例題例題2:活動安排:活動安排標(biāo)題:標(biāo)題: 設(shè)有設(shè)有n個(gè)活動的集合個(gè)活動的集合E=1,2,n,其中每個(gè)活動都要求使用同一資源,如演講,其中每個(gè)活動都要求使用同一資源,如演講會場等,而在同一時(shí)間內(nèi)只有一個(gè)活動能使用這一資源。每個(gè)活動會場等,而在同一時(shí)間內(nèi)只有一個(gè)活動能使用這一資源。每個(gè)活動i都有一個(gè)要求使都有一個(gè)要求使用該資源的起始時(shí)間用該資源的起始時(shí)間si和一個(gè)結(jié)束時(shí)間和一個(gè)結(jié)束時(shí)間fi,且且si fi 。要求設(shè)計(jì)程序,使得安排的活動。要求設(shè)計(jì)程序,使得安排的活動最
8、多。最多。分析:分析: 活動安排問題要求安排一系列爭用某一公共資源的活動。用貪心算法可提供一活動安排問題要求安排一系列爭用某一公共資源的活動。用貪心算法可提供一個(gè)簡單、漂亮的方法,使盡可能多的活動能兼容的使用公共資源。設(shè)有個(gè)簡單、漂亮的方法,使盡可能多的活動能兼容的使用公共資源。設(shè)有n個(gè)活動的集個(gè)活動的集合合0,1,2,n-1,其中每個(gè)活動都要求使用同一資源,如會場等,而在同,其中每個(gè)活動都要求使用同一資源,如會場等,而在同一時(shí)間內(nèi)只有一個(gè)活動能使用這一資源。每個(gè)活動一時(shí)間內(nèi)只有一個(gè)活動能使用這一資源。每個(gè)活動i都有一個(gè)要求使用該資源的起始都有一個(gè)要求使用該資源的起始時(shí)間時(shí)間starti和一個(gè)
9、結(jié)束時(shí)間和一個(gè)結(jié)束時(shí)間endi,且,且startij的部分。的部分。演示算法實(shí)現(xiàn)過程。演示算法實(shí)現(xiàn)過程。人工模擬人工模擬1234555666最小生成樹的耗費(fèi)為最小生成樹的耗費(fèi)為15算法難點(diǎn)算法難點(diǎn)從剛才的演示過程,可知算法實(shí)現(xiàn)有兩個(gè)難點(diǎn):(1邊的選擇要求從小到大選擇,則開始顯然要對邊進(jìn)行升序排序。(2選擇的邊是否需要,則從判斷該邊加入后是否構(gòu)成環(huán)入手。難點(diǎn)解決一)難點(diǎn)解決一)(1 1對邊升序排序?qū)吷蚺判?方法可根據(jù)以前方法可根據(jù)以前 中選擇合適的排序。中選擇合適的排序。 在此采用鏈?zhǔn)浇Y(jié)構(gòu),通過插入排序完成。在此采用鏈?zhǔn)浇Y(jié)構(gòu),通過插入排序完成。 每一結(jié)點(diǎn)存放一條邊的左右端點(diǎn)序號、權(quán)值及后繼結(jié)點(diǎn)指針。每一結(jié)點(diǎn)存放一條邊的左右端點(diǎn)序號、權(quán)值及后繼結(jié)點(diǎn)指針。難點(diǎn)解決二)難點(diǎn)解決二)(2 2邊的加入是否構(gòu)成環(huán)邊的加入是否構(gòu)成環(huán) 一開始假定各頂點(diǎn)分別為一組,其組號為端點(diǎn)序號。一開始假定各頂點(diǎn)分別為一組,其組號為端點(diǎn)序號。 選擇某邊后,看其兩個(gè)端點(diǎn)是否在同一組中,即所在組號是否相同選擇某邊后,看其
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 租借游艇問題課程設(shè)計(jì)
- 算法綜合設(shè)計(jì)課程設(shè)計(jì)
- 補(bǔ)貨管理的優(yōu)化與實(shí)施方案計(jì)劃
- 健身器材銷售業(yè)績總結(jié)
- 2024年煙花爆竹安全的應(yīng)急預(yù)案
- 銀行工作總結(jié)創(chuàng)新發(fā)展成果彰顯
- 醫(yī)藥包材采購心得總結(jié)
- 娛樂活動行業(yè)顧問工作總結(jié)提升娛樂活動吸引力
- 服務(wù)業(yè)會計(jì)工作內(nèi)容分析
- 2024年設(shè)備的管理制度范本
- 山東省濟(jì)南市2023-2024學(xué)年高一上學(xué)期期末考試生物試題(解析版)
- 2025年工程春節(jié)停工期間安全措施
- 2024版人才引進(jìn)住房租賃補(bǔ)貼協(xié)議3篇
- 川藏鐵路勘察報(bào)告范文
- 新零售智慧零售門店解決方案
- 小學(xué)一年級數(shù)學(xué)20以內(nèi)的口算題(可直接打印A4)
- 上海黃浦區(qū)2025屆物理高一第一學(xué)期期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 肺結(jié)核課件教學(xué)課件
- 新生兒心臟病護(hù)理查房
- 規(guī)劃設(shè)計(jì)行業(yè)數(shù)字化轉(zhuǎn)型趨勢
- 2024年廣告代理合同的廣告投放范圍與分成比例
評論
0/150
提交評論