




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、動(dòng)態(tài)規(guī)劃算法實(shí)驗(yàn)報(bào)告作者:日期:實(shí)驗(yàn)標(biāo)題實(shí)驗(yàn)?zāi)康?、矩陣連乘2、最長(zhǎng)公共子序列3、最大子段和4、凸多邊形最優(yōu)三角剖分5、流水作業(yè)調(diào)度6、01背包問題7、最優(yōu)二叉搜索樹掌握動(dòng)態(tài)規(guī)劃法的基本思想和算法設(shè)計(jì)的基本步驟。實(shí)驗(yàn)內(nèi)容與源碼1、矩陣連乘#incl u deVostr e am>#incl u de<cs t dlib> usi n g n ame space std;co ns t i nt size = 4;/ra,c a和rb,cb分別表示矩陣 A和B的行數(shù)和列數(shù)v o id matriMu 1 ti ply( i nt a 4,i nt b 4, i n t c 4
2、, i nt ra , intC a,int rb,int cb )a !=r b ) cerr<< "矩陣不可乘";i = 0; i < r a;i +)i f( Cf o r(int(i n t j =0;j< c b;j+)forint su m=a : i: 0 *b0j :;f 0 r (i n t k=1;k<ca; k+ )su m+=ai: : k * b : k: j; ci: j= su m;Matr i xChain (i nt * p, intn, i n t m : 4:, i nt s 4)f or(int i =
3、l;i <=n; i +) mi i=0; /對(duì)角線f or(int r =2; r<=n;r + +)/外維f or (int i = 1;i<=n- r +1; i + +)/上三角int j= i +r-1;mij=m: i+1j+p i -1 *p i *p j ;si j : =i;for(int k=i+1; k <j; k + + )int t= mi k+m k + l j+p i l *pk * pj; if(t <m i: j )m : i j = t ; sij = k;oid Traceb ack( int i,i n t j,i nt s
4、 4 )i f (ij)cout<< " A "<< i ;if( i +1 = = j) el sc out<< "(A" <<i < <"A "<<j<<")";secou t <<"("T r ac eback (i, s ij,Tr a ceback( sij + 1,j, c o ut<<”)”;s);s );int m ain()intw ;co u t<<&quo
5、t;矩陣個(gè)數(shù):"c in > >w;i nt p w, s ww;co ut< <"輸入矩陣A 1維數(shù):"; cin>>p0 > >p 1;f o r(i nt i=2 ; i < =w ; i + +) i nt m = pi 1;c o ut< <"輸入矩陣A" <<i< <"維數(shù):"c in>> p i-1>>pi;if(pi-1! = m)cou t <<endl< < "
6、;維數(shù)不對(duì),矩陣不可乘!"<<endl;exi t (1);Tra c eback(1,w , s);r e turn 0;運(yùn)行結(jié)果Il I I;®送迫陣:臺(tái)乘Le!炬2、最長(zhǎng)公共子序列#include<cstr i ng>#in cl u d e< i ostream# define N 1 0 0 u s ing name s pac e std;/ s tr1存儲(chǔ)字符串x, str2存儲(chǔ)字符串ych ar str1 N ,str2 N;/l cs存儲(chǔ)最長(zhǎng)公共子序列ch a r l c sN;/c ij存儲(chǔ)str 1 1 .i與str2l
7、. j:的最長(zhǎng)公共子序列的長(zhǎng)度 int c : NN;/ /fl agi: j= = 0 為 str1i=st r 2j/fl a gij=1 為 c : i - 1 j > = si: j 1 /flag : i j =-1 為 c i-1 : j< s i : j 1i nt fla g N : N:;/求長(zhǎng)度in t LC S Len g th (ch a r * x , cha r *y) in t i,j ;/ /分別取得x,y的長(zhǎng)度int m = s trlen( x );int n = s tr l en (y);fo r ( i =1;i<=m;i+ +)ci
8、0 = 0;f o r(i=0;i<= n; i + +)c 0 : i = 0;f or(i= 1; i< = m; i+)f o r(j=1;j< =n ;j+)i f (xi-1=y : j-1)c : ij= c i- 1 j -1:+1;flagi :j = 0;lse i f( c i-1 : j>=cij-1):i j := c i-1 j ;fl a g i: j = 1;e lsec i: j:= ci j -1;l ag: i : j = - 1 ;c mn;r e tu求出最長(zhǎng)公共子序列char* getLCS (ch ar * x, char *
9、 y,in t l en,cha r *l cs) i n t i = s t rle n (x); int j = s trl en (y);w hile(i&& j )if(fla g: ij : =0)lcs- len = xi-1 ;i-;else if( f lag:i :j: =1)i -;elsej-;retur n l c s;t m ai n ()int i ;cou tvv"請(qǐng)輸入字符串x:"< < end l ;c i n>>str1;ci n> >str2;i n t l csLen = LCS L
10、eco ut<v"最長(zhǎng)公共子序列長(zhǎng)度c h ar *p = ge t LCS( s t rcou tv <"最長(zhǎng)公共子序列為:f o r(i=r eturn運(yùn)行結(jié)果H.0 ;i<lcsL e n; i +) u t<<lc s: i: <<""0;ngth(s tr 1,st r2);:"<<lcsLen< v en dl;1, s tr2,lcsLe n , 1 c s);hl帀請(qǐng)輸入車符串盟2 ate def glis 色命 cf 情輸入字符串y:最長(zhǎng)公共子序列長(zhǎng)度: 最長(zhǎng)公共子序
11、列対:.口_ 亠. 、3、最大子段和/分治法求最大子段和#i nclud e <i os tr e am> usi n g na m e sp a c e std;i n t M a xSubSum (i n t * a,int 1 eft, i nt in t sum= 0;i f( 1 ef t =r ig ht) sum=al e ft >0? e lsei nt ce nt e r = (left +r ight)/2;right )a : lef t :0;/ /最大子段和在左邊eft ,center);int 1 ef t sum=MaxSubSum( a , 1
12、最大子段和在右邊int rig h tsu m=Ma x Su b S u m(a,cen t er+ l ,right);最大子段和在中間int si = 0 ;i n t 1e f t s=0;f o r(in t i = center;i>=le f t;i-)l ef ts+ =a i;i f(lefts> s 1) s 1=left s ;int s2 =0;int rights=0;fo r (int i= c ente r +1;i<=rig ht ;i+ + ) rig h ts+=a i;i f( r i g hts>s2) s2= ri gh t s
13、 ;sum= s 1+s 2 ;/前后子段和相加/ /判斷最大子段和if(su m> l e fts u m) s um=left s um ; if (su m>r i gh ts um) sum= rightsum;r etu r n sum;intMaxS um (int * a,int n)re tu rn M axSubS um (a,1,n-1);m ai n()int a 8= 2,-3, -5,4,1 , 7,1, -5;cout <<"最大子段和為:"<< Ma xSum ( a ,8);return 0;/動(dòng)態(tài)規(guī)劃法#
14、in cl u d e<io st r e am>us in g n a me spa c e int M axSum ( i nt *a , st d;int n)int su m=0, b for(i nti = 1;i<n ;=0;i+) / /此處不能=n.returnif(b > 0) b+= a i;l s e b=a i;ei f (b>s um) su m=b;s um;main()in t a8= 2, -3,- 5 ,4,1, 7, 1 , 5;co ut< <"最大子段和為:"<<M ax Sum
15、(a,8); r et u rn 0 ;運(yùn)行結(jié)果L_最大子段耳口為:13P史au&s3 leturried 0 (OicOj eitecuticii -tijne :5. 274 sPress any key to continue*4、凸多邊形最優(yōu)三角剖分# i nclude<io s t r earn >#in c lude < cm ath># inc lu d e<cs t dlib>#defi n e N 50US i ng nam e sp a ce std;struct poi n tint x; int y ;;int dis =(Y
16、 .return (int) s qr tdista n ce(poi nt X , point Y)/ 兩點(diǎn)距離X -X.x )* (Y.x X . x) + (Y . y-X . y)*(Y.y -X .y); (di s);inw( po int a, point b,p oi n t c)/ 權(quán)值retu rn d i st ance (a,b)+ d i st a n ce(b,c ) +dista n ce (a,c);ol Jud geinpu t ()/判斷是否能構(gòu)成凸多邊形poi ntint *tot*v ;a l;/記錄凸多邊形各頂點(diǎn)坐標(biāo) / /記錄坐標(biāo)在直線方程中的值in
17、t m,a , b ,c;cout< < "請(qǐng)輸入凸多邊形頂點(diǎn)個(gè)數(shù): c i n> >m;i nt MH.for(in t=m 1;i= 0; i< m ;i+)cout<< "輸入頂點(diǎn) v" <<i<< "的坐標(biāo):"cin>>vi . x>>vi.y;/根據(jù)頂點(diǎn)坐標(biāo)判斷是否能構(gòu)成一個(gè)凸多邊形for (in t j=0 ; j<m ; j+)int p = i n t q if(m-1 = 0;=0;j)-v : 0. y;v0: .y;=b * v
18、 m 1. y - a * vm-1 .X;elsefor(vm-1 . y v m -1. x ctot a li f (tot a lk >j. Xv j +1. X;j . y-a * v j . X ;k <m;k+):k = a* vk.x b * vnt k= 0)0V j.y -vj+1 .y ;= vb * V k .y + c;P = P+1;i f (t o t alk <0) els eq = q +1;if(p >0 && q > 0) I I (p=0 &&q =0)co u t<< "
19、;無法構(gòu)成凸多邊形!" <<endl;ex i t (1);bool m i nW e ightT r i a ngu 1a ti on ()/計(jì)算最優(yōu)值算法 inti ntpoi ntM;I t, *s;*v;f or (int i=1; i<=M ; i+ + )ti i = 0 ;f o r (i nt r= 2; r< = M ; r +)for( in t i= 1; i < =M-r + 1 ; i + +)in t jt: ijsi:= i +r- 1 ;=t i +1j+ w (vi-1 : ,v i ,v : j );j = i ;fo
20、r(i nt k =i +1; k < i+r-1 ; k+)in t u = ti k + tk+1 j + w(vi-1 ,vk,vj :);f(u < t : ij)圳j=si : j:u;return t ruvoidT raceback (int i, inti n t*s)i f ( i = j) return;Tr a ce bac k( i ,si<"v"< <sij : <<" V "<<j <<e nd1 ;:j : ,s);Tr a cebac k(s : ij :
21、+1,j,s);co ut< <"三角形:v"<<i -1<intm a i n()i n t *s;形信息/ /記錄最優(yōu)三角剖分中所有三角i nt * t ;函數(shù)值/ /記錄最優(yōu)三角剖分所對(duì)應(yīng)的權(quán)poi n t *v; in t * t ota 1 ;/ /記錄凸多邊形各頂點(diǎn)坐標(biāo)/ /記錄坐標(biāo)在直線方程中的值int M= 0 ;i <N; i+ )i =0t = new int * N s = new i n t *N ; for(i nt圳=n ew in t N;si = n ew i ntN ;ne w p oi n t N; t
22、ot al = new in tN; if(Judge In pu t ()if (m inWei gh tT riangula t ion ()Tracebac k(1,M,s);co ut<< en dl;co ut<<"最優(yōu)權(quán)值之和為:"< <t1M :< <endl; retu r0;運(yùn)行結(jié)果:r 'I 口S訊亍口參邊形最優(yōu)三雋剤分EKES 230 200 LO10 0222715122126橫輜入凸參邊矗隕民i 如7 輸入頂點(diǎn)曲前坐標(biāo); 輸人頂點(diǎn)Z的坐標(biāo); 薪入頂點(diǎn)"乂薊坐葆: 輸人頂點(diǎn)詡罰坐標(biāo):
23、輸入頂點(diǎn)v4苗坐標(biāo): 輸入頂點(diǎn)V5苗坐棕, 逾入頂點(diǎn)手的坐標(biāo): 三角形: 三角形:屹詡胡 三;羽:'bQNv4 二角形; 角形:垃詞詢杲優(yōu)取值;3和訶:226.Pidcess xetmn&d 0 (0x0 execution clifts : 43+日65 s Ihx-ess any iiey lo contiJiue,5、流水作業(yè)調(diào)度# in c l u de <i ost ream#define N 1 0 0us i ng nam espac e std;class Job t yp epublic :I* i nt o p e rato r <=( Job
24、t y pe a )co n s t re t urn(key < = a .ke y);*Ii nt key;i nt i n de x ;bo ol jo b ;o i d so r t (Jobt ype *d , in t n)in t i,j;J o bty p e te m p ;b o ol e X ch an g e; 交換標(biāo)志f or(i =0 ;i < n; i + ) II 最多做 n 1 趟排序exc hange = f a Ise;/1本趟排序開始前,交換標(biāo)志應(yīng)為假for( j = n - 1;j>= i;j -)i f ( d j+ 1 . ke
25、y < d j . k ey)temp = d j + 1 ;d j+1 = dj;dj = temp;exc h ange=true; /發(fā)生了交換,故將交換標(biāo)志置為真if ( ! ex ch a ng e) /1本趟排序未發(fā)生交換,提前終止算法r et ur n ;intFlo w S h op(i nt n, in t * a, i nt *b,i n t * c )Jobt ype * d = n e w Jobt y pen;for( i nt i =0; i< n ;i+ +)/初始化di. k ey= ai: >bi? b i : a i:; II執(zhí)行時(shí)間d i
26、 .job=ai<=b i ;II 作業(yè)組di: .inde x= i;/1作業(yè)序號(hào)sort(d, n);int j=0;i n tk=n-1;fo r(in t i=0;i <n ;i + + ) II最優(yōu)調(diào)度if (di .J Ob) c j+ + =d i . i ndex ;e lseck- =d i. i ndex;J = ack=j+bc0for(i0:;:;i= 1;i< n;i+ +)j+ =a c i:;k=j<k?k+bc : i: : j+b c i;delete d;/回收空間r e turn k ;/返回調(diào)度時(shí)間int m a in()i nt
27、 n, *a,*b,* c ;cou t<<"作業(yè)數(shù):";cin>> n ;J obtyp e *d = n ew Jobt y peN; a= n e w intN;b=new i nt N;c=new in tN ;cout<<"請(qǐng)輸入作業(yè)號(hào)和時(shí)間:"f or( i nt i = 0;i<n;i + )c i n>>d i . i ndex>>d i .ke y;cout << endl ;i n t k =F1 owSho p (n, a,b,c );"<
28、< k <<en d1 ;H.cou tn調(diào)度時(shí)間:co u t<<"最優(yōu)調(diào)度序列: fo ri < n ; i + +)/輸出最優(yōu)調(diào)度序列cou t < < c i < < "H.return 0 ;運(yùn)行結(jié)果:作業(yè)數(shù):4®輸入作業(yè)號(hào)和時(shí)間:2 91 222 63 7碉JK時(shí)間:S35819S最優(yōu)調(diào)度序列3 0 1process re+urtLed 0 (OkO) ei: scut ran time ! 27. 283 s H press any key to continue.6、0 -1背包問題#in
29、clude <i o stream#i n elude <ioma n i p>usi ng n a m e sp ace st d;con st i nt C = 1 0;/ 容量co nst in t N=5;/ 個(gè)數(shù)i nt max(c o nst in t a,c on s t int b) r etu rn a > b ?a:b; int m in( const int a, con st i nt b )re tu r n a <b?a:b ;/ *m為記錄數(shù)組 m i j代表在剩有j容量的條件下,從i開始往后的 物品中可以取得的最大價(jià)值w為重量數(shù)組,
30、V為價(jià)值數(shù)組n為物品個(gè)數(shù),c為開始容量則m1c即此背包能剩下的最大價(jià)值*/void kn apsac k(i n t * * m, in t n, in t c,i n t *w , i n t * V )int jM a x = min( w n-1,c) ;/前 n -1 個(gè)物品f or (i nt j= 0 ; j v=jMax;j+) mn j =0;for (int j=w n; j <=c;j + +) m n j= V n;for(i nt i= n -1;i >1 ;i-)jMax=m i n(wi-1,c )for( i nt j= 0;j<=jMax;j+
31、)mi: j = mi + 1j:;for(in t j = w i;j < = c ;j + + )mij= max (m i+1j,mi+1j- wi+v i:);1 c=m2c;mif (c>=w 1m1c=m a x(m 1c,m2 c-w1+v1 );/找出最優(yōu)解,0表示不能裝,1表示能裝voi d trac eback(i n t * * m,i nt n, i nt c,i nt *x ,int *w) fo r (i nt i= 1 i fe ls e;ivn;i + +)(m i:c=mi+1 : c ) xi=0 ;xi=c-=wi;1;=(mn c = = 0
32、) ?0:1; xn nt main ()=new i ntN+ 1;w=n e w i ntN+1 ;w in t * N+ 1;i n t *vint *i n t *m=n eint *x=n e w int N +1;fo r (in t i =0; i<N+ 1 ;i+ +)m i = new int C+1;coutvv"輸入重量序列,"<<N< <"個(gè)"<<e ndl;for(i nt i = 1;i<=N;i+ +)ci n >>wi ;coutvv"輸入價(jià)值序列,&q
33、uot;<<N<< "個(gè)"<<e nd l; for (i n t i =1 ; i <=N;i+)c i n>> vi;k napsack(m,N,C , w ,v);tr aceback (m ,N,C ,x, w);co utv <"最優(yōu)值:"<<m 1C: v <e ndl;c ou tvv "是否裝入背包的情況:"f or(int i = 1 ; iv =N;i+)c ou t<<xi ;;f o r(int i=0; i <N
34、+ 1;i +)delete m i;dele t e m;retu r n 0;運(yùn)行結(jié)果S3籀入董O列M15 2 4 3輸入價(jià)值序見5個(gè)|3 4 2 7 1量?jī)?yōu)値:14 茜否裝入背包的情況:i L 0 1 QFiocess leturnel 0(0x0) SKecution time : I2< 736 sirr7、最優(yōu)二叉搜索樹#i n cl udev iostream#inc lud e<cmat h># i n cludevlimi t s># define N 1 0 0u si ng n ame spac e s t d;co nst doub l e MAX = nu merici
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度不動(dòng)產(chǎn)投資信托合同協(xié)議
- 2025年度夫妻財(cái)產(chǎn)約定與家庭財(cái)務(wù)規(guī)劃協(xié)議書模板
- 2025年度公廁保潔與智能設(shè)備維護(hù)服務(wù)合同
- 2025年度房屋遺產(chǎn)繼承與遺產(chǎn)分配及稅務(wù)籌劃協(xié)議
- 2025年度單價(jià)合同在新能源技術(shù)研發(fā)中的合同履行與經(jīng)濟(jì)效益
- 2025年度定向委培協(xié)議書:新材料研發(fā)人才定向培養(yǎng)協(xié)議
- 2025年度農(nóng)村自來水用戶用水糾紛處理合同
- 2025年度建筑材料經(jīng)銷商返點(diǎn)獎(jiǎng)勵(lì)協(xié)議
- 2025年度勞動(dòng)合同協(xié)商解除協(xié)議書-企業(yè)轉(zhuǎn)制員工安置協(xié)議
- 4S店裝飾維修服務(wù)合同
- 中職普通話教師教案模板
- 施工后期的場(chǎng)地恢復(fù)措施
- 七年級(jí)歷史下冊(cè) 第一單元 隋唐時(shí)期繁榮與開放的時(shí)代 第1課 隋朝的統(tǒng)一與滅亡說課稿1 新人教版
- 智能教育機(jī)器人AI項(xiàng)目策劃創(chuàng)業(yè)計(jì)劃書
- 《MATLAB編程及應(yīng)用》全套教學(xué)課件
- T-CCSAS 001-2018 危險(xiǎn)與可操作性分析(HAZOP分析)質(zhì)量控制與審查導(dǎo)則
- 2025年春人教版九年級(jí)英語下冊(cè) 2025年中考模擬測(cè)試卷
- 果園軌道運(yùn)輸施工方案
- 《醫(yī)療事故處理?xiàng)l例》解讀
- 《學(xué)位論文選題與寫作》教學(xué)大綱
- 廣西版五年級(jí)下冊(cè)美術(shù)全冊(cè)教案【完整版】
評(píng)論
0/150
提交評(píng)論