動態規劃 詳解思想步驟

2021-08-26 11:56:02 字數 394 閱讀 1237

1      .求解動態規劃問題的基本步驟和思想:

動態規劃的式子都是狀態p由狀態q1、q2、q3……之中選擇乙個或幾個計算出來的形式,但是如果一直是一些狀態這樣遞迴下去,最後會無限迴圈的,所以每個式子一直寫下去最後都會得到一些狀態p是常數(遞迴邊界)的形式。(以上可構造乙個dag)

自底向上就是已經知道了所有遞迴邊界,把所有可能的狀態都算出來。基本步驟是乙個拓撲排序的過程,從所有遞迴邊界出發,當乙個狀態被所有可能的下層狀態更新後,就用這個狀態去更新後面的狀態。直到所求的狀態被徹底更新完成為止。

自頂向下就是不考慮整個圖結構,直接從要求的狀態開始展開式子,如果式子中的某個狀態的值還不清楚,就遞迴的從這個狀態展開。遞迴結束後式子中的狀態都被對應的值替換了,所求狀態自然也就清楚了。

2. 原理、例題      

動態規劃 思想

動態規劃 把問題劃分成子問題遞迴求解,並且保留中間結果以避免重複計算子問題的方法,叫動態規劃。eg 三角形路徑數字之和 關鍵思想 1,劃分成若干子問題 2,子問題的狀態,及若干狀態值 狀態的表述。3,子狀態之間的轉換 即遞迴求解,子狀態到上一級子狀態之間的變換關係 即如何從乙個或多個值已知的狀態,求...

動態規劃思想

1 解決問題 分治 用有限的計算能力處理大規模問題的基本手段 1.1 遞迴 問題的解決方法包含遞迴部分和非遞迴部分,非遞迴部分解決問題的一部分,減少問題規模,而遞迴部分將形式不變,但減小了規模的問題傳遞到下一輪解決中去。這樣,每一輪處理,問題都有一部分 規模 得到解決,一直遞迴下去 直到終止條件 直...

動態規劃的思想

動態規劃 dynamic programming 演算法是解決多階段決策過程最優化問題的一種常用方法,難度比較大,技巧性也很強。利用動態規劃演算法,可以優雅而高效地解決很多貪婪演算法或分治演算法不能解決的問題。動態規劃演算法的基本思想是 將待求解的問題分解成若干個相互聯絡的子問題,先求解子問題,然後...