动态规划阐述-2
Posted 编程男孩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态规划阐述-2相关的知识,希望对你有一定的参考价值。
前一篇讲到了动态规划的还有一个特性叫做:
最优子结构。如果一个给定问题的最优解包括了其子问题的最优解,那我就说这个问题具有最优子结构。当然我们也可以换个说法,如果存在某个问题Q,它的最优解是A,如果我们在计算A的时候,Q的子问题的最优解也同时被找到,那可以说Q具有最优子结构。
具体如何发现或者说证明一个问题最优最优子结构,我还没发现一个万能公式可以套用,后面我们讲到0-1背包问题时候,可以具体针对0-1背包问题推理一下。现在我们先来看下反例,就是看看哪些问题是没有最优子结构的。
上面是一个无权有向图,我们要求
q 到
t 的一条最长简单路径,通过观察我们可以发现
q->r->t 是一条
q 到
t 的最长简单路径,但这个问题的子问题( r 到 t 的最长简单路径)的最优解并不是
r->t,而应该是
r->q->s->t。所有这个问题并不具有最优子结构。
假设我们以左下角作为起点,右上角为终点,如果要让路径经过的区域里的数字加起来最大
我们可以找到图中绿色这条路径的数值加起来最大,最大值是3。可以验证一下,这条路径上的任意一点,从起点到该点的最优路径也是绿色这条路径上的一部分,这就满足了最优子结构。但如果我们改一下我们的目标解,我们想要路径经过的区域里的数值求和的绝对值最小。我们找到的最佳路径是下图黄色这条。
但对于这条路径上的 -4 这个点,从起点到它的满足求和后绝对值最小的最优解,显然不是黄色路径标志的这条(求和后绝对值为1):
此时的最优解应该是下面蓝色这条路径(求和后绝对值为0):
所以,对于找到一条“求和的绝对值最小”路径这个问题,它并不满足“最优子结构”。我们可以看到一般情况下,如果是求最值问题,一般都可以考虑DP算法,但如果是这种奇怪的绝对值最值问题,那就好重新考虑一下适不适合DP算法了。
以上是关于动态规划阐述-2的主要内容,如果未能解决你的问题,请参考以下文章
干货:图解算法——动态规划系列
干货:图解算法——动态规划系列
动态规划——从入门到放弃
递归详解
算法动态规划 ④ ( 动态规划分类 | 坐标型动态规划 | 前缀划分型动态规划 | 前缀匹配型动态规划 | 区间型动态规划 | 背包型动态规划 )
算法动态规划 ④ ( 动态规划分类 | 坐标型动态规划 | 前缀划分型动态规划 | 前缀匹配型动态规划 | 区间型动态规划 | 背包型动态规划 )