区间动规平行四边形优化
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) 。另一边证明同理。
以上是关于区间动规平行四边形优化的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 1034. 边界着色 / 689. 三个无重叠子数组的最大和(三个区间的滑动窗口,带回溯求具体值的动规) / 794. 有效的井字游戏