




已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
.,樹(shù)型動(dòng)態(tài)規(guī)劃,.,加分二叉樹(shù),給定一個(gè)中序遍歷為1,2,3,n的二叉樹(shù)每個(gè)結(jié)點(diǎn)有一個(gè)權(quán)值定義二叉樹(shù)的加分規(guī)則為:左子樹(shù)的加分右子樹(shù)的加分根的分?jǐn)?shù)若某個(gè)樹(shù)缺少左子樹(shù)或右子樹(shù),規(guī)定缺少的子樹(shù)加分為1。構(gòu)造符合條件的二叉樹(shù)該樹(shù)加分最大輸出其前序遍歷序列,.,樣例中序遍歷為1,2,3,4,5的二叉樹(shù)有很多,下圖是其中的三棵,其中第三棵加分最大,為145.,.,分析,性質(zhì):中序遍歷是按“左-根-右”方式進(jìn)行遍歷二叉樹(shù),因此二叉樹(shù)左孩子遍歷序列一定在根結(jié)點(diǎn)的左邊,右孩子遍歷序列一定在根結(jié)點(diǎn)的右邊!因此,假設(shè)二叉樹(shù)的根結(jié)點(diǎn)為k,那么中序遍歷為1,2,n的遍歷序列,左孩子序列為1,2,k-1,右孩子序列為k+1,k+2,n,如下圖,.,動(dòng)態(tài)規(guī)劃,設(shè)f(i,j)中序遍歷為i,i+1,j的二叉樹(shù)的最大加分,則有:f(i,j)=maxfi,k-1*fk+1,j+dk顯然f(i,i)=di答案為f(1,n)1=i=k=j=n時(shí)間復(fù)雜度O(n3)要構(gòu)造這個(gè)樹(shù),只需記錄每次的決策值,令b(i,j)=k,表示中序遍歷為i,i+1,j的二叉樹(shù)的取最優(yōu)決策時(shí)的根結(jié)點(diǎn)為k最后前序遍歷這個(gè)樹(shù)即可。,.,選課,給定M門(mén)課程,每門(mén)課程有一個(gè)學(xué)分要從M門(mén)課程中選擇N門(mén)課程,使得學(xué)分總和最大其中選擇課程必須滿(mǎn)足以下條件:每門(mén)課程最多只有一門(mén)直接先修課要選擇某門(mén)課程,必須先選修它的先修課M,N=500,.,分析,每門(mén)課程最多只有1門(mén)直接先修課,如果我們把課程看成結(jié)點(diǎn),也就是說(shuō)每個(gè)結(jié)點(diǎn)最多只一個(gè)前驅(qū)結(jié)點(diǎn)。如果把前驅(qū)結(jié)點(diǎn)看成父結(jié)點(diǎn),換句話說(shuō),每個(gè)結(jié)點(diǎn)只有一個(gè)父結(jié)點(diǎn)。顯然具有這種結(jié)構(gòu)的模型是樹(shù)結(jié)構(gòu),要么是一棵樹(shù),要么是一個(gè)森林。這樣,問(wèn)題就轉(zhuǎn)化為在一個(gè)M個(gè)結(jié)點(diǎn)的森林中選取N個(gè)結(jié)點(diǎn),使得所選結(jié)點(diǎn)的權(quán)值之和最大。同時(shí)滿(mǎn)足每次選取時(shí),若選兒子結(jié)點(diǎn),必選根結(jié)點(diǎn)的條件。,.,樣例分析,如圖1,為兩棵樹(shù),我們可以虛擬一個(gè)結(jié)點(diǎn),將這些樹(shù)連接起來(lái),那么森林就轉(zhuǎn)會(huì)為了1棵樹(shù),選取結(jié)點(diǎn)時(shí),從每個(gè)兒子出發(fā)進(jìn)行選取。顯然選M=4時(shí),選3,2,7,6幾門(mén)課程最優(yōu)。,.,轉(zhuǎn)化為二叉樹(shù),如果該問(wèn)題僅僅只是一棵二叉樹(shù),我們對(duì)兒子的分配就僅僅只需考慮左右孩子即可,問(wèn)題就變得很簡(jiǎn)單了。因此我們?cè)囍鴮⒃搯?wèn)題轉(zhuǎn)化為二叉樹(shù)求解。圖2就是對(duì)圖1采用孩子兄弟表示法所得到的二叉樹(shù),.,動(dòng)態(tài)規(guī)劃,仔細(xì)理解左右孩子的意義(如右圖):左孩子:原根結(jié)點(diǎn)的孩子右孩子:原根結(jié)點(diǎn)的兄弟也就是說(shuō),左孩子分配選課資源時(shí),根結(jié)點(diǎn)必須要選修,而與右孩子無(wú)關(guān)。因此,我們?cè)O(shè)f(i,j)表示以i為根結(jié)點(diǎn)的二叉樹(shù)分配j門(mén)課程的所獲得的最大學(xué)分,則有,0=knm;scoren+1=0;brothern+1=0;/輸入數(shù)據(jù)并轉(zhuǎn)化為左兒子右兄弟表示法for(inti=1;iab;if(a=0)a=n+1;scorei=b;brotheri=childa;childa=i;,.,voiddfs(inti,intj)if(visitedij)return;visitedij=1;if(i=0|j=0)return;dfs(brotheri,j);/如果不選i,則轉(zhuǎn)移到狀態(tài)(brotheri,j)fij=fbrotherij;for(intk=0;kfij)fij=fbrotherik+fchildij-k-1+scorei;,.,軟件安裝(2010河南省選),有N個(gè)軟件,對(duì)于一個(gè)軟件i,它要占用Wi的磁盤(pán)空間,它的價(jià)值為Vi。我們希望從中選擇一些軟件安裝到一臺(tái)磁盤(pán)容量為M計(jì)算機(jī)上,使得這些軟件的價(jià)值盡可能大(即Vi的和最大)。軟件之間存在依賴(lài)關(guān)系,即軟件i只有在安裝了軟件j(包括軟件j的直接或間接依賴(lài))的情況下才能正確工作(軟件i依賴(lài)軟件j)。幸運(yùn)的是,一個(gè)軟件最多依賴(lài)另外一個(gè)軟件。如果一個(gè)軟件不能正常工作,那么它能夠發(fā)揮的作用為0。我們現(xiàn)在知道了軟件之間的依賴(lài)關(guān)系:軟件i依賴(lài)軟件Di。一個(gè)軟件只能被安裝一次,如果一個(gè)軟件沒(méi)有依賴(lài)則Di=0,這時(shí)只要這個(gè)軟件安裝了,它就能正常工作。現(xiàn)在請(qǐng)你設(shè)計(jì)出一種方案,安裝價(jià)值盡量大的軟件。,.,分析,由于軟件存在先后約束關(guān)系,因此簡(jiǎn)單按軟件先后順序進(jìn)行動(dòng)態(tài)規(guī)劃,會(huì)不符合無(wú)后效應(yīng)原理,因此我們需要在進(jìn)行動(dòng)態(tài)規(guī)劃前進(jìn)行預(yù)處理。若安裝軟件i必須先安裝j,則從i向j連一條有向弧,則軟件的約束關(guān)系就構(gòu)成了一個(gè)有向圖。如下圖:可以看出如果有k個(gè)制約關(guān)系,則有k條邊,中間會(huì)存在環(huán),.,分析,處理環(huán):由于環(huán)為互為前提,要選擇環(huán)中的一個(gè)必須都進(jìn)行選擇,因此可以將環(huán)縮成一個(gè)點(diǎn),這個(gè)點(diǎn)為權(quán)值和價(jià)值為其他點(diǎn)的和。孤立點(diǎn)沒(méi)有與其他點(diǎn)也沒(méi)有任何關(guān)系,可以不管。如果把每個(gè)連通分量看成一棵樹(shù),則圖變成了為一個(gè)森林,圖2。,.,樹(shù)型動(dòng)態(tài)規(guī)劃,顯然這個(gè)森林可以采用樹(shù)型動(dòng)態(tài)規(guī)劃,先將它兒叉樹(shù)。設(shè)f(i,j)表示以i為根結(jié)點(diǎn)的二叉樹(shù)分配j資源的最大價(jià)值,.,警衛(wèi)安排,一個(gè)有N個(gè)區(qū)域的樹(shù)結(jié)構(gòu)上需要安排若干個(gè)警衛(wèi);每個(gè)區(qū)域安排警衛(wèi)所需要的費(fèi)用是不同的;每個(gè)區(qū)域的警衛(wèi)都可以望見(jiàn)其相鄰的區(qū)域,只要一個(gè)區(qū)域被一個(gè)警衛(wèi)望見(jiàn)或者是安排有警衛(wèi),這個(gè)區(qū)域就是安全的;任務(wù):在確保所有區(qū)域都是安全的情況下,找到安排警衛(wèi)的最小費(fèi)用;0n=720;,.,分析樣例該圖有6個(gè)區(qū)域如圖1,安排情況如圖2,紅色點(diǎn)為安排了警衛(wèi)。2號(hào)警衛(wèi)可以觀察1,2,5,6;3號(hào)警衛(wèi)可以觀察1,3;4號(hào)警衛(wèi)可以觀察1,4;費(fèi)用:16+5+4=25,.,分析,對(duì)于每個(gè)點(diǎn)i,都有3種狀態(tài)分別為:要么在父親結(jié)點(diǎn)安排警衛(wèi),即被父親看到要么在兒子結(jié)點(diǎn)安排警衛(wèi),即被兒子看到要么安排警衛(wèi)對(duì)于ii被父親看到,這時(shí)i沒(méi)有安排警衛(wèi),i的兒子要么安排警衛(wèi),要么被它的后代看到。i被兒子看到,即i的某個(gè)兒子安排了警衛(wèi),其他兒子需要安排警衛(wèi)或者被它的后代看到。i安排了警衛(wèi),i的兒子可能還需要安排警衛(wèi),這樣可能有更便易的方式照顧到它的后代;所以i的兒子結(jié)點(diǎn)被i看到,可能安排警衛(wèi),可能被它的后代看到。,.,.,動(dòng)態(tài)規(guī)劃,設(shè)f(i,0)表示i結(jié)點(diǎn)被父親看到;f(i,1)表示i被它的兒子看到;f(i,2)表示在i安排警衛(wèi);則狀態(tài)轉(zhuǎn)移方程為:時(shí)間復(fù)雜度O(N2),.,procedurework(now:longint);vari,j,sum,tmp:longint;beginfori:=1totnowdowork(wnow,i);/對(duì)每個(gè)兒子進(jìn)行處理fnow,0:=0;/以下處理now被父親看到fori:=1totnowdoinc(fnow,0,fwnow,i,1);/now的兒子被兒子看到sum:=0;/以下處理在now被兒子看到的fori:=1totnowdo/now的兒子被兒子看到或者或安排警衛(wèi);inc(sum,min(fwnow,i,1,fwnow,i,2);fnow,1:=maxlongint;fori:=1totnowdo/枚舉哪個(gè)兒子放警衛(wèi)begintmp:=sum-min(fwnow,i,1,fwnow,i,2)+fwnow,i,2;fnow,1:=min(fnow,1,tmp);end;fnow,2:=cnow;/以下處理在now放置警衛(wèi)fori:=1totnowdoInc(fnow,2,min(min(fwnow,i,0,fwnow,i,1),fwnow,i,2);fnow,1:=min(fnow,1,fnow,2);1包含了2狀態(tài),取優(yōu)值end;,.,總結(jié),樹(shù)型動(dòng)態(tài)規(guī)劃有一個(gè)共性,那就是它的基本模型都是一棵樹(shù)或者森林,為了考慮方便,一般情況下都將這個(gè)樹(shù)或森林轉(zhuǎn)化為二叉樹(shù),如下圖,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司線上祭奠活動(dòng)方案
- 公司時(shí)裝創(chuàng)意秀活動(dòng)方案
- 公司秋游白交祠策劃方案
- 公司收心活動(dòng)方案
- 公司活動(dòng)演講活動(dòng)方案
- 公司班組文化活動(dòng)方案
- 公司群眾文體活動(dòng)方案
- 公司職工團(tuán)日活動(dòng)方案
- 公司特色活動(dòng)策劃方案
- 公司注冊(cè)選址策劃方案
- 小學(xué)生數(shù)學(xué)邏輯推理題100道及答案解析
- 2023年上海市普通高中學(xué)業(yè)水平合格性考試地理試題及答案
- 基本氣象要素
- 食品安全規(guī)章制度模板打印
- 2024年永平縣小升初全真數(shù)學(xué)模擬預(yù)測(cè)卷含解析
- 2002版《水利工程施工機(jī)械臺(tái)時(shí)費(fèi)定額》
- 山東省菏澤市鄄城縣2023-2024學(xué)年七年級(jí)下學(xué)期7月期末英語(yǔ)試題
- 國(guó)家開(kāi)放大學(xué)本科《會(huì)計(jì)實(shí)務(wù)專(zhuān)題》形考作業(yè)一至四試題及答案
- 安徽省合肥市廬陽(yáng)區(qū)2022-2023學(xué)年五年級(jí)下學(xué)期期末科學(xué)試卷
- 國(guó)家開(kāi)放大學(xué)《土地利用規(guī)劃》本章自測(cè)參考答案
- 外賣(mài)安全法律知識(shí)講座
評(píng)論
0/150
提交評(píng)論