總結 貪心演算法

2021-08-09 04:10:17 字數 1146 閱讀 3422

貪心演算法(又稱貪婪演算法)是指,在對問題求解

時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的區域性最優解

那麼貪心演算法最重要的就是如何選擇最好的元素,這種選擇就稱為貪心選擇:貪心選擇是指所求問題的整體最優解可以通過一系列區域性最優的選擇,即貪心選擇來達到。這是貪心演算法可行的第乙個基本要素,也是貪心演算法與動態規劃演算法的主要區別。貪心選擇是採用從頂向下、以迭代的方法做出相繼選擇,每做一次貪心選擇就將所求問題簡化為乙個規模更小的子問題。對於乙個具體問題,要確定它是否具有貪心選擇的性質,我們必須證明每一步所作的貪心選擇最終能得到問題的最優解。通常可以首先證明問題的乙個整體最優解,是從貪心選擇開始的,而且作了貪心選擇後,原問題簡化為乙個規模更小的類fgdrdstret過每一步貪心選擇,最終可得到問題的乙個整體最優解。

思想:貪心演算法的基本思路是從問題的某乙個初始解出發一步一步地進行,根據某個優化測度,每一步都要確保能獲得區域性最優解。每一步只考慮乙個資料,他的選取應該滿足區域性優化的條件。若下乙個資料和部分最優解連在一起不再是可行解時,就不把該資料新增到部分解中,直到把所有資料列舉完,或者不能再新增演算法停止

演算法特性:貪婪演算法可解決的問題通常大部分都有如下的特性:

1,隨著演算法的進行,將積累起其它兩個集合:乙個包含已經被考慮過並被選出的候選物件,另乙個包含已經被考慮過但被丟棄的候選物件。

2,有乙個函式來檢查乙個候選物件的集合是否提供了問題的解答。該函式不考慮此時的解決方法是否最優。

3,還有乙個函式檢查是否乙個候選物件的集合是可行的,也即是否可能往該集合上新增更多的候選物件以獲得乙個解。和上乙個函式一樣,此時不考慮解決方法的最優性。

4,選擇函式可以指出哪乙個剩餘的候選物件最有希望構成問題的解。

6,為了解決問題,需要尋找乙個構成解的候選物件集合,它可以優化目標函式,貪婪演算法一步一步的進行。起初,演算法選出的候選物件的集合為空。接下來的每一步中,根據選擇函式,演算法從剩餘候選物件中選出最有希望構成解的物件。如果集合中加上該物件後不可行,那麼該物件就被丟棄並不再考慮;否則就加到集合裡。每一次都擴充集合,並檢查該集合是否構成解。如果貪婪演算法正確工作,那麼找到的第乙個解通常是最優的。

貪心演算法的最經典的例題就是0—1揹包問題:大家可以去檢視一下。

總結 貪心演算法 貪心演算法入門總結

英語 greedy algorithm,又稱貪婪演算法,是一種在每一步選擇中都採取在當前狀態下最好或最優 即最有利 的選擇,從而希望導致結果是最好或最優的演算法。比如在旅行推銷員問題中,如果旅行員每次都選擇最近的城市,那這就是一種貪心演算法。貪心演算法在有最優子結構的問題中尤為有效。最優子結構的意思...

貪心演算法總結

第一套題主要用貪心演算法來解決問題,貪心演算法簡單來說就是從區域性最優解,進而求得整體最優解,其中難點就是選擇貪心標準,貪心標準的選擇選的巧妙問題就會變的很簡單,比如第一題搬桌子的題,就是把房間轉化為對應的走廊號,問題就簡化了很多。貪心演算法的題目有的可以很簡單的看出來,常見典型的題有,揹包問題,最...

貪心演算法總結

在求最優解問題的過程中,依據某種貪心標準,從問題的初始狀態出發,直接去求每一步的最優解,通過若干次的貪心選擇,最終得出整個問題的最優解,這種求解方法就是貪心演算法。從貪心演算法的定義可以看出,貪心演算法不是從整體上考慮問題,它所做出的選擇只是在某種意義上的區域性最優解,而由問題自身的特性決定了該題運...