日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

DP优化

發(fā)布時(shí)間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DP优化 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

通常來(lái)說(shuō)從決策數(shù)量上來(lái)優(yōu)化Dp有以下幾種方法:

斜率優(yōu)化

用于優(yōu)化帶多項(xiàng)式的乘積項(xiàng)的狀態(tài)轉(zhuǎn)移方程,即f[i]=min/max{f[j]+(x[i]-x[j])^2} 這樣的,

我們把他展開(kāi)可以得到f[i]=min/max{f[j]+x[i]^2+x[j]^2-2*x[i]*x[j]}?

根據(jù)動(dòng)規(guī)方程狀態(tài)i從狀態(tài)j轉(zhuǎn)化而來(lái),

我們可以化成類(lèi)似f[i]=(f[j]+…)+(-i*f[i-1]*f[j])+(i+…)的形式?

其中藍(lán)色部分只與j有關(guān)紅色部分與i,j有關(guān)綠色部分只與i或常數(shù)有關(guān)?

我們可以固定i,故變形為?

f[i]-i-…=(f[j]+…)+(-i*f[i-1]*f[j])?

考慮幾何意義,?

藍(lán)色部分為y紅色部分中的i部分為導(dǎo)數(shù)k,紅色部分中j部分為x綠色部分只是常數(shù),在幾何意義上只是截距,與單調(diào)性無(wú)關(guān),可以設(shè)為B?

故得y=kx-B?

這樣就可以利用線(xiàn)性規(guī)劃來(lái)做了,

容易發(fā)現(xiàn)無(wú)論一次函數(shù)的斜率怎么變,截距最小時(shí)取的點(diǎn)一定是那所有點(diǎn)求出的下凸殼上的某一個(gè)點(diǎn)。 因此我們只要每次在上邊尋找最優(yōu)解,然后加點(diǎn)時(shí)維護(hù)這個(gè)下凸殼即可。 根據(jù)斜率和(x,y)的單調(diào)性不同有不同的維護(hù)方法。

四邊形不等式優(yōu)化

下面我們通過(guò)四邊形不等式來(lái)優(yōu)化上述方程,首先介紹什么是”區(qū)間包含的單調(diào)性“和”四邊形不等式“

(1)區(qū)間包含的單調(diào)性:如果對(duì)于i≤i'<j≤j',有w(i',j)≤w(i,j'),那么說(shuō)明w具有區(qū)間包含的單調(diào)性。(可以形象理解為如果小區(qū)間包含于大區(qū)間中,那么小區(qū)間的w值不超過(guò)大區(qū)間的w值)

(2)四邊形不等式:如果對(duì)于i≤i'<j≤j',有w(i,j)+w(i',j')≤w(i',j)+w(i,j'),我們稱(chēng)函數(shù)w滿(mǎn)足四邊形不等式。(可以形象理解為兩個(gè)交錯(cuò)區(qū)間的w的和不超過(guò)小區(qū)間與大區(qū)間的w的和)

下面給出兩個(gè)定理

定理一:如果上述的w函數(shù)同時(shí)滿(mǎn)足區(qū)間包含單調(diào)性和四邊形不等式性質(zhì),那么函數(shù)m也滿(mǎn)足四邊形不等式性質(zhì)。

?

我們?cè)俣xs(i,j)表示m(i,j)取得最優(yōu)值時(shí)對(duì)應(yīng)的下標(biāo)(即i≤k≤j時(shí),k處的w值最大,則s(i,j)=k)。此時(shí)有如下定理

定理二:假如m(i,j)滿(mǎn)足四邊形不等式,那么s(i,j)單調(diào),即s(i,j)≤s(i,j+1)≤s(i+1,j+1)。

?

好了,有了上述的兩個(gè)定理后,我們發(fā)現(xiàn)如果w函數(shù)滿(mǎn)足區(qū)間包含單調(diào)性和四邊形不等式性質(zhì),那么有s(i,j-1)≤s(i,j)≤s(i+1,j)。即原來(lái)的狀態(tài)轉(zhuǎn)移方程可以改寫(xiě)為下式:

m(i,j)=min{m(i,k-1),m(k,j)}+w(i,j)(s(i,j-1)≤k≤s(i+1,j))(min也可以改為max)

由于這個(gè)狀態(tài)轉(zhuǎn)移方程枚舉的是區(qū)間長(zhǎng)度L=j-i,而s(i,j-1)和s(i+1,j)的長(zhǎng)度為L(zhǎng)-1,是之間已經(jīng)計(jì)算過(guò)的,可以直接調(diào)用。不僅如此,區(qū)間的長(zhǎng)度最多有n個(gè),對(duì)于固定的長(zhǎng)度L,不同的狀態(tài)也有n個(gè),故時(shí)間復(fù)雜度為O(N^2),而原來(lái)的時(shí)間復(fù)雜度為O(N^3),實(shí)現(xiàn)了優(yōu)化!今后只需要根據(jù)方程的形式以及w函數(shù)是否滿(mǎn)足兩條性質(zhì)即可考慮使用四邊形不等式來(lái)優(yōu)化了。

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/2020pengxiyue/p/9348530.html

總結(jié)

以上是生活随笔為你收集整理的DP优化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。