一、动态规划的基本概念
1.阶段:把一个问题的过程,恰当的分成若干个相互联系的阶段,以便于按一定的次序去求解。
2.状态:表示当前阶段开始所处的自然状况,一个阶段一般有多个阶段。
3.决策:当过程处于某个阶段的某一个状态时,可以做出不同的决定,从而确定下一个阶段的状态,而这个决定则是决策。
4.状态转移方程:是确定一个状态到另一个状态的演变过程。设s为状态,u为决策,则状态转移方程可以表示成如下形式:
二、动态规划的基本步骤
1、划分阶段
2、正确选择状态变量
3、确定决策变量及允许决策集合
4、确定状态转移方程
5、确定阶段指标函数和最优指标函数,建立动态规划基本方程
三、背包问题及其变形
1.一般描述:现在有n类物品需要选择若干件放入容量为a的背包中。每类物品的容量为a[1...n],其价值为c[1...n],则需要确定一种物品的放入方法来使得背包里面的物品的价值最大。
2.数学描述:
3.状态转移方程:
4.01背包问题:每个物品的个数只能为0或1.
5.经常出现的以背包问题为背景的经典面试题目
(1)从数组中取出3个数,使得这3个数的和最大
(2)输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来。