【数学建模笔记04】数学建模的动态规划

动态规划是一种运筹学方法,用于解决决策过程的最优化问题。它涉及阶段、状态、决策、状态转移和指标函数等核心概念。通过将问题分解为阶段,选择状态变量和决策,并建立状态转移方程,可以求解如最短路线等问题。在生产计划问题中,动态规划用于计算最小费用路径。此方法广泛应用于路径规划、资源分配和成本优化等领域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

04. 动态规划

定义

动态规划是运筹学的一个分支,是求解决策过程最优化的数学方法。

动态规划是求解某类问题的一种方法,而不是一种特殊算法,没有标准的数学表达式和明确定义的一组规则。

动态规划的基本概念有:

  • 阶段:对整个过程的自然划分,阶段变量一般用 k = 1 , 2 , … , n k=1,2,\dots,n k=1,2,,n 表示;

  • 状态:每个阶段开始时过程所处的自然状况,用 x k x_k xk 表示第 k k k 阶段的状态变量,用 X k X_k Xk 表示第 k k k 阶段的允许状态集合;

  • 决策:一个阶段的状态确定后,作出各种选择从而演变到下一阶段的某个状态,用 u k ( x k ) u_k(x_k) uk(xk)​ 表示第 k k k​ 阶段处于状态 x k x_k xk​ 时的决策变量,用 U k ( x k ) U_k(x_k) Uk(xk) 表示 x k x_k xk 的允许决策集合;

  • 策略:决策组成的序列。由第 k k k 到第 j j j​ 阶段的子过程策略记
    p k j ( x k ) = { u k ( x k ) , … , u j ( x j ) } p_{kj}(x_k)=\{u_k(x_k),\dots,u_j(x_j)\} pkj(xk)={uk(xk),,uj(xj)}

  • 状态转移方程:表示状态和决策确定下一状态的演变规律,记
    x k + 1 = T k ( x k , u k ) , k = 1 , 2 , … , n x_{k+1}=T_k(x_k,u_k),k=1,2,\dots,n xk+1=Tk(xk,uk),k=1,2,,n

  • 指标函数:衡量过程优劣的数量指标,记
    V k , n ( x k , u k , x k + 1 , … , x n + 1 ) V_{k,n}(x_k,u_k,x_{k+1},\dots,x_{n+1}) Vk,n(xk,uk,xk+1,,xn+1)

  • 最优值函数:使指标函数达到最优,记
    f k ( x k ) = opt V k , n ( x k , p k n ) f_k(x_k)=\text{opt}V_{k,n}(x_k,p_{kn}) fk(xk)=optVk,n(xk,pkn)
    其中 opt \text{opt} opt 可取 max ⁡ \max max min ⁡ \min min

如果一个问题能用动态规划方法求解,可以按下列步骤建立动态规划的数学模型:

  1. 将过程划分成恰当的阶段;
  2. 正确选择状态变量 x k x_k xk,确定允许状态集合 X k X_k Xk
  3. 选择决策变量 u k u_k uk,确定允许决策集合 U k ( x k ) U_k(x_k) Uk(xk)
  4. 写出状态转移方程;
  5. 确定阶段指标;
  6. 写出基本方程。

典型问题

最短路线问题

状态:各段的初始位置 x k x_k xk

决策:各个状态出发的走向 x k + 1 = u k ( x k ) x_{k+1}=u_k(x_k) xk+1=uk(xk)

阶段指标:相邻两段状态间的距离 d k ( x k , u k ( x k ) ) d_k(x_k,u_k(x_k)) dk(xk,uk(xk))

指标函数:阶段指标之和;

最优值函数:由 x k x_k xk​ 出发到终点的最短距离。

于是有基本方程:
f k ( x k ) = min ⁡ u k ( x k ) [ d k ( x k , u k ( x k ) ) + f k + 1 ( x k + 1 ) ] , f_k(x_k)=\min_{u_k(x_k)}[d_k(x_k,u_k(x_k))+f_{k+1}(x_{k+1})], fk(xk)=uk(xk)min[dk(xk,uk(xk))+fk+1(xk+1)],

f n + 1 ( x n + 1 ) = 0 , k = n , … , 1 f_{n+1}(x_{n+1})=0,k=n,\dots,1 fn+1(xn+1)=0,k=n,,1

利用该模型就可以算出最短路线。

例子

对于下图

2
4
3
7
4
3
2
6
2
3
4
A
B1
B2
B3
C1
C2
D

可将其阶段划分为 k = 1 , 2 , 3 , 4 k=1,2,3,4 k=1,2,3,4

  • k = 1 k=1 k=1 时,有允许状态集合 X 1 = { A } X_1=\{A\} X1={A}
  • k = 2 k=2 k=2 时,有允许状态集合 X 2 = { B 1 , B 2 , B 3 } X_2=\{B_1,B_2,B_3\} X2={B1,B2,B3}
  • k = 3 k=3 k=3 时,有允许状态集合 X 3 = { C 1 , C 2 } X_3=\{C_1,C_2\} X3={C1,C2}
  • k = 4 k=4 k=4 时,有允许状态集合 X 4 = { D } X_4=\{D\} X4={D}

进行逆序求解,令

f 4 ( D ) = 0 f_4(D)=0 f4(D)=0

则有

f k ( x k ) = min ⁡ u k ( x k ) [ d ( x k , u k ( x k ) ) + f k + 1 ( x k + 1 ) ] f_k(x_k)=\min_{u_k(x_k)}[d(x_k,u_k(x_k))+f_{k+1}(x_{k+1})] fk(xk)=uk(xk)min[d(xk,uk(xk))+fk+1(xk+1)]

于是有

  • k = 4 k=4 k=4 时:
    f 4 ( D ) = 0 f_4(D)=0 f4(D)=0

  • k = 3 k=3 k=3​ 时:
    f 3 ( C 1 ) = d ( C 1 , D ) + f 4 ( D ) = 3 , f_3(C_1)=d(C_1,D)+f_4(D)=3, f3(C1)=d(C1,D)+f4(D)=3,

    f 3 ( C 2 ) = d ( C 2 , D ) + f 4 ( D ) = 4. f_3(C_2)=d(C_2,D)+f_4(D)=4. f3(C2)=d(C2,D)+f4(D)=4.

  • k = 2 k=2 k=2 时:
    f 2 ( B 1 ) = min ⁡ i [ d ( B 1 , C i ) + f 3 ( C i ) ] = d ( B 1 , C 2 ) + f 3 ( C 2 ) = 8 , f_2(B_1)=\min_{i}[d(B_1,C_i)+f_3(C_i)]=d(B_1,C_2)+f_3(C_2)=8, f2(B1)=imin[d(B1,Ci)+f3(Ci)]=d(B1,C2)+f3(C2)=8,

    f 2 ( B 2 ) = min ⁡ i [ d ( B 2 , C i ) + f 3 ( C i ) ] = d ( B 2 , C 1 ) + f 3 ( C 1 ) = 6 , f_2(B_2)=\min_{i}[d(B_2,C_i)+f_3(C_i)]=d(B_2,C_1)+f_3(C_1)=6, f2(B2)=imin[d(B2,Ci)+f3(Ci)]=d(B2,C1)+f3(C1)=6,

    f 2 ( B 3 ) = min ⁡ i [ d ( B 3 , C i ) + f 3 ( C i ) ] = d ( B 3 , C 2 ) + f 3 ( C 2 ) = 6. f_2(B_3)=\min_{i}[d(B_3,C_i)+f_3(C_i)]=d(B_3,C_2)+f_3(C_2)=6. f2(B3)=imin[d(B3,Ci)+f3(Ci)]=d(B3,C2)+f3(C2)=6.

  • k = 1 k=1 k=1 时:
    f 1 ( A ) = min ⁡ i [ d ( A , B i ) + f 2 ( B i ) ] = d ( A , B 3 ) + f 2 ( B 3 ) = 9. f_1(A)=\min_{i}[d(A,B_i)+f_2(B_i)]=d(A,B_3)+f_2(B_3)=9. f1(A)=imin[d(A,Bi)+f2(Bi)]=d(A,B3)+f2(B3)=9.

因此可得最短距离为 9,最短路径为
A → B 3 → C 2 → D A\to B_3\to C_2\to D AB3C2D

生产计划问题

阶段:自然时间;

状态:每阶段开始时的存储量 x k x_k xk

决策:每个阶段的产量 u k u_k uk

状态转移方程:
x k + 1 = x k + u k − d k x_{k+1}=x_k+u_k-d_k xk+1=xk+ukdk
其中 d k d_k dk 为每个阶段的需求量;

阶段指标:阶段的生产成本和储存费之和,设每阶段开工成本为 a a a,生产单位数量产品成本为 b b b,每阶段单位数量产品储存费为 c c c,即
v k ( x k , u k ) = c x k + { a + b u k , u k > 0 0 v_k(x_k,u_k)=cx_k+\left\{\begin{aligned} &a+bu_k,u_k>0\\ &0 \end{aligned}\right. vk(xk,uk)=cxk+{a+buk,uk>00
指标函数:阶段指标之和;

最优值函数:从状态 x k x_k xk 出发到过程终结的最小费用,即
f k ( x k ) = min ⁡ u k [ v k ( x k , u k ) + f f + 1 ( x k + 1 ) ] , f_k(x_k)=\min_{u_k}[v_k(x_k,u_k)+f_{f+1}(x_{k+1})], fk(xk)=ukmin[vk(xk,uk)+ff+1(xk+1)],

f n + 1 ( x n + 1 0 ) = 0 , k = n , … , 1. f_{n+1}(x_{n+1}^0)=0,k=n,\dots,1. fn+1(xn+10)=0,k=n,,1.

其中 x n + 1 0 x_{n+1}^0 xn+10 表示过程终结时允许的存储量。

根据上述模型可解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值