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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

动态规划做多了以后,总结的相关知识

發(fā)布時間:2023/12/13 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态规划做多了以后,总结的相关知识 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

動態(tài)規(guī)劃 Dynamic Programming DP

?

準則

動態(tài)規(guī)劃的本質,是對問題狀態(tài)的定義和狀態(tài)轉移方程的定義。

動態(tài)規(guī)劃是通過拆分問題,定義問題狀態(tài)和狀態(tài)之間的關系,使得問題能夠以遞推(或者說分治)的方式去解決。

如何拆分問題,才是動態(tài)規(guī)劃的核心。

而拆分問題,靠的就是狀態(tài)的定義和狀態(tài)轉移方程的定義。

?

以LIS為例,重新定義這個問題:

給定一個數(shù)列,長度為N,

設F_{k}為:以數(shù)列中第k項結尾的最長上升子序列的長度.

求F_{1}..F_{N} 中的最大值.

對于F_{k}來講,F_{1} .. F_{k-1}都是F_{k}的子問題:因為以第k項結尾的最長遞增子序列(下稱LIS),包含著以第1..k-1中某項結尾的LIS。

?

上述的新問題F_{k}也可以叫做狀態(tài),定義中的“F_{k}為數(shù)列中第k項結尾的LIS的長度”,就叫做對狀態(tài)的定義。

之所以把F_{k}做“狀態(tài)”而不是“問題” ,一是因為避免跟原問題中“問題”混淆,二是因為這個新問題是數(shù)學化定義的。

?

上述狀態(tài)定義好之后,狀態(tài)和狀態(tài)之間的關系式,就叫做狀態(tài)轉移方程。

比如,對于LIS問題,狀態(tài)轉移方程為:

以第k項結尾的LIS的長度是:保證第i項比第k項小的情況下,以第i項結尾的LIS長度加一的最大值,取遍i的所有值(i小于k)。

?

a. “緩存”,“重疊子問題”,“記憶化”

這三個名詞,都是在闡述遞推式求解的技巧。以Fibonacci數(shù)列為例,計算第100項的時候,需要計算第99項和98項;在計算第101項的時候,需要第100項和第99項,這時候你還需要重新計算第99項嗎?不需要,你只需要在第一次計算的時候把它記下來就可以了。上述的需要再次計算的“第99項”,就叫“重疊子問題”。如果沒有計算過,就按照遞推式計算,如果計算過,直接使用,就像“緩存”一樣,這種方法,叫做“記憶化”,這是遞推式求解的技巧。這種技巧,通俗的說叫“花費空間來節(jié)省時間”。都不是動態(tài)規(guī)劃的本質,不是動態(tài)規(guī)劃的核心。

b. “自上而下”,“自下而上”

“遞歸”:遞歸是遞推式求解的方法,連技巧都算不上。

怎么實現(xiàn)dp?答:兩種常用的方法。(僅僅涉及一般問題)?????

?1. 自下而上:通過正向的loop,求出所有狀態(tài)對應的值,然后找出max或者min。???????????? 優(yōu)缺點:速度慢,但是相對節(jié)省空間。?????

2. 自上而下:通過遞歸的方法,需要求解f(x),則必須知道f(y),要知道f(y),必須求f(z).??????????? 優(yōu)缺點:速度快,只用算需要的值,但是要調用堆棧,浪費空間。

?

c. "無后效性",“最優(yōu)子結構”

上述的狀態(tài)轉移方程中,等式右邊不會用到下標大于左邊i或者k的值,這是"無后效性"的通俗上的數(shù)學定義,符合這種定義的狀態(tài)定義,我們可以說它具有“最優(yōu)子結構”的性質,在動態(tài)規(guī)劃中我們要做的,就是找到這種“最優(yōu)子結構”。

每個階段的最優(yōu)狀態(tài)可以從之前某個階段的某個或某些狀態(tài)直接得到

這個性質叫做最優(yōu)子結構;

而不管之前這個狀態(tài)是如何得到的

這個性質叫做無后效性。

在對狀態(tài)和狀態(tài)轉移方程的定義過程中,滿足“最優(yōu)子結構”是一個隱含的條件(否則根本定義不出來)。

d. 關于復雜度的分析

時間復雜度O (狀態(tài)數(shù) * 每個狀態(tài)下所對應的決策數(shù))。

空間復雜度O (狀態(tài)數(shù))。

總結

以上是生活随笔為你收集整理的动态规划做多了以后,总结的相关知识的全部內容,希望文章能夠幫你解決所遇到的問題。

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