算法介绍
1 D / 1 D 1D/1D 1D/1D动态规划
形如 d p [ i ] = m i n { d p [ j ] + w ( j , i ) } ( L i ≤ j ≤ R i ) dp[i]=min\{dp[j]+w(j,i)\} (L_i\leq j\leq R_i) dp[i]=min{ dp[j]+w(j,i)}(Li≤j≤Ri) 的 d p dp dp方程被称作 1 D / 1 D 1D/1D 1D/1D动态规划,其中 L i L_i Li和 R i R_i Ri单调递增, w ( j , i ) w(j,i) w(j,i)决定着优化策略选择。
( d p [ i ] = m a x { d p [ j ] + w ( j , i ) } dp[i]=max\{dp[j]+w(j,i)\} dp[i]=max{ dp[j]+w(j,i)}与 d p [ i ] = m i n { d p [ j ] + w ( j , i ) } dp[i]=min\{dp[j]+w(j,i)\} dp[i]=min{ dp[j]+w(j,i)}类似,本文不赘述)
决策单调性
设 j 0 [ i ] j_0[i] j0[i]表示 d p [ i ] dp[i] dp[i]转移的最优决策点,那么决策单调性可描述为 ∀ i ≤ j , j 0 [ i ] ≤ j 0 [ j ] \forall i\leq j,j_0[i]\leq j_0[j] ∀i≤j,j0[i]≤j0[j]。也就是说随着 i i i的增大,所找到的最优决策点是递增态(非严格递增)。
1 D / 1 D 1D/1D 1D/1D动态规划何时具有决策单调性
四边形不等式
表述1:
w ( x , y ) w(x,y) w(x,y)为定义在整数集合上的一个二元函数,若 ∀ a ≤ b ≤ c ≤ d , w ( a , c ) + w ( b , d ) ≤ w ( a , d ) + w ( b , c ) \forall a\leq b\leq c\leq d,w(a,c)+w(b,d)\leq w(a,d)+w(b,c) ∀a≤b≤c≤d,w(a,c)+w(b,d)≤w(a,d)+w(b,c),那么函数 w w w满足四边形不等式。
表述2:
w ( x , y ) w(x,y) w(x,y)为定义在整数集合上的一个二元函数,若 ∀ a < b , w ( a , b ) + w ( a + 1 , b + 1 ) ≤ w ( a + 1 , b ) + w ( a , b + 1 ) \forall a<b,w(a,b)+w(a+1,b+1)\leq w(a+1,b)+w(a,b+1) ∀a<b,w(a,b)+w(a+1,b+1)≤w(a+1,b)+w(a,b+1),那么函数 w w w满足四边形不等式。
定理:
1 D / 1 D 1D/1D 1D/1D动态规划具有决策单调性当且仅当函数 w w w满足四边形不等式 时成立。
一些瞪眼法
记 w ( j , i ) w(j,i) w(j,i)为 w j ( i ) w_j(i) wj(i)
令转移式满足决策单调性的函数 w w w一般满足以下规律:
- 决策函数 w j ( x ) w_j(x) wj(x)之间可以通过平移相互变换
- w j ( x ) w_j(x) wj(x)的导函数在定义域内单调
只要满足以上规律,那么两个决策函数 w j 1 ( x ) , w j 2 ( x ) w_{j_1}(x),w_{j_2}(x) wj1(x),wj