最优子结构

作者:王赟 Maigo
链接:https://www.zhihu.com/question/52165201/answer/288025858
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

举个简单的例子。下面是一个地图,我们要找一条从左下角(起点)到右上角(终点)、只向右和向上走的路径。

<img src="https://pic2.zhimg.com/50/v2-4cc436c57c1505b1bbe8fa536db7bede_hd.jpg" data-caption="" data-size="normal" data-rawwidth="88" data-rawheight="77" class="content_image" width="88">

如果要让路径经过的数字总和最大,那么最优路径是下面这条:

<img src="https://pic2.zhimg.com/50/v2-12aa22f2e3b094ba1fb6f6a148be165d_hd.jpg" data-caption="" data-size="normal" data-rawwidth="88" data-rawheight="77" class="content_image" width="88">

可以验证,对于最优路径上的任意一点,最优路径从起点到该点的部分,也正是从起点到该点的所有路径中数字总和最大的那一条。这就叫「满足最优子结构」。

现在换一个「最优」的标准,要求路径经过的数字总和的绝对值最小。那么最优路径是下面这条:

<img src="https://pic3.zhimg.com/50/v2-e25d6e4d7cd17287c5f1f3708a872e5a_hd.jpg" data-caption="" data-size="normal" data-rawwidth="88" data-rawheight="77" class="content_image" width="88">

但是,对于最优路径上 -4 这个点,最优路径从起点到该点的部分,却不是从起点到该点的所有路径中,数字总和的绝对值最小的那一条,因为下面这条路径上数字总和的绝对值更小:

<img src="https://pic4.zhimg.com/50/v2-478bca87eccd0d812ecea954339e851d_hd.jpg" data-caption="" data-size="normal" data-rawwidth="88" data-rawheight="77" class="content_image" width="88">

这就叫「不满足最优子结构」。

常见的最优化问题,问法一般都是「最大」「最小」,不太会出现「绝对值最小」这种奇葩的最优化标准。而问「最大」「最小」的问题,一般都是满足最优子结构的。

你可能感兴趣的:(最优子结构)