貪心算法

特性

作出的是局部最優的,但不必定是總體最優。算法

每每比動態規劃效率高,雖然可能求不到最優解,可能會求得最優解的近似解。排序

性質

貪心選擇性質

總體最優解可經過一系列局部的最優選擇來達到資源

是自頂向下的(與動態規劃相反)效率

最優子結構性質

與動態規劃相同im

要證實貪心算法的正確性就要證實是否知足這兩個性質集合

例子

  • 揹包問題

固定的重量條件下,裝下的物品儘量總價值最大。兼容

不是0-1揹包,是能夠裝的數量x(0<=x<=1)。動態規劃

這樣的揹包的貪心策略是每次選擇單位價值最大的物品裝進去。時間

  • 活動安排問題

對於共享一個資源的一系列活動,要在固定時間內,儘可能安排多的活動。生成

把活動按結束時間從早到晚排序,策略是每次選擇結束時間最先的且與上一個選中的活動兼容的活動。

  • 最優裝載

要求:在固定總重量的條件下,不一樣重量的系列箱子,裝儘量多的箱子。

策略:每次選擇最輕的箱子。

  • 單源最短路徑

要求:求圖中對於給定源點v,它到其它點的最短路徑

策略:每次選擇不在已選擇集合而且到源點距離最近的點

  • 最小生成樹MST

MST性質:圖分裂成兩個集合,則這兩個集合的最小連通的邊必定會出如今最小生成樹

  1. Prim——最近頂點

每次選擇在兩個集合(已選擇集合和未選擇集合)之間的最短邊

  1. Kruskal

每次選擇全部邊的最短邊。

 

 

  • 多機調度

要求:m個機器儘量短的時間內完成n個做業

策略:最長做業優先

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息