国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

DP算法(Dynamic Programming,俗稱動(dòng)態(tài)規(guī)劃)是最經(jīng)典算法之一

2019-11-08 18:22:11
字體:
供稿:網(wǎng)友

DP算法(Dynamic PRogramming,俗稱動(dòng)態(tài)規(guī)劃)是最經(jīng)典算法之一.本筆記以耳熟能詳?shù)臄?shù)塔問題為引子,深入討論01背包的解決方法.

  首先,如下圖所示,要求從頂層走到底層,若每一步只能走到相鄰的結(jié)點(diǎn),則經(jīng)過的結(jié)點(diǎn)的數(shù)字之和最大是多少?

  這個(gè)問題,對(duì)于任意一個(gè)結(jié)點(diǎn),直接選擇數(shù)字大的子結(jié)點(diǎn)顯然是不行的.以9為例,如果選擇15,當(dāng)前和24>21,但是15的兩個(gè)子結(jié)點(diǎn)太小,24+6+18<21+10+18.由此可見,這樣求出每階段的部分最優(yōu)解并不是全局最優(yōu)解.另外,如果用蠻力算法,每條路徑都遍歷一次,那么層數(shù)為n時(shí),路徑總數(shù)呈指數(shù)級(jí)增長(zhǎng):

  顯然這種方法的計(jì)算量太大,也不可取.那么此時(shí)用DP算法是行之有效的.具體思想為:從倒數(shù)第二層開始,一層一層向上遍歷.倒數(shù)第二層第一個(gè)結(jié)點(diǎn)是2,如果路徑經(jīng)過2,那么肯定會(huì)選擇數(shù)值較大左子結(jié)點(diǎn)19. 便用19+2=21代替原先的2. 同理18改為18+10=28,9改為19,5改為21. 這樣倒數(shù)第二層就變成21 28 19 21四個(gè)結(jié)點(diǎn),再將最后一層舍棄.這樣一層層向上,直到第一層,選擇第二層較大的那個(gè)結(jié)點(diǎn)加到9上面去,就得出了全局最優(yōu)解.

  代碼實(shí)現(xiàn):如果數(shù)字塔為n層,開辟一個(gè)n*n的二維數(shù)組即可,非常簡(jiǎn)單,此處省略.


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 涿州市| 崇礼县| 乌拉特前旗| 玛曲县| 离岛区| 佛坪县| 菏泽市| 新源县| 阿拉善左旗| 金堂县| 通渭县| 丰原市| 科技| 任丘市| 益阳市| 宜城市| 安福县| 同江市| 苗栗市| 莲花县| 滨海县| 东宁县| 东安县| 阜康市| 丹阳市| 西乡县| 甘洛县| 洛川县| 法库县| 巢湖市| 扎囊县| 麟游县| 三门县| 青阳县| 镶黄旗| 凤庆县| 河间市| 东台市| 梓潼县| 永昌县| 班玛县|