• 四边形不等式优化dp


    原文http://blog.csdn.net/u014800748/article/details/45750737

    今天第一次学习四边形不等式优化dp,感觉优化效果十分给力,不过数学味道比较浓重,证明比较复杂。因此这里删繁就简,给出关于四边形不等式优化必须要明白的地方,以后直接套用条件即可。

    四边形不等式优化条件

    在动态规划中,经常遇到形如下式的转台转移方程:

    m(i,j)=min{m(i,k-1),m(k,j)}+w(i,j)(i≤k≤j)(min也可以改为max)

    上述的m(i,j)表示区间[i,j]上的某个最优值。w(i,j)表示在转移时需要额外付出的代价。该方程的时间复杂度为O(N^3)。

    下面我们通过四边形不等式来优化上述方程,首先介绍什么是”区间包含的单调性“和”四边形不等式“

    (1)区间包含的单调性:如果对于i≤i'<j≤j',有w(i',j)≤w(i,j'),那么说明w具有区间包含的单调性。(可以形象理解为如果小区间包含于大区间中,那么小区间的w值不超过大区间的w值)

    (2)四边形不等式:如果对于i≤i'<j≤j',有w(i,j)+w(i',j')≤w(i',j)+w(i,j'),我们称函数w满足四边形不等式。(可以形象理解为两个交错区间的w的和不超过小区间与大区间的w的和)

    下面给出两个定理

    定理一:如果上述的w函数同时满足区间包含单调性和四边形不等式性质,那么函数m也满足四边形不等式性质。

    我们再定义s(i,j)表示m(i,j)取得最优值时对应的下标(即i≤k≤j时,k处的w值最大,则s(i,j)=k)。此时有如下定理

    定理二:假如m(i,j)满足四边形不等式,那么s(i,j)单调,即s(i,j)≤s(i,j+1)≤s(i+1,j+1)。

    好了,有了上述的两个定理后,我们发现如果w函数满足区间包含单调性和四边形不等式性质,那么有s(i,j-1)≤s(i,j)≤s(i+1,j)。即原来的状态转移方程可以改写为下式:

    m(i,j)=min{m(i,k-1),m(k,j)}+w(i,j)(s(i,j-1)≤k≤s(i+1,j))(min也可以改为max)

    由于这个状态转移方程枚举的是区间长度L=j-i,而s(i,j-1)和s(i+1,j)的长度为L-1,是之间已经计算过的,可以直接调用。不仅如此,区间的长度最多有n个,对于固定的长度L,不同的状态也有n个,故时间复杂度为O(N^2),而原来的时间复杂度为O(N^3),实现了优化!今后只需要根据方程的形式以及w函数是否满足两条性质即可考虑使用四边形不等式来优化了。

     
  • 相关阅读:
    【sklearn文本特征提取】词袋模型/稀疏表示/停用词/TF-IDF模型
    【新人赛】阿里云恶意程序检测 -- 实践记录10.13
    【sklearn朴素贝叶斯算法】高斯分布/多项式/伯努利贝叶斯算法以及代码实例
    【sklearn决策树算法】DecisionTreeClassifier(API)的使用以及决策树代码实例
    【笔记】机器学习
    【笔记】机器学习
    【笔记】机器学习
    【笔记】机器学习
    【笔记】机器学习
    java架构师学习路线-漫谈分布式服务框架
  • 原文地址:https://www.cnblogs.com/thmyl/p/7359291.html
Copyright © 2020-2023  润新知