版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、華中科技大學 算法分析與設(shè)計實驗報告學生姓名:龐 亮 系別:軟件學院 專業(yè)與班號:軟件工程0805學號:U200818042實驗時間:第 三 周,星期三 ,晚上 實驗房間號:軟件學院五樓機房實驗名稱 作業(yè)排程和最長共同子序列算法實驗目的理解動態(tài)規(guī)劃算法設(shè)計思想,利用動態(tài)規(guī)劃算法設(shè)計方法解決作業(yè)排程和最長共同子序列問題。實驗條件硬件:計算機軟件:計算機程序語言開發(fā)平臺,如C、C+、Java、Matlab。學生:至少掌握一門計算機程序設(shè)計語言,如C、C+、Java、Matlab。實驗內(nèi)容及要求 描述并實現(xiàn)動態(tài)規(guī)劃的作業(yè)排程算法,并顯示下圖的排程結(jié)果。 描 述 并 實 現(xiàn) 最 長 共 同 子 序 列
2、 動 態(tài) 規(guī) 劃算法, 并顯示S1=ACCGGTCGAGATGCAG,S2 = GTCGTTCGGAATGCAT 的最長共同子序列。實驗原理1. 作業(yè)排程問題對于生產(chǎn)的每一個環(huán)節(jié),它不是從一生產(chǎn)線而來,就是從二生產(chǎn)線而來,而且擁有最優(yōu)子問題的結(jié)構(gòu),因此可以列出這個問題的狀態(tài)轉(zhuǎn)移方程如下圖所示??梢娒總€狀態(tài)都與前一個狀態(tài)的數(shù)值有關(guān),于是可以由底至上一步一步求得結(jié)果。2. 最長公共子序列問題LCS問題有最優(yōu)子結(jié)構(gòu):設(shè)X=和Y=為兩個序列,并設(shè)Z=為XY的任意一個LCS。1) 如果xm=yn,那么zk=xm=yn而且Zk-1是Xm-1和Yn-1的一個LCS;2) 如果xm!=yn,那么zk!=xm蘊
3、含Z是Xm-1和Y的一個LCS;3) 如果xm!=yn,那么zk!=yn蘊含Z是X和Yn-1的一個LCS.由此得出這個問題的狀態(tài)轉(zhuǎn)移方程為:算法具體代碼1. 作業(yè)排程問題/ work_flow.cpp : 定義控制臺應用程序的入口點。/#include stdafx.hint x1,x2;int e1,e2;int a2100;int t2100;int f2100;int path2101;int n;void init()FILE * fin=fopen(in.txt,r);fscanf(fin,%d,&n);fscanf(fin,%d%d,&e1,&e2);fscanf(fin,%d%d
4、,&x1,&x2);for(int i=0;in;i+)fscanf(fin,%d,&a0i);for(int i=0;in;i+)fscanf(fin,%d,&a1i);for(int i=0;in-1;i+)fscanf(fin,%d,&t0i);for(int i=0;in-1;i+)fscanf(fin,%d,&t1i);fclose(fin);int execute()f00=e1+a00;f10=e2+a10;for(int i=1;in;i+)if(f0i-1+a0i)(f1i-1+t1i-1+a0i)f0i=f0i-1+a0i;path0i=1;elsef0i=f1i-1+t1
5、i-1+a0i;path0i=2;if(f1i-1+a1i)(f0i-1+t0i-1+a1i)f1i=f1i-1+a1i;path1i=2;elsef1i=f0i-1+t0i-1+a1i;path1i=1;if(f0n-1+x1f1n-1+x2)pathnn=1;return f0n-1+x1;elsepathnn=2;return f1n-1+x2;int printpath(int a,int b)if(b=0)printf(%d %dn,a+1,b+1);return 0;printpath(pathab-1,b-1);printf(%d %dn,a+1,b+1);int _tmain(
6、int argc, _TCHAR* argv)init();printf(%dn,execute();printpath(pathnn-1,n-1);getchar();return 0;2. 最長共同子序列問題/ LCS.cpp : 定義控制臺應用程序的入口點。/#include stdafx.h#include string.hchar s1100;char s2100;int lcs100100;int path100100;int p,q;void init()FILE * fin=fopen(in.txt,r);fscanf(fin,%s,s1);fscanf(fin,%s,s2);
7、fclose(fin);void findLCS()lcs00=0;for(int i=1;i=strlen(s1);i+)lcsi0=0;for(int i=1;i=strlen(s2);i+)lcs0i=0;for(int i=1;i=strlen(s1);i+)for(int j=1;jlcsij-1)lcsij=lcsi-1j;pathij=0;elselcsij=lcsij-1;pathij=1;int printString(int x,int y)if(x=0 | y=0)return 0;if(pathxy=2)printString(x-1,y-1);printf(%c,s1
8、x-1);else if(pathxy=0)printString(x-1,y);else if(pathxy=1)printString(x,y-1);int _tmain(int argc, _TCHAR* argv)init();findLCS();printString(strlen(s1),strlen(s2);getchar();return 0;思考題 動態(tài)規(guī)劃算法范式是什么?動態(tài)規(guī)劃算法的設(shè)計分為4個步驟:1) 描述最優(yōu)解的結(jié)構(gòu)。2) 遞歸定義最優(yōu)解的值。3) 按自底向上的方式計算最優(yōu)解的值。4) 由計算出的結(jié)果構(gòu)造一個最優(yōu)解。 利用動態(tài)規(guī)劃算法設(shè)計方法解決矩陣鏈相乘問題?矩陣鏈相乘的問題狀態(tài)轉(zhuǎn)移方程如下:實驗體會本次試驗主要研究動態(tài)規(guī)劃問題。了解了動態(tài)規(guī)劃算法設(shè)計的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 店長年度考核的個人總結(jié)范文(3篇)
- 珠寶行業(yè)工作計劃6篇
- 高中技術(shù)《第二章流程與設(shè)計》單元檢測
- 有關(guān)輔導員開學的講話稿范文(3篇)
- 新教材高考地理二輪復習二7類選擇題技法專項訓練技法2直選法含答案
- 第24章 解直角三角形 綜合檢測
- 第二十六章 解直角三角形 綜合檢測
- 山西省太原市2024-2025學年高三上學期期中物理試卷(含答案)
- 河南省周口市扶溝縣2024-2025學年六年級上學期11月期中道德與法治試題
- 2024-2025中山市共進聯(lián)盟七年級上期中考試生物試卷
- (統(tǒng)編2024版)道德與法治七上10.1愛護身體 課件
- GB/T 30391-2024花椒
- 供電線路維護合同
- 鞋子工廠供貨合同模板
- 2024碼頭租賃合同范本
- 木材采運智能決策支持系統(tǒng)
- 上海市市轄區(qū)(2024年-2025年小學四年級語文)部編版期末考試(下學期)試卷及答案
- 認識梯形(課件)四年級上冊人教版
- 【期中考后反思】《反躬自省,砥礪奮進》-2022-2023學年初中主題班會課件
- 2019新教材人教版生物必修1教材課后習題答案
- 2024年中國白酒行業(yè)數(shù)字化轉(zhuǎn)型研究報告-36氪-202409
評論
0/150
提交評論