ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

动态规划的思考

2021-05-24 23:31:32  阅读:302  来源: 互联网

标签:状态 策略 决策 阶段 思考 动态 规划


动态规划详解

自我随笔总结(年少欲知为何)

 (1)动态规划的概念:动态规划是用来 求解抉择过程最优化 的过程。即有一个过程性问题,每一个过程中我们都可以选择不同的选择,而我们对于结果是有目标(要求、追求)的,即求一个最优(对于所有情况)(即一种最值)。而动态规划就是求解如何选择得到最优的方法。
 (2)动态规划的原理
  动态规划针对的问题是多阶段决策问题。
  即多阶段问题才可以用动态规划求解,那么什么是多阶段问题?多阶段问题指对一个过程,过程可以具体的分为多步,每一步都需要做出选择决策,每一步的决策会影响后面的决策(可能是此选择导致后面某一决策无法选择,也可能是在全局结果上看不能达到某个结果(即一念成佛,一念成魔导向不同的结果)等等)。
  对于多阶段问题,我们说它是一个过程,有很多阶段(分步),每一个阶段都 有且仅有一个决策。所有的决策组合起来的序列,称为一个策略(一种策略,一种情况)。不同的策略往往导致不同的结果(在计算机种就是用数字衡量),我们要做的就是找到最优的那种结果对应的策略。
动态规划:
  将所求问题转换为多阶段问题。
  将每个阶段形成的情况称为状态。(状态需要满足无后效性:即对于一个状态,我们需要推导它下一个状态,看当前状态且仅看当前状态来决策就可以了。(即当前状态可以完全的推导下一状态))。
  决策即每个阶段我们的选择是有范围的,不同的状态允许选择的策略组成的集合可能不同。
  我们要求的就是策略,策略是由多个连续的阶段(只要连续)的决策即选择构成的序列(因为要避免重复计算,所以所有中间策略也会记录)。而问题的解就是长度为阶段总数的策略(总策略)中的最优解。
  如何求解所有的状态呢?初始状态怎么求?后续状态怎么求,即状态转移怎么转移?动态规划之所以不像贪心那样简单是因为在最终策略完全形成之前,我们无法判断哪一个会是最优解(每一个都可能是),所以对于一个状态来说,下一步,我们要求对于这个状态来说最优的策略,最后才能求得其自身这条路线的最优。事实上动态规划也是这样子做的,这就是最优化原理,而最优策略也是这样求得的,所以最优策略中任何一个状态之后的所有决策即选择序列也是对于其状态最优的。(所以问题也应满足这样的条件,不然最优策略可能是某个状态选最差不是最优而得到的,就不能用动态规划求解,也即不满足最优化原理)
  为何叫动态规划?因为问题是多阶段的,在执行完所有阶段之前每一步都需要选择,而选择会引起状态的转移,情况的变化,所以是动态的。
  动态规划主要用于求解时间划分的阶段的动态过程的最优决策问题,但有时候虽然与时间无关,我们只要能分为、视为、看为多阶段决策过程,也可以考虑使用动态规划去求解。
  动态规划本质上是使用空间换时间,即记忆化存储数据避免重复计算得到好的时间复杂度,但如果问题规模太大即阶段太多,则空间复杂度也会过大而无法承受。(当今计算机人不能用动态规划方法来解决较大规模的问题,这就是维数障碍)。

参考资料

(1)动态规划的概念

                        动态规划

Dynamic Programming,DP是运筹学的一个分支是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的最优化原理,从而创立了动态规划。动态规划的应用极其广泛,包括工程技术、经济、工业生产、军事以及自动化控制等领域,并在背包问题、生产经营问题、资金管理问题、资源分配问题、最短路径问题和复杂系统可靠性问题等中取得了显著的效果。

(2)动态规划的原理

                       多阶段决策问题:

(1)如果一类活动过程可以分为若干个互相联系的阶段,在每一个阶段都需作出决策(采取措施),一个阶段的决策确定以后,常常影响到下一个阶段的决策,从而就完全确定了一个过程的活动路线,则称它为多阶段决策问题 。
(2)各个阶段的决策构成一个决策序列,称为一个策略。每一个阶段都有若干个决策可供选择,因而就有许多策略供我们选取,对应于一个策略可以确定活动的效果,这个效果可以用数量来确定。策略不同,效果也不同,多阶段决策问题,就是要在可以选择的那些策略中间,选取一个最优策略,使在预定的标准下达到最好的效果

                       动态规划问题中的术语

(1)阶段:把所给求解问题的过程恰当地分成若干个相互联系的阶段,以便于求解,过程不同,阶段数就可能不同.描述阶段的变量称为阶段变量。在多数情况下,阶段变量是离散的,用k表示。**此外,也有阶段变量是连续的情形。如果过程可以在任何时刻作出决策,且在任意两个不同的时刻之间允许有无穷多个决策时,阶段变量就是连续的 。

(2)状态:状态表示每个阶段开始面临的自然状况或客观条件,它不以人们的主观意志为转移,也称为不可控因素。在上面的例子中状态就是某阶段的出发位置,它既是该阶段某路的起点,同时又是前一阶段某支路的终点 。

(3)无后效性:我们要求状态具有下面的性质:如果给定某一阶段的状态,则在这一阶段以后过程的发展不受这阶段以前各段状态的影响,所有各阶段都确定时,整个过程也就确定了换句话说,过程的每一次实现可以用一个状态序列表示,在前面的例子中每阶段的状态是该线路的始点,确定了这些点的序列,整个线路也就完全确定。从某一阶段以后的线路开始,当这段的始点给定时,不受以前线路(所通过的点)的影响。状态的这个性质意味着过程的历史只能通过当前的状态去影响它的未来的发展,这个性质称为无后效性 。

(4)决策一个阶段的状态给定以后,从该状态演变到下一阶段某个状态的一种选择(行动)称为决策在最优控制中,也称为控制在许多问题中,决策可以自然而然地表示为一个数或一组数。不同的决策对应着不同的数值。描述决策的变量称决策变量,因状态满足无后效性,故在每个阶段选择决策时只需考虑当前的状态而无须考虑过程的历史
决策变量的范围称为允许决策集合 。

(5)策略:由每个阶段的决策组成的序列称为策略对于每一个实际的多阶段决策过程,可供选取的策略有一定的范围限制,这个范围称为允许策略集合
允许策略集合中达到最优效果的策略称为最优策略
给定k阶段状态变量x(k)的值后,如果这一阶段的决策变量一经确定,第k+1阶段的状态变量x(k+1)也就完全确定,即x(k+1)的值随x(k)和第k阶段的决策u(k)的值变化而变化,那么可以把这一关系看成(x(k)u(k))与x(k+1)确定的对应关系,用x(k+1)=Tk(x(k),u(k))表示这是从k阶段到k+1阶段的状态转移规律,称为状态转移方程

(6)最优化原理:作为整个过程的最优策略,它满足:相对前面决策所形成的状态而言,余下的子策略必然构成“最优子策略”
(7)最优性原理实际上是要求问题的最优策略的子策略也是最优

总结:多阶段决策问题中,各个阶段采取的决策,一般来说是与时间有关的,决策依赖于当前状态,又随即引起状态的转移,一个决策序列就是在变化的状态中产生出来的,故有“动态”的含义称这种解决多阶段决策最优化问题的方法为动态规划方法

(3)适合动态规划的条件

 虽然动态规划主要用于求解以时间划分阶段的动态过程的优化问题,但是一些与时间无关的静态规划(如线性规划、非线性规划),只要人为地引进时间因素,把它视为多阶段决策过程,也可以用动态规划方法方便地求解

任何思想方法都有一定的局限性,超出了特定条件,它就失去了作用。同样,动态规划也并不是万能的。适用动态规划的问题必须满足最优化原理和无后效性

最优化原理(最优子结构性质)可这样阐述:一个最优化策略具有这样的性质,不论过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。简而言之,一个最优化策略的子策略总是最优的。一个问题满足最优化原理又称其具有最优子结构性质

无后效性:将各阶段按照一定的次序排列好之后,对于某个给定的阶段状态,它以前各阶段的状态无法直接影响它未来的决策,而只能通过当前的这个状态换句话说,每个状态都是过去历史的一个完整总结。这就是无后向性,又称为无后效性 。

子问题的重叠性:动态规划算法的关键在于解决冗余,这是动态规划算法的根本目的动态规划实质上是一种以空间换时间的技术,它在实现的过程中,不得不存储产生过程中的各种状态,所以它的空间复杂度要大于其他的算法选择动态规划算法是因为动态规划算法在空间上可以承受,而搜索算法在时间上却无法承受,所以我们舍空间而取时间

(4)动态规划的局限性

动态规划对于解决多阶段决策问题的效果是明显的,但是动态规划也有一定的局限性。首先,它没有统一的处理方法,必须根据问题的各种性质并结合一定的技巧来处理;另外当变量的维数增大时,总的计算量及存贮量急剧增大。因而,受计算机的存贮量及计算速度的限制,当今的计算机仍不能用动态规划方法来解决较大规模的问题,这就是“维数障碍”。

文章内容部分摘引百度百科

标签:状态,策略,决策,阶段,思考,动态,规划
来源: https://blog.csdn.net/qq_51563654/article/details/117229744

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有