四边形不等式优化DP

用法

如果有状态方程$f(i,j)=min(f(i,k)+f(k+1,j))+w(i,j)$

且w满足区间包含的单调性和四边形不等式,

则f(i,j)的决策s(i,j)单调,即$s(i,j)\le s(i,j+1)\le s(i+1,j+1)$

证明

首先介绍区间包含的单调性和四边形不等式

区间包含的单调性:

如果对于$\forall i_1\le i_2\le j_2\le j_1$(即$[i_2,j_2]\subset [i_1,j_1]$),都有$w(i_2,j_2)\le w(i_1,j_1)$
则称w具有区间包含的单调性

四边形不等式:

如果对于$\forall i_1\le i_2\le j_2\le j_1$,都有$w(i_1,j_2)+w(i_2,j_1)\le w(i_1,j_1)+w(i_2,j_2)$
(即将一个大区间+一个小区间分成两个相交的区间会更优)
则称w满足四边形不等式

下面是证明需要的两个定理

  1. 如果上述的w函数同时满足区间包含单调性和四边形不等式性质,那么f也满足四边形不等式性质

    证明:

    1. 如果$i_1=i_2$或$j_1=j_2$,则$f(i_1,j_2)+f(i_2,j_1)=f(i_1,j_1)+f(i_2,j_2)$,不等式显然成立
    2. 如果$i_1\lt i_2=j_2\lt j_1$,则只需证$f(i_1,i_2)+f(i_2,j_1)\le f(i_1,j_1)+f(j_2,j_2)$
      设k为$f(i_1,j_1)$的一个决策,即$f(i_1,j_1)=f(i_1,k)+f(k+1,j_1)+w(i_1,j_1)$
      一.如果$k\le i_2$
      则$f(i_1,i_2)+f(i_2,j_1)\le f(i_1,k)+f(k+1,i_2)+w(i_1,i_2)+f(i_2,j_1)$
      $f(i_1,i_2)+f(i_2,j_1)\le f(i_1,k)+f(k+1,i_2)+w(i_1,j_1)+f(i_2,j_1)$
      $f(i_1,i_2)+f(i_2,j_1)\le f(i_1,k)+f(k+1,j_1)+w(i_1,j_1)$
      $f(i_1,i_2)+f(i_2,j_1)\le f(i_1,j_1)$
      二.如果$k\le i_2$
      ​则$f(i_1,i_2)+f(i_2,j_1)\le f(i_1,i_2)+f(i_2,k)+f(k+1,j_1)+w(i_2,j_1)$
      $f(i_1,i_2)+f(i_2,j_1)\le f(i_1,i_2)+f(i_2,k)+f(k+1,j_1)+w(i_1,j_1)$
      $f(i_1,i_2)+f(i_2,j_1)\le f(i_1k)+f(k+1,j_1)+w(i_1,j_1)$
      $f(i_1,i_2)+f(i_2,j_1)\le f(i_1,j_1)$
    3. 如果$i_1\lt i_2\lt j_2\lt j_1$
      设x为$f(i_1,j_1)$的一个决策,y为$f(i_2,j_2)$的一个决策
      一.如果$x\le y$
      则$f(i_1,j_2)+f(i_2,j_1)\le f(i_1,x)+f(x+1,j_2)+w(i_1,j_2)+f(i_2,y)+f(y+1,j_1)+w(i_2,j_1)$
      $f(i_1,j_2)+f(i_2,j_1)\le f(i_1,x)+f(x+1,y)+f(y+1,j_2)+w(x+1,j_2)+w(i_1,j_2)+f(i_2,y)+f(y+1,j_1)+w(i_2,j_1)$
      $f(i_1,j_2)+f(i_2,j_1)\le f(i_1,x)+f(x+1,y)+f(y+1,j_2)+w(x+1,j_1)+w(i_1,j_2)+f(i_2,y)+f(y+1,j_1)+w(i_2,j_1)​$
      $f(i_1,j_2)+f(i_2,j_1)\le f(i_1,x)+f(x+1,j_1)+f(y+1,j_2)+w(i_1,j_2)+f(i_2,y)+w(i_2,j_1)$
      $f(i_1,j_2)+f(i_2,j_1)\le f(i_1,x)+f(x+1,j_1)+f(y+1,j_2)+w(i_2,j_2)+f(i_2,y)+w(i_1,j_1)$
      $f(i_1,j_2)+f(i_2,j_1)\le f(i_1,j_1)+f(i_2,j_2)$
      二.如果$x\gt y$
      $f(i_1,j_2)+f(i_2,j_1)\le f(i_1,y)+f(y+1,j_2)+w(i_1,j_2)+f(i_2,x)+f(x+1,j_1)+w(i_2,j_1)$
      $f(i_1,j_2)+f(i_2,j_1)\le f(i_1,y)+f(y+1,j_2)+w(i_1,j_2)+f(i_2,y)+f(y+1,x)+w(i_2,x)+f(x+1,j_1)+w(i_2,j_1)$
      $f(i_1,j_2)+f(i_2,j_1)\le f(i_1,y)+f(y+1,j_2)+w(i_1,j_2)+f(i_2,y)+f(y+1,x)+w(i_1,x)+f(x+1,j_1)+w(i_2,j_1)$
      $f(i_1,j_2)+f(i_2,j_1)\le f(i_1,x)+f(y+1,j_2)+w(i_1,j_2)+f(i_2,y)+f(x+1,j_1)+w(i_2,j_1)$
      $f(i_1,j_2)+f(i_2,j_1)\le f(i_1,x)+f(x+1,j_1)+f(y+1,j_2)+w(i_2,j_2)+f(i_2,y)+w(i_1,j_1)$
      $f(i_1,j_2)+f(i_2,j_1)\le f(i_1,j_1)+f(i_2,j_2)$
  2. 如果f满足四边形不等式,则f的决策s单调($s(i,j)\le s(i,j+1)\le s(i+1,j+1)$)

    证明:

    1. 如果$i\ge j$,则显然成立
    2. 如果$i\lt j$
      设$f_k(i,j)=f(i,k)+f(k+1,j)+w(i,j)$
      由于f 满足四边形不等式,因此对于任意的$k\le k^{'}$ ,有$f(k,j)+f(k^{'},j+1)\le f(k^{'},j)+f(k,j+1)$
      将等式两边同时加上$w(i,j)+f(i,k-1)+w(i,j+1)+f(i,k^{'}-1)$
      $f_k(i,j)+f_{k^{'}}(i,j+1)\le f_{k^{'}}(i,j)+f_k(i,j+1)$
      若$f_{k^{'}}(i,j)\le f_k(i,j)$则$f_{k^{'}}(i,j+1)\le f_k(i,j+1)$
      对于所有的$t\lt s(i,j)$,都有$f_t(i,j)\ge f_{s(i,j)}(i,j)$
      也就有$f_t(i,j+1)\ge f_{s(i,j)}(i,j+1)$
      所以$s(i,j)\le s(i,j+1)$,同理可证出$s(i,j)\le s(i+1,j)$
      所以$s(i,j)\le s(i,j+1)\le s(i+1,j+1)$

结合上面两个定理,于是就有如果w满足区间包含的单调性和四边形不等式,则s单调

复杂度证明

在没有优化之前,复杂度无疑是$O(n^3)$的

有了优化后,我们可以按照$j-i$从小到大枚举状态

于是在计算f(i,j)之前已经计算出了f(i,j-1)和f(i+1,j)

因为有$s(i,j-1)\le s(i,j)\le s(i+1,j)$

复杂度变为$\sum\limits_{i=1}^{n}\sum\limits_{j=i}^{n}s(i+1,j)-s(i,j-1)$

等于$\sum\limits_{i=1}^{n}s(i+1,n)-s(1,i-1)$(因为除了这些,其他的s都是一加一减被削掉了)

于是就是$O(n^2)$的了

一些应用及变形

 

POJ 1160         思路

 

HDU3480         思路

本文证明过程复杂且数量较多,如有错误欢迎指出

参考资料:

《动态规划加速原理之四边形不等式》——赵爽

 

posted @ 2018-04-27 16:05  Bennettz  阅读(160)  评论(0编辑  收藏  举报