四合院不等式

前言

本文翻自此处。有补充和省略。

ABA 严格优于 B 。 ( 类似)

注: quadrangle 又译 四合院

四合院不等式

对于花费函数 C(l,r) 当且仅当 C(a,c)+C(b,d)C(a,d)+C(b,c) 时称它满足四合院不等式。

opt(r) 为最靠右的最优的 C(l,r)l

称满足四合院性质为“四合院友好”。

Array Partition DP

考虑一种动规: 将数组 a 划分为 k 段(交为空集且并为全集)。

显然有 dp 方程如下。

dp[0][0]=0

dp[i][0]=dp[0][k]= (i,k1)

dp[i][k]=min1jidp[j1][k1]+C(j,i) (i,k1)

FACT1

C() 是四合院友好的,那么 opt() 不减。

证明:画图易得。

假设 opt() 单减,那么有 bd,ac

那么有 a+bc+d ,然而实际上 c+da+b 故矛盾。

FACT2

fk(l,r)=dp[l1][k1]+C(l,r) ,若 C() 四合院友好(简写为 QF ),那么 fk()QF

证明: 对于abcd fk(a,c)+fk(b,d)=dp[a1][k1]+dp[b1][k1]+C(a,c)+C(b,d) dp[a1][k1]+dp[b1][k1]+C(a,d)+C(b,c)=fk(a,d)+fk(b,c).

FACT3

optk(r) 为对于 kr 最优的 fk(l,r) 的决策点 l

若有 C() 满足 QF ,那么有 optk(r)optk+1(r)

证明:

对于 k 的一种划分 Idp[r][k]:[ak,dk],...,[a1,d1]

k+1 时有另一种划分 IIdp[r][k+1]:[bk+1,ck+1],...[b1,c1]

利用反证法,若 optk+1(r)<optk(r),即 a1>b1 ,同时 ak<bk

那么在中间一定有一个在 II 中的划分满足在 I 中的对于恰好包含它。

假设黄色是 I ,绿色的第一个是 II 。那么有绿色第一个由于绿色第二个。(因为绿色第一个是最优化分)

对于绿色的两个,同时合上 a,b 那一段,由四边形不等式得到蓝色的不等关系。

然而,这意味着黄色的不是一种最优划分,因此有矛盾。证完。

SUMMARY

综上,对于这种类型的 dp 我们有 optk1(r)optk(r)optk(r+1)

Array Merging DP:

对于类似石子合并的动态规划,我们有类似于以下的 dp 方程。

dp[l][l]=C(l,l) dp[l][r]=C(l,r)+minlm<r{dp[l][m]+dp[m+1][r]}

FACT4[1]

定义 opt(l,r) 为最靠右的决策最优点使得 dp[l][r]=C(l,r)+dp[l][m]+dp[m+1][r]

移项,并且设 fl(r)=dp[l][r]C(l,r)

通 FACT2 ,我们固定 f 的左端点,那么有 opt(l,r)opt(l,r+1)

FACT5

C()QF 那么 dp() 也是 QF

我们按长度从小到大递推。

首先长度为 1 的默认满足。

对于 dp[a][c]+dp[b][d]+C(a,c)+C(b,d)dp[a][d]+dp[b][c]+C(a,d)+C(b,c)

我们展开得到:

LEFT dp[a][c]+dp[c+1][c]+dp[b][d]+dp[d+1][d]+C(a,c)+C(b,d)

RHGT dp[a][d]+dp[d+1][d]+dp[b][c]+dp[c+1][c]+C(a,d)+C(b,c)

消去相同的项,那么变为:

LEFT dp[a][c]+dp[b][d]+C(a,c)+C(b,d)

RHGT dp[a][d]+dp[b][c]+C(a,d)+C(b,c)

对于 C() 项,我们有四边形不等式可以证明。

而对于带 “ ' ” 的项,我们有 FACT4[1] 得到决策点自低向高移动,那么 c<=d

因此 dp 项也得到了证明。

FACT4[2]

同理 FACT3 ,固定右端点,那么 opt(l1,r)opt(l,r)

SUMMARY

综上所述,对于这类动态规划问题,依然有

opt(l1,r)<=opt(l,r)<=opt(l,r+1)

 


如有错误欢迎指正。