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

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

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python programming training(四):动态规划

發(fā)布時(shí)間:2025/4/5 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python programming training(四):动态规划 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

動(dòng)態(tài)規(guī)劃,說(shuō)白了類似于高中的數(shù)學(xué)歸納法

?

  • 遞推
  • 核心:窮舉。減少共有狀態(tài)或路徑的重復(fù)計(jì)算。

目錄

1. 概念理解

1.1 使用動(dòng)態(tài)規(guī)劃的條件

1.2 應(yīng)用動(dòng)態(tài)規(guī)劃的步驟

1.3 DP和貪心算法區(qū)別

1.4 DP和遞歸區(qū)別

1.4.1 斐波那契遞歸實(shí)現(xiàn)

1.4.2 斐波那契動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)

2. 分類

2.1 編號(hào)動(dòng)態(tài)規(guī)劃-->最大不下降子序列

2.2 劃分動(dòng)態(tài)規(guī)劃

2.3 數(shù)軸動(dòng)態(tài)規(guī)劃:0-1背包問(wèn)題

2.4 前綴動(dòng)態(tài)規(guī)劃:最長(zhǎng)公共子序列(LCS)

3. leedcode實(shí)戰(zhàn)案例

參考


??????????????

動(dòng)態(tài)規(guī)劃(Dynamic Programming, DP)是運(yùn)籌學(xué)的一個(gè)分支,是求解決策過(guò)程最優(yōu)化的過(guò)程。美 R.Bellman在研究多階段決策過(guò)程的優(yōu)化問(wèn)題時(shí),提出了著名的最優(yōu)化原理,從而創(chuàng)立了動(dòng)態(tài)規(guī)劃。

1. 概念理解

動(dòng)態(tài)規(guī)劃可以簡(jiǎn)單地理解為對(duì)傳統(tǒng)遞歸的一種優(yōu)化。Dynamic Programming不是編程,而是決策。只是這種決策不是一下就出來(lái)的,而是一步步(multistage)積累出來(lái)。換句話說(shuō)我們需要一個(gè)決策,但這個(gè)決策太大了,我們做不了,所以需要把他遞歸到我們可以簡(jiǎn)單做出決策的狀態(tài),然后從這些狀態(tài)開始,慢慢的“動(dòng)態(tài)地”演進(jìn)到最終的決策。

比如說(shuō)用最少的硬幣換零錢?

突然和你說(shuō)要換78分錢,你怎么就能迅速給出答案呢,你不能。但是如果是1分的話,你就可以,2分的話呢,就是在1分的基礎(chǔ)上再加1分,你也可以。于是你就慢慢地從1分開始一直算到78就有答案了。從另一個(gè)角度說(shuō),如果你用DP算出了怎么換78分,那如果我問(wèn)你76分怎么換,你也應(yīng)該有答案了。

所以,DP在實(shí)踐中很重要的就是遞推關(guān)系邊界條件


已知問(wèn)題規(guī)模為n的前提A,求解一個(gè)未知解B。(我們用An表示“問(wèn)題規(guī)模為n的已知條件”)

此時(shí),如果把問(wèn)題規(guī)模降到0,即已知A0,可以得到A0->B.

  • 如果從A0添加一個(gè)元素,得到A1的變化過(guò)程。即A0->A1; 進(jìn)而有A1->A2; A2->A3; …… ; Ai->Ai+1. 這就是嚴(yán)格的歸納推理,也就是我們經(jīng)常使用的數(shù)學(xué)歸納法;
  • 對(duì)于Ai+1,只需要它的上一個(gè)狀態(tài)Ai即可完成整個(gè)推理過(guò)程(而不需要更前序的狀態(tài))。我們將這一模型稱為馬爾科夫模型。對(duì)應(yīng)的推理過(guò)程叫做“貪心法”。

然而,Ai與Ai+1往往不是互為充要條件,隨著i的增加,有價(jià)值的前提信息越來(lái)越少,我們無(wú)法僅僅通過(guò)上一個(gè)狀態(tài)得到下一個(gè)狀態(tài),因此可以采用如下方案:

  • {A1->A2}; {A1, A2->A3}; {A1,A2,A3->A4};……; {A1,A2,...,Ai}->Ai+1. 這種方式就是第二數(shù)學(xué)歸納法。???????
  • 對(duì)于Ai+1需要前面的所有前序狀態(tài)才能完成推理過(guò)程。我們將這一模型稱為高階馬爾科夫模型。對(duì)應(yīng)的推理過(guò)程叫做“動(dòng)態(tài)規(guī)劃法”。

上述兩種狀態(tài)轉(zhuǎn)移圖如下圖所示:

1.1 使用動(dòng)態(tài)規(guī)劃的條件

該問(wèn)題是否能用動(dòng)態(tài)規(guī)劃解決的是可以分為多個(gè)相關(guān)子問(wèn)題,這些”小問(wèn)題“會(huì)不會(huì)被被重復(fù)調(diào)用。而不是一個(gè)“大問(wèn)題”能夠被拆解為一堆“小問(wèn)題”

舉個(gè)例子,有n個(gè)階梯,一個(gè)人每一步只能跨一個(gè)臺(tái)階或是兩個(gè)臺(tái)階,問(wèn)這個(gè)人一共有多少種走法?

首先對(duì)這個(gè)問(wèn)題進(jìn)行抽象,n個(gè)階梯,每個(gè)階梯都代表一個(gè)“位置”,就像是圖論中的一個(gè)“點(diǎn)”,然后這n個(gè)不同位置之間會(huì)有一些橋梁把它們連接起來(lái)。==>也可以寫成列表形式,或鄰接矩陣

idea:如果是暴力遍歷的話,從3到10的時(shí)候,你肯定會(huì)把5-10的可能路徑都算一遍,然后從4-10的時(shí)候,你又會(huì)把5-10的路徑算一遍,也就是重復(fù)計(jì)算了。

solve:創(chuàng)建一個(gè)數(shù)組a[],專門來(lái)存放位點(diǎn)x到10的所有可能路徑數(shù)。?

?a[5] = a[6] + a[7]

a[4] = a[5] + a[6] ? ? ? ? ? ? ? ? 數(shù)學(xué)歸納法?

.......

a[x] = a[x+1] + a[x+2]

我們發(fā)現(xiàn)在計(jì)算a[4]和a[5]的時(shí)候,都用到了a[6],也就是重復(fù)利用了結(jié)果。

==>換句話說(shuō),如果從6-10的最優(yōu)路徑確定了,那無(wú)論是從3、4、5開始的路徑,凡是再次到達(dá)6,那么從6往后的最優(yōu)路徑就不用再重復(fù)計(jì)算了。?

1.2 應(yīng)用動(dòng)態(tài)規(guī)劃的步驟

(1) 按順序從小到大計(jì)算。因?yàn)槿绻苯幼屇阌?jì)算f(11),你肯定一臉懵逼,但f(0), f(1)你卻能很快理解,發(fā)現(xiàn)規(guī)律

(2) 建立狀態(tài)轉(zhuǎn)移方程。求得f(n)表達(dá)式

(3) 緩存以往結(jié)果以復(fù)用。比如剛剛求得f(99),如果不將其緩存起來(lái),那么求f(100)時(shí),我們就必須重新從頭計(jì)算。?

1.3 DP和貪心算法區(qū)別

?貪心:如果第一步到H和I都可以,第二步到P和Q都可以,那我每一步只選最優(yōu),用貪心得到結(jié)果。<== 因?yàn)槟阋?jīng)歷的每個(gè)階段狀態(tài)跟決策無(wú)關(guān),即每個(gè)階段狀態(tài)相互獨(dú)立,互不影響。

但現(xiàn)實(shí)情況是,你第一步的選擇會(huì)影響后面的分支。?

比如你第一步選擇H或I,但是到了H后,你就只能選擇經(jīng)過(guò)P或Q到Z了,而如果到了I,你只能選擇R或S到Z。

這樣一來(lái),即便第一步到H或I你選擇了較好的一條路,也不保證最終結(jié)果最優(yōu)。?

==> 所以我們要把所有的路都嘗試一遍,才知道哪個(gè)最優(yōu)。-->窮舉

但我們只需要計(jì)算到每個(gè)共有狀態(tài)的位置,求各階段的最優(yōu),最后每階段選最優(yōu)組合貪心組合起來(lái)就行,因?yàn)楣灿袪顟B(tài)不影響決策,即不影響最終最優(yōu)路徑選擇。對(duì)A->H->Q->Z和A->I->Q->Z,Q->Z是共有狀態(tài)。Q->Z的最優(yōu)可減少每條經(jīng)過(guò)Q的最優(yōu)路徑的重復(fù)計(jì)算,當(dāng)然可能存在A->H->Z路徑比任何一條經(jīng)過(guò)Q的路徑更短,但我們說(shuō)的是減少經(jīng)過(guò)Q往后的路徑的重復(fù)計(jì)算。?

1.4 DP和遞歸區(qū)別

1.4.1 斐波那契遞歸實(shí)現(xiàn)

# 遞歸實(shí)現(xiàn) def fib_re(n):if n < 2:return nelse:return fib_re(n-1) + fib_re(n-2)# 遞歸實(shí)現(xiàn)fib(100)時(shí)間太長(zhǎng),我出去打個(gè)電話都沒運(yùn)算完,而動(dòng)態(tài)規(guī)劃fib(100)秒算if __name__ == '__main__':result = fib_re(100)print(result)

遞歸這種方式造成棧空間極大浪費(fèi)!!!?

其指數(shù)級(jí)時(shí)間復(fù)雜度跟不能用沒啥區(qū)別!!!出個(gè)打個(gè)20分鐘的電話都沒結(jié)束

1.4.2 斐波那契動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)

# 動(dòng)態(tài)規(guī)劃實(shí)現(xiàn) def fib_DP(n):results = list(range(n+1))for i in range(n+1):if i < 2:results[i] = ielse:results[i] = results[i-1] + results[i-2]return results[n]if __name__ == '__main__':result = fib_DP(100)print(result)

秒算?

2. 分類

2.1 編號(hào)動(dòng)態(tài)規(guī)劃-->最大不下降子序列

2.2 劃分動(dòng)態(tài)規(guī)劃

2.3 數(shù)軸動(dòng)態(tài)規(guī)劃:0-1背包問(wèn)題

2.4 前綴動(dòng)態(tài)規(guī)劃:最長(zhǎng)公共子序列(LCS)

3. leedcode實(shí)戰(zhàn)案例

舉個(gè)例子🌰,才是最好懂的學(xué)習(xí)方式

參考

[1] 知乎:如何理解動(dòng)態(tài)規(guī)劃?

[2] 博客園:【算法復(fù)習(xí)】動(dòng)態(tài)規(guī)劃

[3] CSDN:六大算法之三:動(dòng)態(tài)規(guī)劃???????

總結(jié)

以上是生活随笔為你收集整理的python programming training(四):动态规划的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 色噜噜狠狠狠综合曰曰曰 | aaaaa级少妇高潮大片免费看 | 野外一级片| www.久久.com| 黄色一级片免费 | 国产一区999 | www.射.com| 夜晚福利视频 | 亚洲综合图片网 | 国产精九九网站漫画 | 日本超碰 | 国产综合无码一区二区色蜜蜜 | 韩国毛片网站 | www.精品 | 97香蕉久久超级碰碰高清版 | 日本美女交配 | 九热精品 | 一二三区免费 | 国产精品自拍合集 | 日免费视频 | 网站色 | 在线观看wwww | 人人爽人人澡 | 在线视频精品一区 | 免费看a级黄色片 | 亚洲蜜桃精久久久久久久久久久久 | 国产又黄又大又粗视频 | 三级视频在线看 | 狠狠干中文字幕 | 亚洲国产精品久久AV | 99伊人网 | 少妇又紧又深又湿又爽视频 | 亚洲经典自拍 | www色视频 | 国产又粗又猛又爽又 | 日本丰满肉感bbwbbwbbw | 女人扒开屁股让男人桶 | 黑人玩弄人妻一区二区三区四 | 污污视频免费看 | 毛片手机在线 | 国产三级视频网站 | 国产成人自拍在线 | 另类小说av | 国产不卡在线观看视频 | 美女视频国产 | 成年人网站黄 | 欧美色图激情小说 | 先锋av资源网 | 樱花影院最新免费观看攻略 | 超碰96在线 | 亚洲成人欧美 | 色翁荡息又大又硬又粗又爽 | avtt在线| 免费看裸体网站视频 | 99免费国产 | 久热国产在线 | 国产91丝袜在线观看 | 亚洲精品免费在线观看 | 日韩专区一区二区三区 | 色一色成人网 | 色综合久久88色综合天天6 | 成人依依 | 爱草在线 | 精久久 | 久久久久久一 | av导航站| 国产一区自拍视频 | 激烈娇喘叫1v1高h糙汉 | 免费观看一区二区 | 国内偷拍一区二区 | 国产精品国产三级国产三级人妇 | 国产精品美女久久久网av | 久久99国产视频 | 超碰国产97 | 亚洲色图图片 | 少妇导航av| 15p亚洲| 超碰成人在线免费观看 | 国产三级三级看三级 | 成人在线视频观看 | 欧美性猛交xxxx乱大交hd | 超碰在线免费观看97 | 天天色综网 | 久久久一级片 | 新版红楼梦在线高清免费观看 | 国产精品夜夜夜爽阿娇 | 狠狠综合久久 | 四虎5151久久欧美毛片 | 免费国产a | 日韩中文免费 | 欧美日韩三区 | 亚洲天天综合 | 91精品播放 | 天美麻花果冻视频大全英文版 | 亚洲激情av | 自拍偷在线精品自拍偷无码专区 | 日韩三级国产精品 | 在线免费小电影 | 一级女性全黄久久生活片免费 |