1、動態規劃定義html
經過把原問題分解爲相對簡單的子問題的方式求解複雜問題的方法。算法
2、動態規劃與貪心算法區別數組
4、動態規劃解題的通常思路 框架
動態規劃所處理的問題是一個多階段決策問題,通常由初始狀態開始,經過對中間階段決策的選擇,達到結束狀態。這些決策造成了一個決策序列,同時肯定了完成整個過程的一條活動路線(一般是求最優的活動路線)。如圖所示。動態規劃的設計都有着必定的模式,通常要經歷如下幾個步驟。ide
1 for(j=1; j<=m; j=j+1) // 第一個階段 2 xn[j] = 初始值; 3 4 for(i=n-1; i>=1; i=i-1)// 其餘n-1個階段 5 for(j=1; j>=f(i); j=j+1)//f(i)與i有關的表達式 6 xi[j]=j=max(或min){g(xi-[j1:j2]), ......, g(xi-1[jk:jk+1])}; 7 8 t = g(x1[j1:j2]); // 由子問題的最優解求解整個問題的最優解的方案 9 10 print(x1[j1]); 11 12 for(i=2; i<=n-1; i=i+1) 13 { 14 t = t-xi-1[ji]; 15 16 for(j=1; j>=f(i); j=j+1) 17 if(t=xi[ji]) 18 break; 19 }
參考連接:優化
[1]http://www.javashuo.com/article/p-kwkslqxt-dt.htmlspa
[2]https://www.cnblogs.com/hithongming/p/9229871.html.net