四边形不等式:
任意 a≤b≤c≤da\le b\le c\le da≤b≤c≤d,有 w(a,d)+w(b,c)≥w(a,c)+w(b,d)w(a,d)+w(b,c)\ge w(a,c)+w(b,d)w(a,d)+w(b,c)≥w(a,c)+w(b,d)
一维 DPDPDP 的优化
对于转移方程 fi=min(fj+val(j,i))f_i=min(f_j+val(j,i))fi=min(fj+val(j,i))
令 pip_ipi 为 fif_ifi 的最优决策点
若 valvalval 满足四边形不等式,则 fff 具有决策单调性
证明:
首先 pip_ipi 是最优的
fpi+val(pi,i)≤fj+val(j,i)...1f_{p_i}+val(p_i,i)\le f_j+val(j,i)...1fpi+val(pi,i)≤fj+val(j,i)...1
推广到 i+1i+1i+1
想要证:fpi+val(pi,i+1)≤fj+val(j,i+1)f_{p_i}+val(p_i,i+1)\le f_j+val(j,i+1)fpi+val(pi,i+1)≤fj+val(j,i+1)
考虑到
val(j,i+1)+val(pi,i)≥val(j,i)+val(pi,i+1)val(j,i+1)+val(p_i,i)\ge val(j,i)+val(p_i,i+1)val(j,i+1)+val(pi,i)≥val(j,i)+val(pi,i+1)
即
val(pi,i+1)−val(pi,i)≤val(j,i+1)−val(j,i)val(p_i,i+1)-val(p_i,i)\le val(j,i+1)-val(j,i)val(pi,i+1)−val(pi,i)≤val(j,i+1)−val(j,i)
加到 111 式
有 fpi+val(pi,i+1)≤fj+val(j,i+1)f_{p_i}+val(p_i,i+1)\le f_j+val(j,i+1)fpi+val(pi,i+1)≤fj+val(j,i+1)
如何维护?
考虑一个 iii 能作为哪些决策点的最优决策点
我们可以维护一个 [1,n][1,n][1,n] 的数组,存每一个点的最优决策点
根据决策单调性,我们最后一定能找到一个 pospospos,使得 pospospos 后面的决策用iii 更优
考虑用一个三元组 (i,l,r)(i,l,r)(i,l,r) 表示 [l,r][l,r][l,r] 都以 iii 为最优决策
每次找到 pospospos 之后,插入 (i,pos,n)(i,pos,n)(i,pos,n) 即可
如何找到 pospospos
更队尾的三元组的 lll 比较,如果更优,显然这个三元组没有用
如果不是更优,那么显然转折点在 (l,r](l,r](l,r] 内,二分这个位置即可
然后队头动态弹掉 [1,i−1][1,i-1][1,i−1] 的决策,取出来的队头就是 iii 的决策点了
复杂度 O(nlog(n))O(nlog(n))O(nlog(n))
二维 DPDPDP 的优化
性质1:对于方程 fl,r=fl,p+fp+1,r+w(i,j)f_{l,r}=f_{l,p}+f_{p+1,r}+w(i,j)fl,r=fl,p+fp+1,r+w(i,j)
若 www 满足四边形不等式且任意 a≤b≤c≤da\le b\le c\le da≤b≤c≤d,w(a,d)≥w(b,c)w(a,d)\ge w(b,c)w(a,d)≥w(b,c)
那么 fff 也满足四边形不等式
证明:
要证 对于任意 i,j(i<j)i,j(i<j)i,j(i<j),f[i][j]+f[i+1][j+1]≤f[i+1][j]+f[i][j+1]f[i][j]+f[i+1][j+1]\le f[i+1][j]+f[i][j+1]f[i][j]+f[i+1][j+1]≤f[i+1][j]+f[i][j+1]
考虑归纳证明:
令f[i+1][j]f[i+1][j]f[i+1][j]取得最优值的时候 k=xk=xk=x
令f[i][j+1]f[i][j+1]f[i][j+1]取得最优值的时候 k=yk=yk=y
令 x≤yx \le yx≤y
将 k=x,k=yk=x,k=yk=x,k=y代入
f[i][x]+f[x+1][j]+w(i,j)+f[i+1][y]+f[y+1][j+1]+w(i+1,j+1)f[i][x]+f[x+1][j]+w(i,j)+f[i+1][y]+f[y+1][j+1]+w(i+1,j+1)f[i][x]+f[x+1][j]+w(i,j)+f[i+1][y]+f[y+1][j+1]+w(i+1,j+1)
考虑到 w(i,j)+w(i+1,j+1)≤w(i,j+1)+w(i+1,j)w(i,j)+w(i+1,j+1)\le w(i,j+1)+w(i+1,j)w(i,j)+w(i+1,j+1)≤w(i,j+1)+w(i+1,j)
继续替换右边
f[i+1][x]+f[x+1][j]+w(i+1,j)+f[i][y]+f[y+1][j+1]+w(i,j+1)f[i+1][x]+f[x+1][j]+w(i+1,j)+f[i][y]+f[y+1][j+1]+w(i,j+1)f[i+1][x]+f[x+1][j]+w(i+1,j)+f[i][y]+f[y+1][j+1]+w(i,j+1)
又由归纳假设
f[i][x]+f[i+1][y]≤f[i+1][x]+f[i][y]f[i][x]+f[i+1][y]\le f[i+1][x]+f[i][y]f[i][x]+f[i+1][y]≤f[i+1][x]+f[i][y]
且 w(i,j)+w(i+1,j+1)≤w(i+1,j)+w(i,j+1)w(i,j)+w(i+1,j+1)\le w(i+1,j)+w(i,j+1)w(i,j)+w(i+1,j+1)≤w(i+1,j)+w(i,j+1)
所以 f[i][j]+f[i+1][j+1]≤f[i+1][j]+f[i][j+1]f[i][j]+f[i+1][j+1]\le f[i+1][j]+f[i][j+1]f[i][j]+f[i+1][j+1]≤f[i+1][j]+f[i][j+1]
对于 x>yx>yx>y 的情况同理
性质 2:
记 p[i][j]p[i][j]p[i][j] 为 [i,j][i,j][i,j] 的决策点
若 fff 满足四边形不等式,则 p[i][j−1]≤p[i][j]≤p[i+1][j]p[i][j-1]\le p[i][j] \le p[i+1][j]p[i][j−1]≤p[i][j]≤p[i+1][j]
对于一个决策点 k∈(i,p]k\in(i,p]k∈(i,p]
有 f[i][p]+f[i+1][k]≥f[i][k]+f[i+1][p]f[i][p]+f[i+1][k]\ge f[i][k]+f[i+1][p]f[i][p]+f[i+1][k]≥f[i][k]+f[i+1][p]
即 f[i+1][k]−f[i+1][p]≥f[i][k]−f[i][p]f[i+1][k]-f[i+1][p]\ge f[i][k]-f[i][p]f[i+1][k]−f[i+1][p]≥f[i][k]−f[i][p]
由 ppp 是最优决策点,又有
f[i][k]+f[k+1][j]≥f[i][p]+f[p+1][j]f[i][k]+f[k+1][j]\ge f[i][p]+f[p+1][j]f[i][k]+f[k+1][j]≥f[i][p]+f[p+1][j]
想要推广到 i+1i+1i+1
有 f[i+1][k]+f[k+1][j]−(f[i+1][p]+f[p+1][j])=(f[i+1][k]−f[i+1][p])+(f[k+1][j]−f[p+1][j])≥f[i][k]−f[i][p]+f[k+1][j]−f[p+1][j]≥0f[i+1][k]+f[k+1][j]-(f[i+1][p]+f[p+1][j])=(f[i+1][k]-f[i+1][p])+(f[k+1][j]-f[p+1][j])\ge f[i][k]-f[i][p]+f[k+1][j]-f[p+1][j]\ge 0f[i+1][k]+f[k+1][j]−(f[i+1][p]+f[p+1][j])=(f[i+1][k]−f[i+1][p])+(f[k+1][j]−f[p+1][j])≥f[i][k]−f[i][p]+f[k+1][j]−f[p+1][j]≥0
所以对于f[i+1][j]f[i+1][j]f[i+1][j],ppp 比任意 k≤p[i][j]k\le p[i][j]k≤p[i][j] 优,因此 p[i+1][j]≥p[i][j]p[i+1][j]\ge p[i][j]p[i+1][j]≥p[i][j]
另一边同理
所以 p[i][j−1]≤p[i][j]≤p[i+1][j]p[i][j-1]\le p[i][j] \le p[i+1][j]p[i][j−1]≤p[i][j]≤p[i+1][j]
对每一个贡献求和 ∑p[i+1][j]−p[i][j−1]=O(n2)\sum p[i+1][j]-p[i][j-1]=O(n^2)∑p[i+1][j]−p[i][j−1]=O(n2)
本文深入探讨了四边形不等式在动态规划(DP)中的应用,包括一维DP和二维DP的优化策略。通过证明,阐述了四边形不等式如何帮助确定决策点的单调性,从而优化DP过程。文章详细解释了决策点的更新和维护方法,以及如何利用决策单调性降低计算复杂度。
613

被折叠的 条评论
为什么被折叠?



