動態規划算法與分治演算法思想

來源:互聯網
上載者:User

      動態規划算法與分治法類似,其基本思想也是將待求解問題分解成若干子問題,先求解子問題,然後從這些子問題的解得到原問題的解。與分治法不同的是,適合於用動態規劃法求解的問題,經分解得到的子問題往往不是相互獨立的。若用分治法來解這類問題,則分解得到的子問題數目太多,以至於最後解決原問題需要耗費指數時間。然而,不同子問題的數目常常有多項式量級。在用分治法求解時,有些子問題被重複計算了許多次。如果我們能夠儲存已經解決的子問題的答案,而在需要時再找出已求解的答案,這樣就可以避免大量重複計算,從而得到多項式的時間演算法。為了達到這個目的,我們可以用一個表來記錄所有已解決的子問題的答案。不管該子問題以後是否被用到,只要它被計算過,就將其結果填入表中。這就是動態規劃法的基本思想。具體的動態規划算法多種多樣,但它們具有相同的填表格式。

     動態規划算法通常用於求解具有某種最優性質的問題。在這類問題中,可能會有許多可行的解。每一個解都對應於一個值,我們希望找到具有(最大值或最小值)的那個解。設計一個動態規划算法,通常可按以下幾個步驟進行:

  1. 找出最優解的性質,並刻畫其結構特徵。
  2. 遞迴地定義最優值。
  3. 以自底向上的方式計算出最優值。
  4. 根據計算最優值時得到的資訊,構造一個最優解。

步驟(1)~(3)是動態規划算法的基本步驟。在只需要求出最優值的情形,步驟(4)可以省去。若需要求出問題的一個最優解,則必須執行步驟(4)。此時,在步驟(3)中計算最優值時,通常需記錄更多的資訊,以便在步驟(4)中,根據所記錄的資訊,快速構造一個最優解。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.