算法设计与分析吧 关注:304贴子:398
  • 7回复贴,共1

动态规划--------经典算法

只看楼主收藏回复

动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。1957年出版了他的名著Dynamic Programming,这是该领域的第一本著作。


1楼2013-10-21 00:09回复
    动态规划算法应用简述:动态规划是信息学竞赛中选手必须熟练掌握的一种算法,他以其多元性广受出题者的喜爱.动态规划首次进入信息学奥赛是在IOI94(数字三角形),在国内首次出现是在NOI95。此后动态规划成为信息学奥赛的必考算法之一。


    2楼2013-10-21 00:10
    回复
      2025-08-21 07:38:06
      广告
      不感兴趣
      开通SVIP免广告
      动态规划分类如下:线性动规,区域动规,树形动规,背包动规四类。


      3楼2013-10-21 00:11
      回复
        四类分别举例如下:
        线性动规:拦截导弹,合唱队形,挖地雷,建学校,剑客决斗等
        区域动规:石子合并, 加分二叉树,统计单词个数,炮兵布阵等
        树形动规:贪吃的九头龙,二分查找树,聚会的欢乐,数字三角形等
        背包问题:01背包问题,完全背包问题,分组背包问题,二维背包,装箱问题,挤牛奶(同济ACM第1132题)等


        4楼2013-10-21 00:11
        回复
          应用实例:最短路径问题 ,项目管理,网络流优化等


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


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


              7楼2013-10-21 00:13
              回复
                根据上例分析和动态规划的基本概念,可以得到动态规划的基本模型如下:
                (1)确定问题的决策对象。 (2)对决策过程划分阶段。 (3)对各阶段确定状态变量。 (4)根据状态变量确定费用函数和目标函数。 (5)建立各阶段状态变量的转移过程,确定状态转移方程。


                8楼2013-10-21 00:14
                回复