動態規劃
解決分治問題的時候,思路就是想辦法把問題的規模減小,有時候減小乙個,有時候減小一半,然後將每個小問題的解以及當前的情況組合起來得出最終的結果。
例如歸併排序和快速排序,歸併排序將要排序的陣列平均地分成兩半,快速排序將陣列隨機地分成兩半。
然後不斷地對它們遞迴地進行處理。
這裡存在有最優的子結構,即原陣列的排序結果是在子陣列排序的結果上組合出來的,但是不存在重複子問題,因為不斷地對待排序的陣列進行對半分的時候,兩半邊的資料並不重疊,分別解決左半邊和右半邊的兩個子問題的時候,
沒有子問題重複出現,這是動態規劃和分治的區別。
關於最優子結構
關於子問題最優解組合成原問題最優解的組合方式
結果正確性
分治動態規劃
貪心適用型別
通用優化
優化子問題
每個都不同
有很多重複
只有乙個
最優子結構
沒有要求
必須滿足
必須滿足
子問題數
全部都要解
全部都要解
只解乙個
動態規劃簡介
1.定義 動態規劃 dynamic programming 是運籌學的乙個分支,是求解決策過程 decision process 最優化的數學方法。20世紀50年代初美國數學r.e.bellman等人在研究多階段決策過程 multistep decision process 的優化問題時,提出了著名...
簡介動態規劃
這篇博文其實我是不想 也不敢寫的,因為自己還是半知半解,但又怕自己看了很久的東西和做題得來的體會以後給忘了,所以,還是寫下了。個人水平確實有限,若有錯誤的地方,歡迎指出!參考了 演算法導論 原書第3版 和網上的部落格。一 動態規劃的原理 1 動態規劃的用處 動態規劃與分治法相似,都是通過組合子問題的...
動態規劃基礎簡介
下邊就是自己的筆記 動態規劃演算法是將要解決的問題拆分成一系列相互交疊的子問題,通過推導關係定義子問題的求解策略,並隨時記錄子問題的解,最終獲得原始解,避免子相互交疊子問題的重複求解 這裡罵的是遞迴 動態規劃的三要素 中間結果儲存陣列 擅自加上的 最優子結構 每個階段最優狀態,可以從之前的某些狀態得...