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