CLRS 15 3動態規劃原理

2021-07-05 11:02:11 字數 3247 閱讀 6935

15.3-1

執行recursive-matrix-chain更高效一點。

第15.2節指出列舉所有可能的括號化方案是 ω(

4n/n

3/2)

。下面證明recursive-matrix-chain是 o(

n3n−

1)。

書中的本節證明了: t(

n)=o

(1)+

∑k=1

n−1(

t(k)

+t(n

−k)+

o(1)

) 我們證明存在

c 使得 t(

n)≤c

+∑k=

1n−1

(t(k

)+t(

n−k)

+c)=

2∑i=

1n−1

t(i)

+cn使用替換法證明 t(

n)=o

(n3n

−1) 。 t(

1)=1

≤c,對 n≥

2 有: t(

n)≤2

∑i=1

n−1t

(i)+

cn≤2

∑i=1

n−1c

i3i−

1+cn

≤c⋅(

2∑i=

1n−1

i3i−

1+n)

=c⋅(

2⋅(n

3n−1

3−1+

1−3n

(3−1

)2)+

n)=c

n3n−

1+c⋅

(1−3

n2+n

)=cn

3n−1

+c2(

2n+1

−3n)

≤cn3

n−1

所以recursive-matrix-chain更高效。

注釋:f(x

)=∑i

=1n−

1xi,

對f(x

)求導得

到:∑i

=1n−

1ixi

−1=n

xn−1

x−1+

1−xn

(x−1

)215.3-2

遞迴樹略,無效的原因是沒有重疊子問題。

15.3-3

具有最優子結構性質。假設 ai

j 是最優解,一定存在乙個

k 使 ai

k,ak

+1,j

都是最大化。用剪下-貼上方法可以證明。

15.3-4

舉例為 p0

=100,p

1=100,p2

=5,p

3=10,

p4=1

分別表示 a1

,a2,

a3,a

4 按教授的意思選擇 k=

2 有 (a

1a2)

(a3a

4),總共 p0

⋅p1⋅

p2+p

2⋅p3

⋅p4+

p0⋅p

2⋅p4

=51000

實際存在 a1

((a2

a3)a

4),總共 p0

⋅p1⋅

p4+p

1⋅p2

⋅p3+

p1⋅p

2⋅p4

=15500

15.3-5

給出乙個長度為 4 的**和限制表。

length i12

34price pi

1520

3336

limit li21

11若沒有限制表,長度為 4 的切割方案是 4 個長度為 1 的總價是 60。

現在只能選擇長度分別是 1,1,2 總價是 50 的切割方案,原因是在長度為 2 的子問題尋找最優解時不能繼續切割成長度為 1,1 的方案。

15.3-6

首先假設在一次兌換中不能重複兌換某一種貨幣,比如兌換序列為 i→

j→i→

j...

。這個假設的原因是若 ri

j>1/

rji ,這樣銀行就要倒閉了。

當對任意

k 都有 ck

=0時有最優子結構性質。假設從貨幣

a 兌換到貨幣

b存在乙個兌換序列 k1

,k2.

..km

,其中 k1

=a,k

m=b ,使得 rk

1k2r

k2k3

...r

km−1

km最大。

利用剪下-貼上方法證明,即假設最優兌換序列是 ki

,ki+

1...

kj,又存在另乙個兌換序列 ki

,k′i

+1..

.k′j

−1,k

j 使得rk

ik′i

+1rk

′i+1

k′i+

2...

rk′j

−1kj

>rk

iki+

1rki

+1ki

+2..

.rkj

−1kj

,我們用ki

,k′i

+1..

.k′j

−1,k

j 序列代替 ki

,ki+

1...

kj得到更優解。 當 c

k 為任意值時,此時不一定具有最優子結構,舉個例子,從貨幣 1 兌換到 貨幣 4,匯率分別是 r12

=2,r

13=2.5,r14

=6,r

23=1.5,r24

=3,r

34=3 ,其中 ri

i=1,

rji=

1/ri

j 。令 c1

=2,c

2=c3

=3。所以兌換貨幣 1 到貨幣 4 有 5 種兌換方法,最優解是序列 1,

2,3,

4 ,最後 1 個單位的貨幣 1 兌換成 6 個單位的貨幣 4。

然後檢查子結構,從貨幣 1 兌換到貨幣 3,最優兌換序列就是 1,

3 。這個兌換序列並不是 1,

2,3 。

動態規劃原理

子問題與原問題具有完全相同的結構 是否可以用結束狀態確定 狀態?不一定具有無後效性?在每個子問題的求解中都利用了它前面的子問題的最優化結果,依次進行,最後乙個子問題所得到的最 優解就是整個問題的最優解 最優化原理 區域性最優解導致全域性最優解 無後效性 dp 首先,請注意無後效性一般是針對問題的分析...

動態規劃原理

運用動態規劃求解最優化問題第一步 若乙個問題的最優解中包含其子問題的最優解,則此問題具有最優解的結構性質。因為使用子問題的最優解構造原問題最優解,所以我們必須確保考察了最優解中用到的所有子問題。如何發掘最優子結構性質 證明問題最優解的第乙個組成部分是做出乙個選擇。例如切割鋼條的第一次切割位置。做出該...

動態規劃原理

動態規劃方法通常用來求解最優化問題 最優子結構 如果乙個問題的最優解包含其子問題的最優解,那麼就稱此問題具有最優子結構性質。某個問題是否適用動態規劃方法,觀察其是否具有最優子結構性質是乙個好的線索 具有最優子結構性質也可能意味著適用貪心策略 實際上,發掘最優子結構性質遵循如下的通用模式 不同問題的最...