四边形不等式定义

定义1: 四边形不等式
设w(i,j)是整数集合上的二元函数.如果对于定义域上的任意整数a,b,c,d,其中a⩽b⩽c⩽d,都满足w(a,b)+w(c,d)⩽w(a,c)+w(b,d),则称w(i,j)满足四边形不等式.
交叉和小于包含和.
四边形不等式准确的说应该叫做反四边形不等式,因为它的公式与下图所示的公式正好相反

f(i,j)=min{f(i,k)+f(k+1,j)+w(i,j)}(1⩽i⩽k<j⩽n)(a)
定理2: 一维四边形不等式具有决策单调性
在状态转移方程f(i)=min{f(j)+w(j,i)}(0⩽j<i)中,如果w(i,j)满足四边形不等式,则f(i)具有.
证明:
为了方便,设f(i)的最优决策点为p,那么根据最优决策点的定义,对于∀i∈[1,N],∀j∈[0,p−1],有:
f(p)+w(p,i)⩽f(j)+w(j,i)(1)设i′∈[i+1,N],因为w(j,i)满足四边形不等式.

w(j,i′)+w(p,i)⩾w(j,i)+w(p,i′))移项:
w(p,i′))−w(p,i)⩽w(j,i)−w(j,i′)(2)(1)+(2)得:
f(p)+w(p,i′)⩽f(j)+w(j,i)(3)满足决策单调性的定义,证明完毕.
定理3: 二维决策单调性
在满足四边形不等式的条件下,状态转换方程(a)中,记P[i,j]表示f(i,j)取最小值的k值,即f(i,j)的最优决策点,则有对于任意的i<j,有:
P[i,j−1]⩽P[i,j]⩽P[i+1,j](b)
解释: P[i,j−1]⩽P[i,j]类似一维决策单调性,固定i不变,j增加1,则新区间下最优决策点右移.或者说,设P[i,j−1]=p,则在对于f(i,j)来说区间[i,p−1]的值不可能成为最优决策点.

解释: P[i,j]⩽P[i+1,j],固定j不变,i减少1,则新区间下最优决策点左移.或者说,设P[i+1,j]=p,则在对于f(i,j)来说区间[p+1,j]的值不可能成为最优决策点.

证明:
证明完毕.
总结: 本质是就是四边形不等式一维决策单调性在两个方向上的推广.
例如石子合并问题
一般的代码
使用"四边形不等式优化"后的代码
复杂度证明
朴素的石子合并时间为O(n3),而使用"四边形不等式优化"后的时间复杂度为O(n2),即O(n2)的多项式时间复杂度.
石子合并完整代码
见 的解析
题目列表
参考