用法
如果有状态方程$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_1le i_2le j_2le 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_1le i_2le j_2le 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_1lt i_2=j_2lt 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)$
一.如果$kle 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)$
二.如果$kle 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_1lt i_2lt j_2lt j_1$
设x为$f(i_1,j_1)$的一个决策,y为$f(i_2,j_2)$的一个决策
一.如果$xle 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)$
二.如果$xgt 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)$)
证明:
- 如果$ige j$,则显然成立
- 如果$ilt j$
设$f_k(i,j)=f(i,k)+f(k+1,j)+w(i,j)$
由于f 满足四边形不等式,因此对于任意的$kle 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)$
对于所有的$tlt 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)$
复杂度变为$sumlimits_{i=1}^{n}sumlimits_{j=i}^{n}s(i+1,j)-s(i,j-1)$
等于$sumlimits_{i=1}^{n}s(i+1,n)-s(1,i-1)$(因为除了这些,其他的s都是一加一减被削掉了)
于是就是$O(n^2)$的了
一些应用及变形
POJ 1160 思路
HDU3480 思路
本文证明过程复杂且数量较多,如有错误欢迎指出
参考资料:
《动态规划加速原理之四边形不等式》——赵爽