运筹学——动态规划

目录

  • 1. 动态规划的基本概念与建模
  • 2. 动态规划问题求解

1. 动态规划的基本概念与建模

题1
某公司有资金10万元,若投资于项目i(i = 1,2,3)的投资额为 x i x_i xi,其收益分别为 g ( x i ) = 4 x i , g ( x 2 ) = 9 x 2 , g ( x 3 ) = 2 x 3 2 g(x_i) = 4x_i, g(x_2) = 9x_2, g(x_3) = 2{x_3}^2 g(xi)=4xi,g(x2)=9x2,g(x3)=2x32, 问应如何分配投资数额才能使总收益最大?建立动态规划模型。

  • 阶段
    将本问题将本问题划分为k = 1,2,3三个阶段,分别代表给项目1,2,3进行投资
  • 状态变量 s k s_k sk
    第k阶段开始时可以投资于第k个到第3个项目的资金
  • 决策变量 x k x_k xk
    决定给第k个项目投资的资金
  • 状态状态转移方程
    s k − 1 = s k − x k s 2 = s 1 − x 1 s_{k-1} = s_k - x_k \atop s_2 = s_1 - x_1 s2=s1x1sk1=skxk
  • 阶段指标函数 g k ( x k ) g_k(x_k) gk(xk)
    分配给第k个项目 x k x_k xk资金的收益值
  • 最优指标函数
    当可投资金为 s k s_k sk时, 投资第k至3项所得的最大收益
    基 本 方 程 为 : { f k ( s k ) = max ⁡ 0 ≤ x ≤ 100 [ g k ( x k ) + f k + 1 ( s k − x k ) ] , k = 3 , 2 , 1 f ( x 4 ) = 0 ( 边 界 条 件 ) 基本方程为:\Bigg\{{{f_k(s_k) = \max \limits_{0\leq x\leq100}[g_k(x_k) + f_{k+1}(s_k - x_k)]}, k = 3, 2, 1 \atop f(x_4) = 0 (边界条件)} {f(x4)=0()fk(sk)=0x100max[gk(xk)+fk+1(skxk)],k=3,2,1

2. 动态规划问题求解

运筹学——动态规划_第1张图片
动态规划的解题思路为用局部解来解整体

因为在虚拟的第4阶段她的收益只能是0,所以要逆向求解,即先3,再2,后1的顺序求解。

第三阶段时我们能够知道此时的状态变量 s 3 s_3 s3(在第3阶段可投入的总资源)可能取值为0, 1, 2, 3, 4, 5,这是最后一个阶段,因此只需要将所有的资源用就行。例如,当 s 3 s_3 s3 = 4时,我们在此条件下给这个阶段分配4资源,肯定是最大的。因此 f 3 ( s 3 ) f_3(s_3) f3(s3) (此局部的最大值,即局部最优解),取到最大值的 x 3 ∗ {x_3}^* x3 = 4


第二阶段时, 此时的状态变量 s 2 s_2 s2(在第2,3阶段可投入的总资源)可能取值为0, 1, 2, 3, 4, 5,我们还是抱着同一种想法:所有的资源都用上
例如,当 s 2 s_2 s2 = 3时,
若给第2阶段投入0资源,则第3阶段必定投入3资源,此时的 g ( x 2 ) + f 2 ( x 2 ) g(x_2) + f_2(x_2) g(x2)+f2(x2) = 0 + 11,
若给第2阶段投入1资源,则第3阶段必定投入2资源,此时的 g ( x 2 ) + f 2 ( x 2 ) g(x_2) + f_2(x_2) g(x2)+f2(x2) = 5 + 6,
若给第2阶段投入2资源,则第3阶段必定投入1资源,此时的 g ( x 2 ) + f 2 ( x 2 ) g(x_2) + f_2(x_2) g(x2)+f2(x2) = 10 + 4,
若给第2阶段投入3资源,则第3阶段必定投入0资源,此时的 g ( x 2 ) + f 2 ( x 2 ) g(x_2) + f_2(x_2) g(x2)+f2(x2) = 11 + 0,
其中的最大值是10 + 4 = 14,故 f 2 ( x 2 ) = 14 f_2(x_2) = 14 f2(x2)=14, 取到最大值的 x 2 ∗ {x_2}^* x2 = 2


第一阶段时,此时的状态变量 s 1 s_1 s1只能是5,因为它给了一个固定的值为5。
同第2阶段一样,采用穷举法求解。
完成以后会看到max = 21, x 1 x_1 x1 = 0, 2。


x 1 x_1 x1 = 0时, s 2 s_2 s2 = 5,此时 x 2 x_2 x2 = 2,前1,2阶段用了3资源,因此 s 3 s_3 s3 = 2
x 1 x_1 x1 = 2时, s 2 s_2 s2 = 3,此时 x 2 x_2 x2 = 2,前1,2阶段用了4资源,因此 s 3 s_3 s3 = 1


故max = 21, x 1 = 0 , x 2 = 2 , x 3 = 2 x_1 = 0, x_2 = 2, x_3 = 2 x1=0,x2=2,x3=2 x 1 = 2 , x 2 = 2 , x 3 = 1 x_1 = 2, x_2 = 2, x_3 = 1 x1=2,x2=2,x3=1

你可能感兴趣的:(运筹学,动态规划)