首页 > 代码库 > 区间动规平行四边形优化

区间动规平行四边形优化

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

有方程: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

区间动规平行四边形优化