动态规划

一、概念:

         是通过组合子问题的解而解决整个问题的。

         过程: 每次决策依赖于当前状态,又随机引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就成为动态规划。


二、基本思想 、与分治法的比较:

        动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将带求解问题分解成若干个子问题,县求解子问题然后从这些子问题的解得到原问题的解。与分支法不同的是,适合用动态规划求解的问题,经分解到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够将保存已解决的子问题的答案,而在需要时再找出以求得的答案,这样就可以避免大量的重复计算,节省时间。我们可以用一个表来记录所有已解的子问题的答案,不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。这就是动态规划的基本思路。具体的动态规划算法多种多样,但他们具有相同的填表格式。


三、动态规划的三要素

       (1)阶段:把所给求解问题的过程恰当地分成若干个相互联系的阶段,以便于求解,过程不同,阶段数就可能不同。

       (2)状态:状态表示每个阶段开始面临的自然状况或客观条件,它不以人们的主观意志为转移,也称为不可控因素。过程的状态通常可以用一个或一组数来描述,称为状态变量。

       (3)决策(递推关系):从前一个阶段转化到后一个阶段之间的递推关系。


四、适用情况:

  能才有动态规划求解的问题一般要具有这三个性质:

       (1)最优化原理:如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理。

       (2)无后效性:某个阶段状态一旦确定,就不受这个状态以后决策的影响。也就是说,某状态以后的过程不会影响以前的状态,只与当前状态有关。

        (3)有重叠子问题:即子问题之间不独立,一个子问题在下一个阶段决策中可能被多次使用到。(该性质并不是动态规划使用的必要条件,但是如果没有这条性质动态规划算法同其他算法相比不具备优势)。


五、求解的基本步骤:

      (1)划分阶段:按照原问题的时间或空间特征,将问题分为若干个阶段。在划分阶段时,注意划分后的阶段一定要是有序的或者可排序的,否则问题无法求解。

      (2)确定状态和状态变量:将问题发展到各个阶段时所处于的各种客观情况用不同的状态表示出来。当然,状态的选择要满足无后效性。

     (3)确定决策并写出状态转移方程:因为决策和状态有着天然的联系,状态转移就是根据上一阶段的状态和决策来导出本阶段的状态。所以如果确定了决策,状态状态转移方程也就可以写出。但事实上常常反过来做,根据相邻两个阶段的状态之间的关系来确定决策方法和状态转移方程。

     (4)寻找边界条件:给出的状态转移方程是一个递推式,需要一个递推的终止条件或边界条件。

        一般,只要解决问题 的阶段、状态和状态转移决策确定了,就可以写出状态转移方程(包含边界条件)。


六、动态规划解决问题的一般思路:

        拿到多阶段决策最优化问题,第一步要判断这个问题是否可以用动态规划解决,如果不能就要考虑搜索或贪心了。当确定问题可以用动态规划后,就要用下面介绍的方法解决问题了:

    (1)模型匹配法

             最先考虑的就是这个方法了。挖掘问题的本质,如果发现问题是自己熟悉的某个基本的模型,就直接套用,但要小心其中的一些小的变动。

     (2)三要素法

       仔细分析问题尝试着确定动态规划的三要素,不同问题的确定方向不同:

       先确定阶段的问题:数塔问题、走路问题

       先确定状态的问题:大多数都是先确定状态的

       先确定决策的问题:背包问题

      (3)寻找规律法

       这个方法很简单,耐心推几组数据后,看他们的规律,总结规律间的共性,有点贪心的意思。

      (4)边界条件法

       找到问题的边界条件,然后考虑边界条件与他的临界状态间的关系。

       (5)放宽约束和增加约束





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值