目录标题
动态规划第七章
本章共五个问题:
- 最短路问题
- 资源分配问题
- 背包问题
- 多阶段生产问题
- 生产与库存问题
个人认为,动态规划的特点在于多阶段性,分步骤解决,上一阶段的问题解决后,上一阶段即为最优。
最短路问题
例题
特点
十分若置:
同阶段的节点之间,彼此无联系
不存在跨阶段节点
思路
按照步骤算,第i步找到所有i步能够到达的节点,算出他们的最短路径,作为该节点的价值
从后往前推,从前往后推,都可以
资源分配问题
例题
思路
x i x_i xi 分配给第 i i i个工厂的资金数(万元)
g i ( x i ) g_i(x_i) gi(xi) 第 i i i个工厂得到数量为 x i x_i xi(万元)的资金后的利润值(万元)【已知】
f k ( x ) f_k(x) fk(x) 以数量为x(万元)的资金分配给前k个工厂所得到的最大总利润值。
然后按顺序分别求出仅1、2、3、4个工厂时,怎么分配 x i x_i xi能达到最佳。,即求 f 4 ( 60 ) f_4(60) f4(60)【这个时候,所有 k ≤ 4 x ≤ 60 k≤4 x≤60 k≤4x≤60都能求出】
f k ( x ) = max y = 0 , 1 , 2 , ⋯ x { g k ( y ) + f k − 1 ( x − y ) } f_{k}(x)=\max _{y=0,1,2, \cdots x}\left\{g_{k}(y)+f_{k-1}(x-y)\right\} fk(x)=y=0,1,2,⋯xmax{
gk(y)+fk−1(x−y)}
具体步骤
step 1
step 2
逐个计算 f 2 ( 0 ) ∼ f 2 ( 60 ) f_2(0)\sim f_2(60) f2(0)∼f2(60)
同理,算出剩下的阶段
step 3
最后一个阶段,只用算 f k ( x m a x ) f_k(x_max) fk(xmax)即可。
背包问题
例题【二维】
思路
f k ( W , V ) f_k(W, V) fk(W,V) 总重量不超过 W W W公斤,总体积不超过 V V V,背包中只装前 k k k种物品时的最大使用价值。
x i x_i xi 第 i i i件物品取几个【经典背包限制了 x i ≤ 1 x_i \le 1 xi≤1】
只分析前 k k k个物品,此时前 k − 1 k-1 k−1个物品在所有重量 w ≤ W w \le W w≤W和体积 v ≤ V v \le V v≤V下的最优解均为已知。
第 k k k个物品只需要判断:取或不取【有的题目需要判断取不取,取几个,其实同理】
具体步骤
一维可参考
from
一维背包问题求解
多阶段规划问题
例题
思路
应当明确:原料总数不影响方案分配比
无论多少个生产方式,某个阶段都是梭哈某方式的决策为最优
按照从后往前的方法,先求出最后一步的最优策略,并列出该步骤最优策略的函数表达式 f k ( x ) f_k(x) fk(x)。
生产与库存
例题
思路
u k u_k uk k k k阶段产量
f k ( x k ) f_k(x_k) fk(xk) 阶段 k k k的初始库存量为 x k x_k xk时,阶段 k k k到计划期末的最小费用。
约束条件:
动态规划基本方程:
倒序枚举,求出每个阶段的每个 x i x_i xi需要的最小费用【每个阶段的每个 x i x_i xi内也可能有多个 u k u_k uk供选择】