日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

算法设计与分析(第四周)贪心算法、背包问题

發(fā)布時(shí)間:2024/2/28 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法设计与分析(第四周)贪心算法、背包问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

貪心算法

顧名思義,貪心算法總是作出在當(dāng)前看來(lái)最好的選擇。也就是說(shuō)貪心算法并不從整體最優(yōu)考慮,它所作出的選擇只是在某種意義上的局部最優(yōu)選擇。當(dāng)然,希望貪心算法得到的最終結(jié)果也是整體最優(yōu)的。

雖然貪心算法不能對(duì)所有問(wèn)題都得到整體最優(yōu)解,但對(duì)許多問(wèn)題它能產(chǎn)生整體最優(yōu)解。如單源最短路經(jīng)問(wèn)題,最小生成樹(shù)問(wèn)題等。在一些情況下,即使貪心算法不能得到整體最優(yōu)解,其最終結(jié)果卻是最優(yōu)解的很好近似。

例:用貪心法求解付款問(wèn)題

假設(shè)有面值為5元、2元、1元、5角、2角、1角的貨幣,需要找給顧客4元6角現(xiàn)金,為使付出的貨幣的數(shù)量最少首先選出1張面值不超過(guò)4元6角的最大面值的貨幣,即2元,再選出1張面值不超過(guò)2元6角的最大面值的貨幣,即2元再選出1張面值不超過(guò)6角的最大面值的貨幣,即5角,再選出1張面值不超過(guò)1角的最大面值的貨幣,即1角總共付出4張貨幣。

總結(jié)起來(lái),本題要求如下:

面值:5元 2元 1元 5角 2角 1角
需要付款:4元6角

貪心思想

在付款問(wèn)題每一步的貪心選擇中,在不超過(guò)應(yīng)付款金額的條件下,只選擇面值最大的貨幣,而不去考慮在后面看來(lái)這種選擇是否合理,而且它還不會(huì)改變決定:一旦選出了一張貨幣,就永遠(yuǎn)選定。付款問(wèn)題的貪心選擇策略是盡可能使付出的貨幣最快地滿足支付要求,其目的是使付出的貨幣張數(shù)最慢地增加,這正體現(xiàn)了貪心法的設(shè)計(jì)思想。

但是這種貪心思想并非對(duì)于任何問(wèn)題都有效。比如,面值變成如下情況:

面值:10元 7元 5元 1元
需要付款:12元

貪心算法結(jié)果:10元+1元+1元
實(shí)際上最優(yōu)情況:7元+5元

分析后我認(rèn)為,當(dāng)任一級(jí)別錢(qián)幣面值*2>高一級(jí)別錢(qián)幣面值時(shí),貪心算法不能任意付款需求時(shí)給出全局最優(yōu)解。(個(gè)人想法)

貪心算法的設(shè)計(jì)思路

貪心算法的設(shè)計(jì)思路是:總是做出在當(dāng)前看來(lái)最好的選擇,即貪心算法并不是從整體最優(yōu)考慮,它所做的選擇只是在某種意義上的局部最優(yōu)選擇。

貪心算法的基本要素



貪心算法與0-1背包問(wèn)題



手動(dòng)證明0-1背包問(wèn)題具有最優(yōu)子結(jié)構(gòu):

以下為假設(shè)背包容量與物品狀態(tài)

以下為反證法

0-1背包問(wèn)題不具有貪心選擇性質(zhì)。
原因是無(wú)法保證能夠?qū)⒈嘲b滿,而所剩空間降低了背包的總價(jià)值。

背包問(wèn)題具有貪心選擇性質(zhì)。

用貪心算法解背包問(wèn)題的基本步驟

1.計(jì)算每種物品單位重量的價(jià)值 Vi/Wi;
2.按照單位重量的價(jià)值從高到低的順序排序;
3.依據(jù)貪心選擇策略,按照單位價(jià)值從高到低的順序,依次將盡可能多的物品裝入背包中。直到背包裝滿為止。是否可以將物品裝入背包的條件是:有空間

偽代碼

總結(jié)

以上是生活随笔為你收集整理的算法设计与分析(第四周)贪心算法、背包问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。