美文网首页动态规划动态规划
【DP优化】四边形不等式&决策单调

【DP优化】四边形不等式&决策单调

作者: jenye_ | 来源:发表于2018-10-20 11:14 被阅读0次

    参考

    参考博文:四边形不等式优化讲解(详解)作者:NOIAu 来源:CSDN(有证明过程)
    参考书籍:《算法以数与信息学竞赛》P152


    引入

    对于DP问题常见的状态转移方程:

    dp[i][j]=min{dp[i][k]+dp[k+1][j]}+w[i][j]} (i<k<j)

    此方程的时间复杂度为O(n^3),这种复杂度基本是不可接受的(数据量超过100就会TLE),而通过四边形不等式决策单调就可以把复杂度降为O(n^2)


    目标

    对于原状态转移方程,对k值的遍历复杂度为n,而四边形不等式&决策单调优化的就是k值的遍历过程


    四边形不等式&决策单调

    • 如果函数w满足:

      w[a,c] + w[b,c] \leq w[b,c]+w[a,d](a<b<c<d)

      w满足四边形不等式(简称w为凸)

    • 如果函数w满足:

      w[i,j] \leq w[i'][j'] ([i,j]\subseteq[i',j'])

      则说w关于区间包含关系单调

    基于这两个定义可以证明:

    • 定理1:如果w同时满足四边形不等式和区间单调关系,则dp也满足四边形不等式。
    • 定理2:定理1条件满足时让dp[i,j]取最小的k值为K[i,j],则K[i,j-1] \leq K[i,j] \leq K[i+1,j]
    • 定理3:w为凸当且仅当 w[i,j] + w[i+1,j+1] \leq w[i+1,j] + w[i,j+1]

    实际上 w[i,j] + w[i+1,j+1] \leq w[i+1,j] + w[i,j+1],只需要证明:
    f(j) = w(i+1,j) - w(i,j)关于 j 递减,或f(i) = w(i,j+1)-w(i,j)关于i递减。

    定理3的是用于验证w是否为凸的。

    我们可以发现,如果满足定理1,那么通过定理2,决策范围变为了K[i,j-1] 到 K[i+1,j]。


    需要注意的地方

    我们取K[i,j]时,需要K[i,j-1] 和 K[i+1,j]已经计算完成,那么遍历的顺序需要是,i从大到小,j从小到大。

    实际上可以先用O(n^3)的方法打表,看看决策是否单调,或者满足凸和区间单调。


    时间复杂度的证明:

    动态规划加速原理之四边形不等式 作者:赵爽 来源:百度文库
    看了很多的博文,以及上方的证明过程,还是不明白O(n^2)的计算方法。留个坑


    练习题:

    理论都是虚的,实践才是王道。
    (参考博文里有)


    相关文章

      网友评论

        本文标题:【DP优化】四边形不等式&决策单调

        本文链接:https://www.haomeiwen.com/subject/dfipzftx.html