中文名 | 樹形動態(tài)規(guī)劃 | 適用領(lǐng)域 | 計算機 |
---|---|---|---|
所屬學(xué)科 | 信息學(xué)、計算機科學(xué) | 別????名 | 樹狀DP |
含????義 | 最優(yōu)化概念 | 用????途 | 使整個活動的總體效果達(dá)到最優(yōu) |
性????質(zhì) | 算法 |
目標(biāo)函數(shù)是衡量多階段決策過程優(yōu)劣的準(zhǔn)則。最優(yōu)化概念是在一定條件下找到一個途徑,經(jīng)過按題目具體性質(zhì)所確定的運算以后,使全過程的總效益達(dá)到最優(yōu)。
大多數(shù)動規(guī)都是在一維二維這種規(guī)則的背景下的,可以解決的問題比較局限,而樹作為一種特殊的圖,可以描述比較復(fù)雜的關(guān)系,再加上樹的遞歸定義,是一種非常合適動規(guī)的框架,樹型動態(tài)規(guī)劃就成為動規(guī)中很特殊的一種類型。
沒有上司的晚會
【問題描述】
有個公司要舉行一場晚會。為了讓到會的每個人不受他的直接上司約束而能玩得開心,公司領(lǐng)導(dǎo)決定:如果邀請了某個人,那么一定不會再邀請他的直接的上司,但該人的上司的上司,上司的上司的上司……都可以邀請。已知每個人最多有唯一的一個上司。
已知公司的每個人參加晚會都能為晚會增添一些氣氛,求一個邀請方案,使氣氛值的和最大。
【輸入:】
第1行一個整數(shù)
接下來
接下來每行兩個整數(shù)
輸入以0 0結(jié)束。
【輸出】:
一個數(shù),最大的氣氛值和。
【樣例輸入】
7
1
1
1
1
1
1
1
1 3
2 3
6 4
7 4
4 5
3 5
0 0
5
【分析】
如上例,上司與小兵之間的關(guān)系構(gòu)成一棵樹。
5
| \
3 4
| \ | \
1 2 6 7
又是求最優(yōu)解,并且每一個節(jié)點的取舍關(guān)乎到全局 因此,此題可用樹形動態(tài)規(guī)劃
我們可用
C :
#includeusing namespace std; int main() { intn,qf[201],f[201][2],shs[201],xb[201][201],shu[201][201],x,s,maxc,j,k,a,b,l,i;//qf存儲每個人的氣氛值,shs存儲每個人的上司,xb存儲每個人的下屬,shu存儲構(gòu)成的樹,maxc存儲最大層數(shù) cin>>n; for(i=0;i<=n;i ) { xb[i][0]=0; shs[i]=0; } for(i=1;i<=n;i )cin>>qf[i]; l=1; k=1; while(l!=0||k!=0) { cin>>l>>k; shs[l]=k; xb[k][0] ; xb[k][xb[k][0]]=l; } maxc=0; for(i=1;i<=n;i ) { x=i; s=1; while(shs[x]!=0) { x=shs[x]; s=s 1; } shu[s][0] ; shu[s][shu[s][0]]=i; if(s>maxc)maxc=s; }//建樹,maxc存儲最大層數(shù) for(i=maxc;i>=1;i--) for(j=1;j<=shu[i][0];j ) { if(xb[shu[i][j]][0]==0) { f[shu[i][j]][0]=0; f[shu[i][j]][1]=qf[shu[i][j]]; } else { f[shu[i][j]][0]=0; f[shu[i][j]][1]=qf[shu[i][j]]; for(k=1;k<=xb[shu[i][j]][0];k ) { a=f[xb[shu[i][j]][k]][0]; b=f[xb[shu[i][j]][k]][1]; f[shu[i][j]][1] =a; if(b>a)a=b; f[shu[i][j]][0] =a; }//動態(tài)轉(zhuǎn)移方程 } } s=0; for(i=1;i<=shu[1][0];i ) { a=f[shu[1][i]][0]; b=f[shu[1][i]][1]; if(a 大家看到,樹形動態(tài)規(guī)劃基本上可以分為2個部分,一個是建樹,另一個就是動態(tài)規(guī)劃,一個好的數(shù)據(jù)結(jié)構(gòu),能使你編程非常容易,這也是樹形動態(tài)規(guī)劃的難點之一
pascal:
type link=^node; node=record s:longint; next:link; end; constmaxn=100; var r:array[1..maxn]oflongint;{存儲每個人的搞笑指數(shù)} sum:array[1..maxn,0..1]oflongint; son:array[1..maxn]oflink;{記錄指向兒子結(jié)點的指針} n,root:longint; i,a,b:longint; p:link; functionmax(a,b:longint):longint; beginifa>bthenexit(a)elseexit(b);end; procedurecalc(k:longint);{k是根結(jié)點} var p:link; i:longint; begin sum[k][0]:=0;{初值為0} sum[k][1]:=0; p:=son[k];{取結(jié)點k的孩子結(jié)點} whilep<>nildo begin i:=p^.s; calc(i);{遞歸調(diào)用此過程,計算以i為根結(jié)點的最大搞笑指數(shù)} inc(sum[k][0],max(sum[i][0],sum[i][1])); inc(sum[k][1],sum[i][0]); p:=p^.next;{算兄弟} end; inc(sum[k][1],r[k]); end; begin read(n); fori:=1tondo{讀入每個結(jié)點的搞笑指數(shù)} read(r[i]); fori:=1ton-1do{n個結(jié)點的相互連通的樹共有n-1條邊} begin read(a,b);{b是a的上級} inc(root,a);{對兒子結(jié)點的編號求和} new(p);{以孩子兄弟表示法來存儲樹的結(jié)構(gòu)} p^.s:=a; p^.next:=son[b];{數(shù)組son的初值應(yīng)為nil} son[b]:=p; end; root:=(n*(n 1)div2)-root;{計算出根結(jié)點的編號} calc(root); writeln(max(sum[root][0],sum[root][1])); end.2100433B
動態(tài)規(guī)劃就是解決多階段決策最優(yōu)化問題的一種思想方法。
將所給問題的過程,按時間或空間特征分解成若干相互聯(lián)系的階段,以便按次序去求每階段的解。
各階段開始時的客觀條件叫做狀態(tài)。
當(dāng)各段的狀態(tài)取定以后,就可以做出不同的決定,從而確定下一階段的狀態(tài),這種決定稱為決策。
由開始到終點的全過程中,由每段決策組成的決策序列稱為全過程策略,簡稱策略。
前一階段的終點就是后一階段的起點,前一階段的決策選擇導(dǎo)出了后一階段的狀態(tài),這種關(guān)系描述了由k階段到k 1階段狀態(tài)的演變規(guī)律,稱為狀態(tài)轉(zhuǎn)移方程。
樹形結(jié)構(gòu)是一層次的嵌套結(jié)構(gòu)。 一個樹形結(jié)構(gòu)的外層和內(nèi)層有相似的結(jié)構(gòu), 所以這種結(jié)構(gòu)多可以遞歸的表示。經(jīng)典數(shù)據(jù)結(jié)構(gòu)中的各種樹狀圖是一種典型的樹形結(jié)構(gòu):一顆樹可以簡單的表示為根, 左子樹, 右子樹。 左子...
現(xiàn)在制作很麻煩,因為你這個是需要貼皮的,而中間的花格還是需要訂制。木工沒幾個雕刻手藝。 首先訂好尺寸,加工花格,及木板開孔。木板貼皮,統(tǒng)一調(diào)色。 花格拿...
如何用Java實現(xiàn)樹形結(jié)構(gòu)?。?/a>
package tree; import java.util.LinkedList; import java.util.List; /** * 功能:把一個數(shù)組的值存入二叉樹中...
格式:pdf
大?。?span id="btkd4zr" class="single-tag-height">1.6MB
頁數(shù): 3頁
評分: 4.4
鋼管結(jié)構(gòu)樹形柱
格式:pdf
大?。?span id="l77vhdy" class="single-tag-height">1.6MB
頁數(shù): 2頁
評分: 4.3
楊梅已逐漸成為南方的一種重要果樹,全省已有25萬多畝,我市數(shù)萬畝。對開發(fā)山區(qū)經(jīng)濟(jì)有積極意義。但是楊梅結(jié)果普遍較遲,單產(chǎn)較低或大小年結(jié)果嚴(yán)重。其癥結(jié)是楊梅園管理粗放,樹形未經(jīng)整形修剪,枝葉多,樹冠蔭蔽,頂端優(yōu)勢明顯,營養(yǎng)生長與生殖生長失調(diào)。筆者通過實踐與觀察,認(rèn)為可以通過整形修剪,肥培管理,盡量利用緩和樹勢,促進(jìn)花芽形成,提高座果率,達(dá)到豐產(chǎn)穩(wěn)產(chǎn)優(yōu)質(zhì)?,F(xiàn)分述如下:
水資源規(guī)劃即在掌握水資源的時空分布特征、地區(qū)條件、國民經(jīng)濟(jì)對水資源需求的基礎(chǔ)上,協(xié)調(diào)各種矛盾,對水資源進(jìn)行統(tǒng)籌安排,制定出最佳開發(fā)利用方案及相應(yīng)的工程措施的規(guī)劃。它是水資源管理的一個重要部分。
動態(tài)規(guī)劃是用以求解多階段決策過程最優(yōu)化策略問題的方法。其基本思路是將一個復(fù)雜的系統(tǒng)分析問題分解為一個多階段的決策過程,并按一定順序或時序從第一階段開始,逐次求出每階段的最優(yōu)決策,經(jīng)歷各階段而求得整個系統(tǒng)的最優(yōu)策略。
水利規(guī)劃中的許多問題,如水資源優(yōu)化分配、工程布局和規(guī)模優(yōu)化、工程最優(yōu)開發(fā)順序等都可用其求解。為了克服方法存在的“維數(shù)障礙”,曾提出過許多改進(jìn)途徑,如在確定性動態(tài)規(guī)劃方而的狀態(tài)增量動態(tài)規(guī)劃法、離散微分動態(tài)規(guī)劃法、微分動態(tài)規(guī)劃法、逐次逼近法、逐次優(yōu)化算法(POA)和在隨機動態(tài)規(guī)劃方而的參數(shù)迭代法等。中國學(xué)者提出了一種狀態(tài)極值逐次優(yōu)化算法(SEPOA)和多維動態(tài)規(guī)劃試驗選優(yōu)法等,使高維動態(tài)規(guī)劃問題的求解成為可能。動態(tài)規(guī)劃應(yīng)用于水利規(guī)劃時存在的另一障礙,是研究對象中的狀態(tài)往往存在后效性。例如在海涂促淤圍墾優(yōu)化規(guī)劃中,促淤決策影響著圍墾決策,圍墾決策也影響著促淤決策;在除澇排水系統(tǒng)規(guī)劃中,作為狀態(tài)變量的河網(wǎng)規(guī)模與排水閘尺寸也是相互制約的。針對這兩種情況,中國已分別提出了試誤迭代法和建立河網(wǎng)規(guī)模與排水閘尺寸的關(guān)系方程作為約束條件來加以克服,從而擴(kuò)大了動態(tài)規(guī)劃的應(yīng)用范圍。在隨機動態(tài)規(guī)劃方面,也提出過一些多維隨機動態(tài)規(guī)劃算法和多目標(biāo)隨機動態(tài)規(guī)劃算法等,均有所創(chuàng)新。
水資源系統(tǒng)規(guī)劃是水資源合理開發(fā)利用的有效途徑。隨著全球社會經(jīng)濟(jì)的發(fā)展,水資源在經(jīng)濟(jì)可持續(xù)發(fā)展中具有基礎(chǔ)性地位和至關(guān)重要的作用。為了合理利用水資源,實現(xiàn)水資源可持續(xù)利用,保障經(jīng)濟(jì)社會可持續(xù)發(fā)展,我們需要對水資源進(jìn)行合理規(guī)劃,研究水資源規(guī)劃方法。近年來,對水資源規(guī)劃方法的研究不斷加深,并取得了大量成果。動態(tài)規(guī)劃模型在越來越多的應(yīng)用在水資源規(guī)劃中,具有將高維問題化為相對簡單的低維問題、對目標(biāo)函數(shù)和約束條件的函數(shù)形式限制較寬、處理比較方便等優(yōu)點。以經(jīng)濟(jì)、社會、環(huán)境綜合效益最大為目標(biāo),通過分析水資源現(xiàn)狀,建立動態(tài)規(guī)劃模型,能夠有效的了解水資源供需矛盾。
我局召開督察員工作交接見面座談會
2013年3月6日下午,衡水市城鄉(xiāng)規(guī)劃局召開了省住建廳派駐衡水城鄉(xiāng)規(guī)劃督察員工作交接見面座談會。省建設(shè)監(jiān)察辦副主任吳清波、省建設(shè)監(jiān)察辦規(guī)劃督察科科長邢光明、省住建廳派駐衡水原督察員王英麒和新任督察員張勝軍及衡水市政府副秘書長張奎元、市城鄉(xiāng)規(guī)劃局黨組全體成員、局機關(guān)各科室科長參加了會議。
交接儀式上,省建設(shè)監(jiān)察辦吳清波副主任介紹了我省城鄉(xiāng)規(guī)劃督察工作的開展情況,充分肯定了原督察員王英麒同志多年的駐衡工作,介紹了新任督察員張勝軍的有關(guān)情況,重申了督察員職責(zé),提出了督察工作要求,希望衡水的城鄉(xiāng)規(guī)劃工作更加規(guī)范,城市建設(shè)更上一臺階。原省住建廳駐衡督察員王英麒、現(xiàn)省住建廳駐衡督察員張勝軍均作了表態(tài)發(fā)言。
市政府副秘書長張奎元代表市政府歡迎新督察員的到來,并感謝了原督察員對衡水規(guī)劃工作的幫助。表示一定會全力支持督察員工作,嚴(yán)格按照規(guī)劃法及相關(guān)法律、法規(guī)做好規(guī)劃工作。市城鄉(xiāng)規(guī)劃局局長張峰、副局長楊凝均表態(tài):感謝省住建廳對衡水城鄉(xiāng)規(guī)劃工作的關(guān)心和重視,將全力配合駐衡督察員工作,進(jìn)一步提升規(guī)劃工作水平。
2100433B