目錄 :
1.概念
2.組合中的動態規劃
1.概念:
1.1.最優解問題其實是,多階段決策過程,其中我們會接觸到
約束條件-》滿足約束條件的可行解-》滿足目標函數的可行解是最優解-》因此解決我們的最優化問題
過程:
(1)劃分成若干個階段
(2)每個階段的決策僅依賴於前一階段的狀態,期間的狀態轉移也將作爲下一次決策的依據
1.2動態規劃的設計思想:
(1)劃分子問題:每個子問題對應一個決策階段
(2)確定動態規劃函數:子問題的重疊關係表現在對給定問題求解的遞推關係
(3)填寫表格
例子: 計算斐波那契:
數塔問題(重點):
下面將以這例子作爲典型例子進行分析:
(1)階段劃分: 每層爲一個階段
(2)計算方法:由第5層計算出第四層中的最大值:
21(2+19),28(18,10),19(9,10),21(5,16)
以此類推最後1階數塔問題,就是整個問題的最優解
代碼如下:
動態規劃算法實現:
遞歸算法實現:(美化代碼。。。)
2.組合中的動態規劃
2.1最大子段和
2.2最長公共子序問題:
組合問題中的動態規劃中的經典題目:
上代碼。上算法設計。
算法分析:
3.0/1揹包問題
附加的題目:
錢幣兌換問題