動態規劃專題小結 四邊形不等式優化

2021-07-02 14:56:09 字數 809 閱讀 7573

在動態規劃中,經常遇到形如下式的轉台轉移方程:

m(i,j)=min+w(i,j)(i≤k≤j)(min也可以改為max)

上述的m(i,j)表示區間[i,j]上的某個最優值。w(i,j)表示在轉移時需要額外付出的代價。該方程的時間複雜度為o(n^3)。

下面我們通過四邊形不等式來優化上述方程,首先介紹什麼是」區間包含的單調性「和」四邊形不等式「

(1)區間包含的單調性:如果對於i≤i'(2)四邊形不等式:如果對於i≤i'下面給出兩個定理

定理一:如果上述的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+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函式是否滿足兩條性質即可考慮使用四邊形不等式來優化了。



四邊形不等式

總結一下最近幾天對dp優化中的四邊形不等式的學習。證明什麼的似懂非懂,我還是太年輕了。第一種,n 2 nlogn 例題 由於許可權問題 不公開題面 就是1個體積均為1 300,100000個物品,做乙個100000的揹包。發現體積最多只有 300 種,分開做。對於同種體積的物品,顯然按照價值從大到小...

四邊形不等式

若有函式 a i,j 令 i,若有 a i j a i 1 j 1 le a i j 1 a i 1 j 則我們稱函式 a 滿足四邊形不等式。若我們在 dp 過程中會用到類似如下形式的方程 dp i j min dp k j or dp i k dp k 1 j w i j 那麼,只要代價函式 w ...

四邊形不等式優化動態規劃學習

學習了四邊形不等式,這類題的的方程通常是這樣的 f i,j opt f i,k 1 f k,j cost i,j 我一般理解為區間動態規劃 應用條件是 第一,其中的cost i,j 是存在單調性的,即當區間 i,j 包含區間 i j 時有cost i,j cost i j 第二,設i i j j 有...