動態規劃心得

2021-07-05 20:25:25 字數 2543 閱讀 1924

一、找出最優解的性質,刻劃其結構特徵-最優子結構特徵

1.  矩陣連乘:將矩陣連乘積簡記為a[i:j] ,這裡i≤j,m[i

][j]為

計算矩陣a[i:j]所需的最少數乘次數

2.  最長公共子串行中的x(m)=和y(n)=,z[i][j]記錄字串x[i]、y[j]最長公共子串長度

3.  最大子段和:子問題: ,b[j]計算區間a[1:j]上最大子區間長度

4.  最優三角剖分:凸子多邊形,t[i][j]記錄凸多邊形的最優三角剖分所對應的權函式值

5.  多邊形遊戲:從頂點i(1≤i≤n)開始,長度為j(鏈中有j個頂點)的順時針鏈p(i,j),即v[i], op[i+1], …, v[i+j-1],                   m[i][j][0]存放自頂點i開始(首次刪除第i條邊),長度為j的子鏈長度的最小值,m[i][j][1]存放自頂點i開始(首次刪                 除第i條邊),長度為j的子鏈長度的最大值

6.  

影象壓縮:前i

個象素序列

,s[i]儲存為前i段灰度值所需最小儲存空間,

7.  揹包問題中的子問題,m[i][j]表示可選物品為i+1,i+2..n,揹包容量為j時,所裝物品的最大價值 

8.  最優二叉搜尋樹:最優二叉搜尋樹tij,m[i][j]為子樹最小平均路長

二、遞迴地定義最優值:刻畫原問題解與子問題解間的(數值)關係:表示式中存在尋優變數、最優目標值

1.  矩陣連乘:

當i=j時,m[i][j]=0; 只有乙個矩陣,相乘次數為0

(m[1][n])當i

其中,k為區間[i,j)之間的斷點,矩陣ai的維數為p[i-1]*p[i]

2.  最長公共子串行:    當i=0或j=0時,z[i][j]=0;  其中乙個序列為空

(z[lenx][leny])    當i,j>0 && x[i]==y[j],z[i][j]=z[i-1][j-1]+1

當i,j>0 && x[i]!=y[j], z[i][j]=max

3.  最大子段和:  當j=0,b[j]=0;  序列為空

(b[n])              當j>0,b[j]=max

4.  最優三角剖分:  當i=j,t[i][j]=0; 此時三角形中只有兩個頂點,為退化三角形

(t[1][n])             當i

k為區間[i, j)上的斷點,w(vi-1,vi,vj)為三角形的權值

5.  多邊形遊戲:      當j=1,m[i][j][0]=v[i],m[i][j][1]=v[i]; 長度為的子鏈

(max)當j>1,m[i][j][0]=min+11

bmax(i-k+1,i)為最後一段

[i-k+1]

畫素所佔位數

7.  揹包問題中的子問題,當i=n,如果w[n]>j,m[i][j]=0;    此時物品重量》揹包容量

(m[1][c])                                     如果w[n]<=j, m[i][j]=v[n];  此時物品重量<=揹包容量

此時揹包容量為j,只有乙個物品可選,  w為物品重量, v為物品價值

當ij,m[i][j]=m[i-1][j];    

如果w[n]<=j, m[i][j]=max;  

8.  最優二叉搜尋樹:m[i][i-1]=0  1<=i<=n  i>j

(m[1][n])          m[i][j]=w[i][j]+min  i<=j

k為區間[i,j]上的斷點

a中存放在二叉樹中的葉節點找到x的概率(成功)

b中存放在內節點上找到x的概率(失敗)

t(i,j)為有序集關於訪問概率的一棵最優二叉樹

w[i][j]表示查詢落在區間(xi-1, xj+1)上的概率

w[i][j] = a[i-1] + b[i] +…+ b[j] + a[j]

三、以自底向上的方式計算出各個子問題、原問題的最優值,  並避免子問題的重複            計算(記錄已計算的子問題解)

這是動態規劃相對於遞迴與分治的好處,也可以採用備忘錄方法,形式上更加簡潔。

四、根據計算最優值時得到的資訊,構造最優解

主要是根據各個斷點,進行回溯,構造解的過程

我覺得,遇到乙個求最優問題,首先要將問題抽象出數學模型,用符號語言描述問題,然後找出此問題是否具有最優子結構,如果具有,再以遞迴的定義構造子問題的最優解,這一步最為關鍵,這不僅關係到問題是否能求解出,也關係到求解效率。然後自底向上構造最優解,當所有子問題的最優解求出來時,整個問題的最優解也就求出來了。個人感覺,還是數學的作用比較重要一些吧,在這些動態規劃的問題中,不乏一些優秀的優化案例,比如在最優二叉搜尋樹中,運用了動態規劃加速原理,這便是數學知識的運用。

藍橋杯刷題心得 動態規劃

這裡單獨寫一下動態規劃專題,藍橋杯當中一定會出一道動態規劃的題目所以稍微彙總一下。源於藍橋杯2020屆一道題目 1.某市市長獲得了若干批口罩,每一批口罩的數目如下 如果你把以下文字複製到文字檔案中,請務必檢查複製的內容是否與文件中的一致。在試題目錄下有乙個檔案 mask.txt,內容與下面的文字相同...

動態規劃部分心得體會

這幾天看動態規劃的題目,發現難點還是在於狀態轉移方程,真的想不出。或者說有的題目大體思路有了,狀態方程懂了,但是具體到 實現上又很難下手 就是那種只明白思路無法用 實現的感覺。看著同學們做了好多,自己卻不太會做,唉。或許是自己做過的題目和接觸到的題目太少了,又把課件從頭到尾看了一遍,一點一點的看,具...

規劃問題心得

規劃演算法是數學建模眾多演算法中最常用的演算法之一,也是最容易入門 學習的演算法之一,規劃的初學者可能發現,它和我們高中時學過的線 性規劃非常像,但又複雜許多。高中時學習的規劃形式非常簡單,只 有 x 和 y 兩個維度,一般都是利用影象進行求解,但實際生活中的維 度不僅僅是二維,也並非線性,利用高中...