目录

  • 动态规划
    • 引言
    • 1 动态规划原理
      • 1.1 最短路问题及其解法
      • 1.2 动态规划的基本概念和术语
      • 1.3 最优化原理与动态规划方程
        • 1.3.1 最优化原理
        • 1.3.2 逆序动态规划方程
        • 1.3.3 顺序动态规划方程
      • 1.4 动态规划基本定理

动态规划

引言

  1951年,美国数学家贝尔曼(R.Bellman)等根据一类所谓多阶段决策问题的特性,提出了解决这类问题的“最优化原理”,并研究了许多实际问题,从而创立了最优化的一个新分支----动态规划
  动态规划没有统一的数学模型,对不同的问题要采用不同的方法去建立它们的模型。有了模型之后,要想得到数值解,仍然没有统一的处理方法。这是应当注意的。

1 动态规划原理

1.1 最短路问题及其解法

最短路问题及其解法

1.2 动态规划的基本概念和术语

动态规划的基本概念和术语

1.3 最优化原理与动态规划方程

1.3.1 最优化原理

  对于多阶段决策问题,作为整个过程的最优策略必然具有这样的性质:无论过去的状态和决策如何,就所形成的状态而言,余下的诸策略必然构成一个最优子策略。多阶段决策问题的这一规律称为最优化原理

1.3.2 逆序动态规划方程

  对后部指标函数Fk,nF_{k,n}Fk,n​及最优函数fk(xk)f_k(x_k)fk​(xk​)有

  (1)当Fk,n=∑j=knd(xj,uj)F_{k,n}=\sum\limits_{j=k}^nd(x_j,u_j)Fk,n​=j=k∑n​d(xj​,uj​)时,fk(xk)满足递推方程f_k(x_k)满足递推方程fk​(xk​)满足递推方程
{fk(xk)=optuk∈Dk{d(xk,uk)+fk+1(xk+1)},fn+1(xn+1)=0,k=n,n−1,⋯,2,1\left\{ \begin{array}{lcl} f_k(x_k) = \mathop{opt} \limits_{u_k \in D_k} \{ d(x_k,u_k) + f_{k+1}(x_{k+1})\} ,\\ f_{n+1}(x_{n+1})=0, k=n,n-1,\cdots,2,1 \end{array} \right. {fk​(xk​)=uk​∈Dk​opt​{d(xk​,uk​)+fk+1​(xk+1​)},fn+1​(xn+1​)=0,k=n,n−1,⋯,2,1​

  (2)当Fk,n=∏j=knd(xj,uj)F_{k,n}=\prod\limits_{j=k}^nd(x_j,u_j)Fk,n​=j=k∏n​d(xj​,uj​)时,fk(xk)满足递推方程f_k(x_k)满足递推方程fk​(xk​)满足递推方程
{fk(xk)=optuk∈Dk{d(xk,uk)⋅fk+1(xk+1)},fn+1(xn+1)=1,k=n,n−1,⋯,2,1\left\{ \begin{array}{lcl} f_k(x_k) = \mathop{opt} \limits_{u_k \in D_k} \{ d(x_k,u_k) \cdot f_{k+1}(x_{k+1})\} ,\\ f_{n+1}(x_{n+1})=1, k=n,n-1,\cdots,2,1 \end{array} \right. {fk​(xk​)=uk​∈Dk​opt​{d(xk​,uk​)⋅fk+1​(xk+1​)},fn+1​(xn+1​)=1,k=n,n−1,⋯,2,1​

  利用这两个递推公式原则上可求出最优函数f1(x1)f_1(x_1)f1​(x1​),称这两种递推公式为逆序动态规划方程。这种求最优函数的方法叫逆序法

1.3.3 顺序动态规划方程

  对前部指标函数F1,kF_{1,k}F1,k​及最优函数fk(xk)f_k(x_k)fk​(xk​)有

  (1)当F1,k=∑j=2kd(uj−1,xj)F_{1,k}=\sum\limits_{j=2}^kd(u_{j-1},x_j)F1,k​=j=2∑k​d(uj−1​,xj​)时,fk(xk)f_k(x_k)fk​(xk​)满足递推方程
{fk(xk)=optuk−1∈Dk−1{d(uk−1,xk)+fk−1(xk−1)},f1(x1)=0,k=2,3,⋯,n,n+1\left\{ \begin{array}{lcl} f_k(x_k) = \mathop{opt} \limits_{u_{k-1} \in D_{k-1}} \{ d(u_{k-1},x_k) + f_{k-1}(x_{k-1})\} ,\\ f_1(x_1)=0, k=2,3,\cdots,n,n+1 \end{array} \right. {fk​(xk​)=uk−1​∈Dk−1​opt​{d(uk−1​,xk​)+fk−1​(xk−1​)},f1​(x1​)=0,k=2,3,⋯,n,n+1​

  (2)当F1,k=∏j=knd(uj−1,xj)F_{1,k}=\prod\limits_{j=k}^nd(u_{j-1},x_j)F1,k​=j=k∏n​d(uj−1​,xj​)时,fk(xk)f_k(x_k)fk​(xk​)满足递推方程
{fk(xk)=optuk−1∈Dk−1{d(uk−1,xk)⋅fk−1(xk−1)},f1(x1)=1,k=2,3,⋯,n,n+1\left\{ \begin{array}{lcl} f_k(x_k) = \mathop{opt} \limits_{u_{k-1} \in D_{k-1}} \{ d(u_{k-1},x_k) \cdot f_{k-1}(x_{k-1})\} ,\\ f_1(x_1)=1, k=2,3,\cdots,n,n+1 \end{array} \right. {fk​(xk​)=uk−1​∈Dk−1​opt​{d(uk−1​,xk​)⋅fk−1​(xk−1​)},f1​(x1​)=1,k=2,3,⋯,n,n+1​

  利用这两个递推公式原则上可求出最优函数fn+1(xn+1)f_{n+1}(x_{n+1})fn+1​(xn+1​),称这两种递推公式为顺序动态规划方程。这种求最优函数的方法叫顺序法

1.4 动态规划基本定理

  基本定理  对于nnn阶段决策问题,若p1,n∗p^{\ast}_{1,n}p1,n∗​是最优策略,则对任意满足1<k<n1<k<n1<k<n的自然数kkk,其子策略pk,n∗p^{\ast}_{k,n}pk,n∗​(或p1,k∗p^{\ast}_{1,k}p1,k∗​)对于以
xk=Tk−1(xk−1,uk−1∗)(或xk−1=Tk−1(uk−1∗,xk))x_k = T_{k-1}(x_{k-1},u^{\ast}_{k-1}) (或x_{k-1} = T_{k-1}(u^{\ast}_{k-1}, x_{k})) xk​=Tk−1​(xk−1​,uk−1∗​)(或xk−1​=Tk−1​(uk−1∗​,xk​))
为初始状态的kkk到nnn(或111到kkk)段子过程来说,也必定是最优策略。

动态规划之最优化原理与动态规划方程相关推荐

  1. 最优控制 3:最优控制理论中的极小值原理与动态规划

    最优控制 3:使用极小值原理求解最优控制问题 引言 极小值原理 t f t_f tf​ 固定的情况 t f t_f tf​ 自由的情况 动态规划 连续系统 HJB 方程的推导 引言 经典变分法是一种特 ...

  2. c语言动态规划回溯的原理,「算法思想」分治、动态规划、回溯、贪心一锅炖...

    观感度:????? 口味:东北一锅出 烹饪时间:10min 本文已收录在Github github.com/Geekhyt,感谢Star. 数据结构与算法系列专栏第四弹来袭,往期专栏链接如下: 初学者 ...

  3. 【算法之动态规划(一)】动态规划(DP)详解

    一.基本概念 动态规划(dynamic programming)是 运筹学 的一个分支,是求解决策过程(decision process)最优化的数学方法.20世纪50年代初 美国 数学家R.E.Be ...

  4. 详解动态规划算法(Python实现动态规划算法典型例题)

    动态规划(Dynamic programming) 是一种在数学.计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法. 动态规划算法是通过拆分问题,定义问题状态和状 ...

  5. python动态规划详解_经典动态规划例题整理(Python版)

    由于本人的算法基础较为薄弱,所以在这里整理一下自己的做过的题,使自己能够随时随地回顾温习. 然后,本篇文章将会持续更新自己遇到的一些比较经典动态规划的题目,大家如果对代码有任何问题,直接在文章下面评论 ...

  6. java 动态规划找零钱_初探动态规划——LeetCode找零钱问题

    1.简介: 在leetcode上刷题的时候,遇到了一道找零钱的动态规划题,后台测试用例很变态,必须把算法优化的很好才能通过.也借此机会好好的研究了一下动态规划.在下小白一个,大神轻喷. 2.题目如下: ...

  7. matlab 背包问题动态规划,从01背包问题理解动态规划---初体验

    这个问题有两种解法,动态规划和贪婪算法.本文仅涉及动态规划. 先不套用动态规划的具体定义,试着想,碰见这种题目,怎么解决? 首先想到的,一般是穷举法,一个一个地试,对于数目小的例子适用,如果容量增大, ...

  8. 动态规划算法的原理和实现(Java)

    动态规划算法介绍 动态规划(Dynamic Programming)算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法 动态规划算法与分治算法类似,其基本思想也是将待求解问 ...

  9. 动态规划立体匹配代码_411,动态规划和递归求不同路径 II

    问题描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为& ...

最新文章

  1. Silve“.NET研究”rlight 游戏开发小技巧:传说中的透视跑马灯
  2. WP8.1学习系列(第二十五章)——控件样式
  3. SD-WAN — Overview
  4. vue 报错./lib/html5-entities.js, this relative module was not found
  5. 如何让两个输入框保持长度一直_投篮如何保持直线,为什么有些职业球员手臂弯曲投篮一直直...
  6. matlab相关论文,matlab
  7. 用Visual C++实现远程线程嵌入技术
  8. Caffe的创始人贾扬清说,算法工程师将不存在?
  9. 如何在工作中更好的学习
  10. rpg制作大师2003_RPG制作大师MV 我们一起做游戏(十五)
  11. if(!!boolean)两次取反
  12. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 表格:让表格更加紧凑
  13. CHIP-seq 分析笔记
  14. 华为手机上的网上邻居怎么用_华为手机上的网上邻居怎么用_HUAWEI Mate 8 网络邻居 使用教程...
  15. WORD文档插入页码时有几页不显示不显示页码?怎么解决
  16. ANSYS Electronics Desktop 19.2电机仿真思路
  17. NC7WZ14P6X绝对最大额定参数
  18. python如何求积分_python 求定积分和不定积分示例
  19. Java中violate关键字详解
  20. openlayers加载百度地图作为底图坐标偏移的解决办法

热门文章

  1. Intellij Idea flutter launch emulator Manager Unable to locate adb
  2. 攒机:5000就搞定的绝对NB配置!
  3. 7-316 藏头诗 (15分)
  4. 为 repo ‘AppStream‘ 下载元数据失败 错误:为 repo ‘AppStream‘ 下载元数据失败
  5. python round()_使用Xcode + Python进行IOS运动轨迹模拟!
  6. Windows10下配置JavaCup、JFlex及运行JavaCup测试用例
  7. word/wps分页
  8. [电商实时数仓] 数据仓库建模过程分析
  9. (重要)同网段和不同网段设备通信过程详解
  10. go语言web开发1 相关知识