zoukankan      html  css  js  c++  java
  • 关于动态规划的一点心得体会

    今天又认真看了算法导论中的动态规划原理那一节, 有一点想法。

    书中说的适合动态规划解决的问题有两个要素:最优子结构和子问题重叠。后者就有记忆化搜索这个没什么好讲的。那么关于最有子结构,其实当我们在猜测最优子结构时,一般有两个问题:一是我们要把规模为n的问题变成小于n的子问题;二是我们要合并小于n的这些子问题的解。这里我主要想讨论的是合并子问题时的一些问题。

    举个例子《算法导论》15.2中提到的矩阵链乘法,我们用M(i,j)来记录Ai,Ai+1,……Aj的计算代价,那么求A1,A2,……Aj?我们假如从k和k+1初切割子问题能得到最优解,那么代价即为M(1,k)+M(k+1,j)再加上两个子问题合并的代价,即A1的行*Ak的列*Aj的列。这里注意:无论我们如何求解这两个子问题,A1的行*Ak的列*Aj的列这个值是永远不会变的。这就是我想讨论的重点:求解子问题,对合并子问题没有影响。这也是动态规划的一个要素!!

    真是越看东西越多,我就一点一点记吧。插一句,算法导论真好,完全可以作为中国本科算法教材嘛,干嘛非要自己写书,删删减减,搞得教材很四不像,高不成低不就。

    对子问题进行分析的时候,自己找个小例子画一下子问题分解图。这里比较难的是分析状态,如何确定状态呢?

  • 相关阅读:
    DELPHI中GetTickCount 函数的应用
    Delphi 中 StrToIntDef 函数的应用
    TeeChart 动态建曲线
    历遍指定文件夹下的文件
    DELPHI 获取错误信息
    delphi播放flash
    C# 获取当前路径方法
    DELPHI 修改系统分辨率
    SQL字符串处理函数 Yang
    Linux基本操作 Yang
  • 原文地址:https://www.cnblogs.com/chaiwentao/p/4357423.html
Copyright © 2011-2022 走看看