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

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 表示过程终结时允许的存储量。

根据上述模型可解。

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数学建模是一门重要而又有趣的学科,它是将数学的方法与现实问题相结合的过程。在进行数学建模的过程中,笔记的记录是非常重要的,可以帮助我们更好地理解问题、掌握建模方法,并且方便后期的复习和总结。 我想将我的数学建模笔记手写在CSDN上,主要出于以下几个原因。首先,手写笔记能够培养我对数学建模概念的理解和记忆能力。通过亲自动手书写数学模型、公式和解题步骤,我可以更好地掌握知识点,避免只是机械地复制粘贴或者直接照抄书中的内容。 其次,通过手写笔记,我可以更好地记录自己在建模过程中的思考和想法。数学建模是一个灵活而创造性的过程,每个人对问题的理解和解决方式不尽相同。在手写笔记中,我可以更加自由地表达自己的思路和想法,将自己独特的见解与他人分享。 此外,手写笔记也可以提高我对数学建模问题的整体把握能力。在手写过程中,我需要整理和提炼一些关键的概念和知识点,并将它们以更简洁、更清晰的方式呈现出来。这种整合和概括的过程可以帮助我更好地理解问题的本质和解决思路,并将其与其他相关知识进行联系,形成一个更完整的知识体系。 最后,将数学建模笔记手写在CSDN上,可以与其他同学和科研者进行交流与讨论。CSDN是一个专注于计算机科学与技术的知识分享平台,拥有众多对数学建模感兴趣的读者和作者。通过将自己的笔记分享在CSDN上,可以获得更多人的意见和建议,从而不断完善自己的建模能力。 总而言之,数学建模笔记的手写在CSDN上,不仅可以帮助我提升对数学建模的理解和记忆能力,还可以促进思考、整理和交流能力,对于提升自己的数学建模能力具有重要意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值