区间动规平行四边形优化

Posted SummerSky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区间动规平行四边形优化相关的知识,希望对你有一定的参考价值。

平行四边形优化,是一种在一类区间动规中减少时间复杂度的方法。

有方程:m(i,j)=min(m(i,k)+m(k+1,j)+w(i,j)),s(i,j)为最优点取到值。

公式:如果有w(i, j)+w(i′, j′)≤w(i′, j)+w(i, j′) 那么我们称函数 w 满足四边形不等式。 

   就有s(i, j)≤s(i, j + 1)≤s(i + 1, j + 1)

证明思路如下:

我们先要证明:m(i,j)+m(i′,j′)≤m(i′,j)+m(i,j′),i≤i′< j≤ j′ 。

分部证明,每部都用数学归纳法证明,用前面一部作为初始条件:

  • i=i′或j= j′
  • i<i′= j< j′ 
  • i<i′< j< j′ 

然后再证:s(i, j)≤s(i, j + 1)≤s(i + 1, j + 1)

我们令mk (i, j)表示决策变量取k的时候目标函数的值。 

有上面证明的加上w(i, j)+m(i,k−1)+w(i, j+1)+m(i,k′−1) 。

构造出:mk (i, j)−mk′ (i, j)≤mk (i, j+1)−mk′ (i, j+1) 。

就能证明s(i, j +1)≥ s(i, j) 。另一边证明同理。

详细证明:http://files.cnblogs.com/files/SXia/DP平行四边形优化.pdf

以上是关于区间动规平行四边形优化的主要内容,如果未能解决你的问题,请参考以下文章

分享经典的动态规划问题

分享经典的动态规划问题

LeetCode 1034. 边界着色 / 689. 三个无重叠子数组的最大和(三个区间的滑动窗口,带回溯求具体值的动规) / 794. 有效的井字游戏

Luogu-P1018 乘积最大

题解 bzoj1055: [HAOI2008]玩具取名 (动态规划)

动态规划学习