1.问题.
2.解析
递推公式:
设Fk(x)表示x万元投给前k个项目的最大效益,k=1,2,…,n,x=1,2,…,m
说明:第k步,前后共分配x万元
分配给第k个项目为xk;
x-xk万元,分配给前k-1个项目
证明满足优化原则:
优化原则:一个最优决策序列的任何子序列本身一定是相对于子序列的初始和结束状态的最优决策序列。
已知:这个序列L1是最优决策序列
那么:这个序列任何子序列本身一定是相对于子序列的初始和结束状态的最优决策序列。
证明(反证法):
模板:
实例:
如L=f1(x1)+f2(x2)+f3(x3)+f4(x4)+f5(x5)
L1=f1(x1)+f2(x2)+f3(x31)+f4(x4)+f5(x5)
s1=f2(x2)+f3(x31)+f4(x4)
s2=f2(x2)+f3(x32)+f4(x4)
L2=f1(x1)+f2(x2)+f3(x32)+f4(x4)+f5(x5)
其中L中x3可取x32和x32,当取x31时,L的最大值为L1
3.设计
递推方程:
边界方程:
xi(x)=k:新加第i项时,总共分配x元时,第i项分配了k元(xk)
for k=1,2,3,…,n
for x=1,2,3,…,m
for xk=0,1,2,3,…,x
x2(1)=0表示在总共分配1万元时,取得最大效益11万元时分配给第二个项目的钱数是0;
完成如下表格:
4.分析
5.实例
当k=1时:
g1(x)= f1(x),即找到这唯一的一个项目的最大利益即为所求的答案
当1<k<=n,k=2时运用f与g的关系递推求出每种投资额下的利益
例如:
g2(5)= max(f2(x)+g1(5-x))
g2(4)= max(f2(x)+g1(4-x))
g2(3)= max(f2(x)+g1(3-x))
g2(2)= max(f2(x)+g1(2-x))
g2(1)= max(f2(x)+g1(1-x))
g2(0)= max(f2(x)+g1(0-x))
k=3时;
g3(5)= max(f3(x)+g2(5-x))
g3(4)= max(f3(x)+g2(4-x))
g3(3)= max(f3(x)+g2(3-x))
g3(2)= max(f3(x)+g2(2-x))
g3(1)= max(f3(x)+g2(1-x))
g3(0)= max(f3(x)+g2(0-x))
k=4,k=5
直到推出k=n(该例题中n=5,所以k=5即结束)时的gk(m)即为所要求的最大利益。