当前位置:文档之家› 动态规划的原理及应用

动态规划的原理及应用

动态规划的原理及应用班级:计科1302班小组成员:王海涛蔡佳韦舒蒋宪豪尹卓完成时间:2015年5月26日动态规划的原理及应用学生:算法设计第5组,计算机系指导教师:甘靖,计算机系摘要:动态规划是解决多阶段决策过程最优化问题的一种方法。

特点是把多阶段决策问题变换为一系列相互联系的单阶段问题,然后逐个加以解决。

其基本思想就是把全局的问题化为局部的问题,为了全局最优必须局部最优,适用于在解决问题过程中需要多次重复解决子问题的问题。

其应用领域广泛,涉及到管理学、经济学、交通、军事和计算机等多个领域,将动态规划思想正确地应用于实践,将对我们的生活带来便利,甚至带给我们的社会和国家以保障。

关键词:动态规划;最优决策;应用;领域The Principle and Application of Dynamic Programing The dynamic programing is a way to solve optimization problem in the process of multi-stage decision,whose feature is alter the multi-stage decision problems to single phase problems which are connected with each other,and then solve them one by one.The basic idea is to change the overall problem into partcial problem.And the partcial one must keep the best in order to promise the quality of overall one,which splies to repeatedly solving subproblem throughout the whole process.It is spreading to many fields,like management,economics,traffic,military and computer. Put the idea of dynamic programing correctly into practice will bring a lot of convenience to our daily life,our society as well as our country.引言我们在生活和工作中为了解决某个问题,有时难免要重复某个步骤多次,造成完成时间延迟,效率低下。

为了解决需要多次重复的困扰,产生了动态规划算法,旨在解决上述问题。

动态系统在自然界中是普遍存在的, 对于动态系统的稳定性分析长期以来一直是研究热点,且已经提出了一系列方法。

然而控制科技工作者往往在保证控制系统稳定性的基础上还要求其最优性,本世纪 50∼60 年代,在空间技术发展和数字计算机实用化的推动下, 动态系统的优化理论得到了迅速的发展,形成了一个重要的学科分支: 最优控制。

1957年 Bellman 提出了一种求解最优控制问题的有效工具: 动态规划 (Dynamic programing, DP) 方法。

该方法的核心是贝尔曼最优性原理, 即: 多级决策过程的最优策略具有以下性质,不论初始状态和初始决策如何,其余的决策对于由初始决策所形成的状态来说,必定也是一个最优策略。

这个原理可以归结为一个基本的递推公式,求解多级决策问题时,要从末端开始,到始端为止,逆向递推。

该原理适用的范围十分广泛,例如离散系统、连续系统、线性系统、非线性系统、确定系统以及随机系统等。

其精髓在于将求解过程划分成N个子阶段,并且将每个子阶段的结果存储在一张表中以便后续求解时直接调用前面已有的结果,从而避免了大量的重复计算,大大提高了计算的效率。

动态规划在经济、工程技术、企业管理、工农业生产及军事部门中都有广泛的应用,并且获得了显著的效果,可以用来解决最优路径问题、资源分配问题、生产调度问题、库存问题、装载问题、排序问题、设备更新问题、生产过程最优控制问题等等。

许多问题用动态规划的方法去处理,常比线性规划或非线性规划更有成效,因而动态规划的方法就成为非常有用的工具。

动态规划的原理和应用进行探究,旨在对动态规划有更深层次的理解,对动态规划的实际应用进行了解,以便以后深入和应用。

动态规划既然可以避免重复计算,大大地提高效率,那它的主要应用在哪些方面呢?下文我们将对动态规划的实际应用进行部分阐述,以期加深对动态规划的理解,以便之后真正的应用动态规划解决实际问题。

1.动态规划在计算机领域的应用科技的高速发展使得我们的生活变得非常便利,人们的生活已经离不开计算机。

比如我们使用的手机、电脑,交通中的红绿灯系统,国防系统等等,无论是我们国民的个人生活,还是我们国家的交通、国防都离不开计算机。

而计算机的精髓就在于算法,是算法赋予了计算机灵魂,尤其是动态规划算法在计算机行业中发挥着不可替代的作用。

首先分析下动态规划关于搜索引擎的问题。

2014年我国的网民数量达6.49亿,占我们国民总数的一半左右,而每个网民在需要帮助时大都会求助于互联网这个庞大的资源系统,这就引发了关于搜索引擎的搜索速度、质量等问题,因为这关系到网民的搜索体验。

采用动态规划算法设计的搜索系统,将搜索过程划分为N个子阶段,每个子阶段都将搜索结果保存在一张表中,这样就可以避免重复计算,从而大大减少了搜索的时间,提升了网民的搜索体验感。

其次,动态规划还应用在自适应问题上。

动态规划系统的稳定性分析长期以来一直是研究热点,然而控制科技工作者往往在保证控制系统稳定性的基础上还要求其最优性,这就出现了改进的自适应动态规划。

自适应动态规划应用非常广泛,主要应用在数据动态变化的场景中。

比如网页的自适应问题,根据屏幕分辨率的不同,动态选择答案;比如人工智能中的专家系统和机器学习系统,系统的知识库在不断地更新改变,通过自适应动态规划可以高效地找出一个最优策略;再比如电力系统,这种系统的特点是动态特性随着负载的变化而发生明显改变, 同时又要保证系统在故障情况下的稳定性,我们可以通过在电力控制系统中采用自适应动态规划解决这个难题。

总之,只要涉及到用计算机控制系统运转,并且符合使用动态规划要求的,我们都可以采用动态规划的方式解决问题,大大提高效率和保证稳定性。

2.动态规划在军事领域的应用国防是国家生存的首要条件。

强有力的国防不仅可以为一个国家的经济发展创造良好的内部和外部环境,同时也能有效的驱动国民经济的发展。

而动态规划在国防系统中的应用(导弹拦截系统、炮兵布阵、地雷排除等)可以增强国防,进而达到维护国家权益和地位目的。

下面将对导弹拦截系统进行举例:导弹拦截系统基本问题:某国为了防御敌国的导弹袭击,研发出一种导弹拦截系统,但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。

某天,雷达捕捉到敌国导弹来袭。

由于该系统还在试用阶段,所以只用一套系统,因此有可能不能拦截所有的导弹。

输入导弹依次飞来的高度(雷达给出高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。

第一个问题:因为只有一套导弹拦截系统,并且这套系统除了第一发炮弹能到达任意高度外,以后的每一发炮弹都不能高于前一发炮弹的高度;所以,被拦截的导弹应该按飞来的高度组成一个非递增序列。

题目要求我们计算这套系统最多能拦截的导弹数,实际上就是要求我们在导弹依次飞来的高度序列中寻找一个最长非递增子序列;第二个问题:每一个导弹最终的结果都是要被打的,如果它后面有一个比它高的导弹,那打它的这个装置无论如何也不能打那个导弹了,这样分析,问题便抽象成已知序列里找最长上升序列的问题。

求最长上升序列和最长非升序列是一样的,也就是动态规划算法的最长公共子序列问题。

又比如炮兵布阵问题,在一个既有平原又有山地的地区,司令部将这个地区分为一个N*M的网格地区在上部署炮兵部队,每一支炮兵能够攻击它的前后左右两格的地区,现在问题是在不能攻击到己方炮兵部队的前提下在这片地区最多能够部署多少炮兵部队。

这个问题就是动态规划算法的区域规划问题。

从问题本身来说就是要求最优解,很明显要以行作为状态,单就一行有可以部署炮兵也有不可以部署的,每一行上最多可以部署多少炮兵就是一个子问题,但是因为对于一个位置,如果它部署了一支部队,那么会对它的前后左右的2格位置产生影响,如果以行作为状态,则不能单单由上一状态转移,那样的话不能保证在它的2格处不发生矛盾,所以每行不能不顾其他行而单独考虑问题,这样每个子问题又不是独立的,通过对问题的分析利用动态规划的基本思想建立动态规划的基本模型,然后再对状态的存储问题进行考虑问题就可以迎刃而解。

在军事领域中,有很多类似的最优解问题,用动态规划算法可以简化问题,把问题抽象化成动态规划的基本问题从而找到解决思想。

3.动态规划在交通领域的应用动态规划在交通领域的应用,最多的就是路线规划问题,比如以时间、距等作为权值对路线进行优化,选择最优的路线进行导航。

利用动态规划解决此类问题,可以说效率是非常高的。

动态规划在最短路线问题应用中,要在一个路网中,寻找一确定点到另一确定点的最短路线,根据最短路线的性质,寻找最短路线的方法就是从最后阶段开始,由后向前逐步递推求出各点到终点的最短路线,最后求得由始点到终点的最短路线;即动态规划的方法是从终点逐段向始点方向寻找最短路线的一种方法。

按照动态规划的方法,将此过程划分为N个阶段,即阶段变量1,2,3...N;取过程在各阶段所处的位置为状态变量kS,按逆序算法求解。

在高速公路养护管理问题应用中,对一个具体的路网,从一个较长的分析期看,可以采用不同的修复方式,每种修复方式对路况改善的效果及相应的修复费用不一样的。

在下一个分析阶段,路面状况是与上一阶段采用的修复方式相联系的。

同时,在这一阶段,又可以采用不同的修复方式,各种方式的效果又与以后的阶段相联系。

所以,可以认为高速公路的养护过程是一个具有较长分析期,且每一阶段相互联系的多阶段决策问题,是一个典型的动态规划过程。

在交通领域中,用动态规划解决多阶段决策问题效率很高,而且思路清晰简便,同时易于实现,虽然使用动态规划方法也有一定的限制,如状态变量必须满足无后效性,并且只适用一些维数相当低的问题等。

但是,可以看到,动态规划方法的应用是很广的,已成功解决了许多实际问题,具有很强的实用性。

4.动态规划在经济学领域的应用动态规划在经济学领域的应用适当应用让我们收到最大的收益,比如说投资问题。

相关主题