zoukankan      html  css  js  c++  java
  • 四边形不等式优化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_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满足四边形不等式

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

    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_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)$
      3. 如果$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)$
    2. 如果f满足四边形不等式,则f的决策s单调($s(i,j)le s(i,j+1)le s(i+1,j+1)$)

      证明:

      1. 如果$ige j$,则显然成立
      2. 如果$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         思路

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

    参考资料:

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

  • 相关阅读:
    Web API 强势入门指南
    毫秒必争,前端网页性能最佳实践
    Windbg Extension NetExt 使用指南 【3】 ---- 挖掘你想要的数据 Managed Heap
    Windbg Extension NetExt 使用指南 【2】 ---- NetExt 的基本命令介绍
    Windbg Extension NetExt 使用指南 【1】 ---- NetExt 介绍
    WCF : 修复 Security settings for this service require Windows Authentication but it is not enabled for the IIS application that hosts this service 问题
    透过WinDBG的视角看String
    Microsoft Azure Web Sites应用与实践【4】—— Microsoft Azure网站的“后门”
    企业IT管理员IE11升级指南【17】—— F12 开发者工具
    WCF : 如何将NetTcpBinding寄宿在IIS7上
  • 原文地址:https://www.cnblogs.com/bennettz/p/8962936.html
Copyright © 2011-2022 走看看