下载后可任意编辑实验二 用 MATLAB 解决动态规划问题问题:有一部货车天天沿着公路给四个售货店卸下 6 箱货品,假如各零售店出售该货品所得利润如下表所示,试求在各零售店卸下几箱货品,能使获得总利润最大
零售店箱数12340000014234264553 76 7 6478 865798667 1086解:1)将问题按售货店分为四个阶段2)设 sk表达为分派给第 k 个售货店到第 n 个工厂的货品数,xk设为决策变量,表达为分派给第 k 个售货店的货品数,状态转移方程为 sk+1=sk-xk
Pk(xk)表达为 xk箱货品分到第 k 个售货店所得的赚钱值
fk(sk)表达为 sk箱货品分派给第 k 个售货店到第 n 个售货店的最大赚钱值
3)递推关系式:fk(sk)=max[ Pk(xk)+ fk+1(sk-xk) ] k=4,3,2,1边界条件:f5(s5)=04)从最后一个阶段开始向前逆推计算
第四阶段:下载后可任意编辑设将 s4箱货品(s4=0,1,2,3,4,5,6)所有分派给 4 售货店时,最大赚钱值为: f4(s4)=max[P4(x4)] 其中 x4=s4=0,1,2,3,4,5,6 x4*表达使得 f4(s4)为最大值时的最优决策
x4s4 P4(x4)f4(s4)x4*01234560000144125523663466456656666第三阶段:设将 s3箱货品(s3=0,1,2,3,4,5,6)分派给 3 售货店和 4 售货店时,对每一个 s3值,都有一种最优分派方案,使得最大赚钱值为:f3(s3)=max[ P3(x3)+ f4(s3-x3) ] ,x3=0,1,2,3,4,5,6x3s3 P3(x3)+f4(s3-x3) f3(s3)x3*012345600+00010+43+04020+53+45+07130+63+55+47+0