動態規劃方法通常用來求解最優化問題
最優子結構
如果乙個問題的最優解包含其子問題的最優解,那麼就稱此問題具有最優子結構性質。某個問題是否適用動態規劃方法,觀察其是否具有最優子結構性質是乙個好的線索(具有最優子結構性質也可能意味著適用貪心策略)。實際上,發掘最優子結構性質遵循如下的通用模式:
不同問題的最優子結構的不同體現在兩個方面:
應用動態規劃方法的4個步驟:
自底向上**法:
這種方法一般需要恰當的定義子問題的規模的概念,使得任何子問題的求解都是依賴更小的「子」問題的求解。因而我們需要將子問題按照規模排序,由小至大依次求解。當求解某個子問題時,它所依賴的子問題的解已經求解完畢,且結果都被儲存。
帶備忘的自頂向下方法:
此方法仍按照自然的遞迴形式編寫函式,但每次函式執行都會儲存每個子問題的解(通常被儲存在乙個陣列或雜湊表裡)。當需要乙個子問題的解時,函式中先去檢查改解是否被儲存過。如果是,則直接返回被儲存的結果;否則,遞迴計算該問題的解。
動態規劃原理
子問題與原問題具有完全相同的結構 是否可以用結束狀態確定 狀態?不一定具有無後效性?在每個子問題的求解中都利用了它前面的子問題的最優化結果,依次進行,最後乙個子問題所得到的最 優解就是整個問題的最優解 最優化原理 區域性最優解導致全域性最優解 無後效性 dp 首先,請注意無後效性一般是針對問題的分析...
動態規劃原理
運用動態規劃求解最優化問題第一步 若乙個問題的最優解中包含其子問題的最優解,則此問題具有最優解的結構性質。因為使用子問題的最優解構造原問題最優解,所以我們必須確保考察了最優解中用到的所有子問題。如何發掘最優子結構性質 證明問題最優解的第乙個組成部分是做出乙個選擇。例如切割鋼條的第一次切割位置。做出該...
動態規劃原理
適合應用動態規劃方法求解的最優化問題應該具備的兩個要素 1 最優子結構 最優子結構性質 如果乙個問題的最優解包含其子問題的最優解,就稱該問題具有最優子結構性質。使用動態規劃方法時,我們用子問題的最優解來構造原問題的最優解。因此,我們必須小心確保考察了最優解中用到的所有子問題。在發掘最優子結構性質的過...