貪心演算法與動態規劃的區別

西伯利亞愛學習的狼發表於2020-08-10

這個問題是之前考研複試老師問的一個問題,當時答得還不錯。今天刷題後記錄一下。

貪心演算法:

  • 基本思想:貪心演算法並不從整體最優上加以考慮,它所做的選擇只是在某種意義上的區域性最優解。
  • 基本要素:最優子結構性質和貪心選擇性質。

動態規劃:

  • 基本思想:將待求解的問題分解成若干個子問題,先求解子問題,然後從這些子問題的解得到原問題的解。
  • 基本要素:最優子結構性質和重疊子問題性質

貪心演算法與動態規劃的區別:

  • 共同點:兩者都具有最優子結構性質
  • 不同點:
  1. 動態規劃演算法中,每步所做的選擇往往依賴於相關子問題的解,因而只有在解出相關子問題時才能做出選擇。而貪心演算法,僅在當前狀態下做出最好選擇,即區域性最優選擇,然後再去解做出這個選擇後產生的相應的子問題。
  2. 動態規劃演算法通常以自底向上的方式解各子問題,而貪心演算法則通常自頂向下的方式進行。

相關文章