用法
如果有状态方程$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满足四边形不等式
下面是证明需要的两个定理
- 如果上述的w函数同时满足区间包含单调性和四边形不等式性质,那么f也满足四边形不等式性质
证明:
- 如果$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)$,不等式显然成立
- 如果$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)$ - 如果$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)$ - 如果f满足四边形不等式,则f的决策s单调($s(i,j)\le s(i,j+1)\le s(i+1,j+1)$)
证明:
- 如果$i\ge j$,则显然成立
- 如果$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 思路
本文证明过程复杂且数量较多,如有错误欢迎指出
参考资料:
《动态规划加速原理之四边形不等式》——赵爽