一個貪心算法總是做出當(dāng)前最好的選擇,也就是說,它期望通過局部最優(yōu)選擇從而得到全局最優(yōu)的解決方案。 貪心算法在解決問題的策略上“目光短淺”,只根據(jù)當(dāng)前已有的信息就做出選擇,而且一旦做出了選擇,不管將來有什么結(jié)果,這個選擇都不會改變。因此我們在使用貪心算法時,應(yīng)注意,沒有后悔藥。一旦做出選擇,不可以反悔。 貪心算法的基本思路是從問題的某一個初始解出發(fā)一步一步地進(jìn)行,根據(jù)某個優(yōu)化測度,每一步都要確保能獲得局部最優(yōu)解。每一步只考慮一個數(shù)據(jù),他的選取應(yīng)該滿足局部優(yōu)化的條件。若下一個數(shù)據(jù)和部分最優(yōu)解連在一起不再是可行解時,就不把該數(shù)據(jù)添加到部分解中,直到把所有數(shù)據(jù)枚舉(點(diǎn)此了解枚舉)完,或者不能再添加算法停止 。 貪心算法過程:
貪心算法的應(yīng)用還是很多的,0-1背包問題、單源最短路徑、最小生成樹等等都用到了很經(jīng)典的貪心算法,在以后的文章里會為大家介紹。
|
|