1、,动态规划 在投资分配问题中的应用,人员分工,问题描述,小结,问题求解和仿真,问题分析,目录,目录,4,问题描述,目录,项目简介,小结,问题求解和仿真,问题分析,问题描述,假设某公司投入股市 600 万元的资金给 4 只股票, 各只股票所得到的利润与投资金额大小的关系如下表 。,试问应如何分配投资的资金才能使总利润最大?,问题分析,目录,项目简介,问题描述,小结,问题求解和仿真,问题分析,首先我们对资金的分配规定一个顺序:,A股票,将问题按分配过程分为三个阶段,根据动态规划逆序算法,可设:,fk(xk)表示将资金xk分配到第k只股票所得到的最大收益值,因而可得出递推方程:,fk(xk)= ma
2、x =0,1,6 gk(uk)+ fk+1(xk-uk),k=1,2,3,阶段数k=1,2,3(即A、B、C三只股票的编号分别为1,2,3);,状态变量xk表示分配给第k只股票至第3只股票的资金数(即第k阶段初尚未分配的资金数);,决策变量uk表示分配给第k只股票的资金数;,状态转移方程: xk+1=xk-uk;,gk(uk)表示uk百万元分配到第k只股票所得的收益值,它由上表可查得;,问题求解和仿真,目录,项目简介,问题描述,小结,问题分析,问题求解和仿真, k=3时,股票C的分配方案和总收益。最大收益:,f3(x3)= max =0,1,6 g3(x3),问题求解和仿真, k=2时,股票B
3、的分配方案和总收益。最大收益:,问题求解和仿真, k=1时,股票A的分配方案和总收益。最大收益:,故最优方案是:,投资A股票100万,B股票400万,C股票100万。 总利润为275万元。,问题求解和仿真,动态规划流程框图,m=1; A=0 60 80 105 115 130 150; B=0 65 85 110 140 160 175; C=0 75 100 120 135 150 180; for i=1:7for j=1:7for k=1:7if i+j+k=9d(m)=A(i)+B(j)+C(k);E(m,1)=i;E(m,2)=j;E(m,3)=k;m=m+1;elsecontinu
4、e;endendend end MAXNum=d(1); for l=1:size(d,2)if d(l)MAXNumMAXNum=d(l);p=l;elsecontinue;end end for l=1:size(d,2)if d(l)=MAXNumE(l,:)elsecontinue;end end MAXNum,本例matlab代码,运行结果,以容易得到最大利润为275, 最优分配方案为:(1,4,1),小结,目录,项目简介,问题描述,问题求解和仿真,问题分析,小结,查阅文献发现,对于求解本例,将动态规划算法与其他其他算法进行比较, 各算法的时间复杂度,以及改进方法如下:,各有的优缺点,15,其它注意事项以及经验小结,当股票只数很多, 或投资分配的单位比较小时, 计算工作量就很大,这时必须利用计算机来帮助完成。动态规划在资源分配中已经被广泛应用,这说明动态规划是在解决资源分配这类问题的有效方法。各种算法设计方法有各自不同的特点,针对不同的问题领域,它们有不同的效率和优缺点,因此要注意“对症下药”,对具体问题进行具体分析。,谢谢!,