貪心演算法的基本思想
1樓:木葉
貪心演算法的基本思想就是分級處理。
貪心演算法是一種分級處理的方法。用貪禪信心法。
設計演算法的特點是一步一步的進行,根據某個優化測度(可能是目標函式,也可能不是目標函式),每一步上都要保證能獲得區域性最優解。每一步只考慮乙個資料,它的選取應滿足區域性優化條件。若下一賀拍輪個資料與部分最優解連在一起不再是可行解時,就不把該資料新增到部分解中,直到把所有資料列舉完,或者不能再新增為止。
貪心演算法可解決的問題通常大部分都有如下的特性:
1、隨著演算法的進行,將積累起其它兩個集合:乙個包含已經被考慮過並被選出的候選物件,另乙個包含已經被考慮過但被丟棄的候選物件。
2、有乙個函式來檢查乙個候選對賀好象的集合是否提供了問題的解答。該函式不考慮此時的解決方法是否最優。
3、還有乙個函式檢查是否乙個候選物件的集合是可行的,也即是否可能往該集合上新增更多的候選物件以獲得乙個解。和上乙個函式一樣,此時不考慮解決方法的最優性。
4、選擇函式可以指出哪乙個剩餘的候選物件最有希望構成問題的解。
5、最後,目標函式給出解的值。
貪心演算法
2樓:黑科技
在某乙個標準下,優先考慮做滿足標準的樣本,最後考慮最不滿足標準的樣本,最終得到乙個答案的演算法,叫做貪心演算法。
即,不從整體最優上加以考慮,所做出的是在某種意義上的區域性最優解。
區域性最優 -?整體最優。
一些專案要佔用乙個會議室宣講,會議室不能同時容納兩個專案的宣講。 給你每乙個專案開始的時間和結束的時間(給你乙個數 組,裡面是乙個個具體 的專案),你來安排宣講的日程,要求會議室進行的宣講的場次最多。 返回這個最多的宣講場次。
一塊金條切成兩半,是需要花費和長度數值一樣的銅板的。比如長度為20的金 條,不管切成長度多大的兩半,都要花褲凳培費20個銅板。
一群人想整分整塊金條,怎麼分最省銅板? 例如,給定陣列,代表一共三個人,整塊金條長度為10+20+30=60。 金條要分成10,20,30三個部分。
如果先把長度60的金條分成10和50,花費60; 再把長度50的金條分成20和30,花費50;一共花費110銅板。 但是如果先把長度60的金條分成30和胡唯30,花費60;再把長度30金條分成10和20, 花費粗鏈30;一共花費90銅板。
輸入乙個陣列,返回分割的最小代價。
輸入:正數陣列costs
正數陣列profits
正數k正數m
含義: costs[i]表示i號專案的花費。
profits[i]表示i號專案在扣除花費之後還能掙到的錢(利潤)
k表示你只能序列的最多做k個專案。
m表示你初始的資金。
輸出: 你最後獲得的最大錢數。
五大常用演算法之一:貪心演算法
3樓:張三**
所謂貪心選擇性質是指所求問題的整體最優解可以通過一系列區域性最優的選擇,換句話說,當考慮做何種選擇的時候,我們只考慮對當前問題最佳的選擇而不考慮子問題的結果。這是貪心演算法可行的第乙個基本要素。貪心演算法以迭代的方式作出相繼的貪心選擇,每作一次貪心選擇就將所求問題簡化為規模更小的子問題。
對於乙個具體問題,要確定它是否具有貪心選擇性質,必須證明每一步所作的貪心選擇最終導致問題的整體最優解。
當乙個問題的最優解包含其子問題的最優解時冊祥,稱此問題具有最優子結構性質。問題的最優子結構性質是該問題可用貪心演算法求解的關鍵特徵。
值得注意的是,貪心演算法並不是完全不可以使用,貪心策略一旦經過證明成立後,它就是一種高效的演算法。比如,求最小生成樹的prim演算法和kruskal演算法都是漂亮的貪心演算法
貪心演算法還是很常見的演算法之一,這是由於它簡單易行,構造貪心策略不是很困難。
可惜的是,它需要證明後才能真正運用到題目的演算法中。
一般來說,貪心演算法的證明圍繞著:整個問題的最優解一定由在貪心策略中存在的子問題的最優解得來的。
對於例題中的3種貪心策略,都是無法成立(無法被證明)的,解釋如下:
貪心策略:選取價值最大者。反例:
w=30物品:a b c
重量:28 12 12
價值:30 20 20
根據策略,首先選取物品a,接下來就無法再選取了,可是,選取b、c則更好。
2)貪心策略:選取重量最小。它的反例與第一種策略的反例差不多。
3)貪心策略:選取單位重量價值最大的物品。反例:
w=30物品:a b c
重量:28 20 10
價值:28 20 10
根據策略,三種物品單位重量價值一樣,程式無法依據現有策略作出判斷,如果選擇a,則答案錯誤。但是果在條件中加一句當遇見單位價值相同的時候,優先裝重量小的,這樣的問題就可以解決。
所以需要說明的是,貪心演算法可以與隨機化演算法一起使用,具體的例子就不再多舉了。(因為這一類演算法普及性不高,而且技術含量是非常高的,需要通過一些反例確定隨機的物件是什麼,隨機程度如何,但也是稿州不能保證完全正確,只能是極大州敬搏的幾率正確)。
一道會計題!求解一道會計題目,求解!!!
購進一方的 抄進項稅,其實 襲就是銷售方代收代繳的bai增du值稅,一般情況下都會zhi跟著價款一起支付dao的,而且運雜費,怎麼可能欠著貨運公司的錢不給,也不多,如果按照常理來說,應該是銀行存款都支付了,出這個題目的人如果是按照常理說的話,標點符號用錯了,如果用頓號就不會引起歧義了,我覺得你們的做...
求解一道Python程式設計題,求解一道Python程式設計題
斐波那契數列自第三個數開始,每個數均為之前兩個數的和。至少有兩種方法來實現它。最常見的利用迭代的方法,其核心思路是 fib n fib n 1 fib n 2 而在n 2時直接,沒有n 2,因此直接返回1 def fib num return 1 if n 2 else fib num 1 fib ...
求解一道概率題,一道概率題,求解!
joe owns the brown car,也就是說其概率變成1,另外joe擁有blue和black的概率都變成0,且john和jim擁有brown car的概率也變成0。另外很重要的一點是每一行每一列的和都應該是1,這個不能變。carblue black brownjoe 0 0 1john x...