




免費預(yù)覽已結(jié)束,剩余1頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
動態(tài)規(guī)劃之矩陣連乘新一篇:動態(tài)創(chuàng)建二維數(shù)組作者:liguisenBlog:/liguisen以下內(nèi)容參考(摘抄)算法設(shè)計與分析,王曉東編著,清華大學(xué)出版社2003年1月第1版。給定n個矩陣A1,A2,An,其中Ai與Ai+1是可乘的,i=1,2,n-1。考察這n個矩陣的連乘積A1A2An。由于矩陣乘法滿足結(jié)合律,故計算矩陣的連乘積可以有許多不同的計算次序,這種計算次序可以用加括號的方式來確定。若一個矩陣連乘積的計算次序完全確定,則可以依此次序反復(fù)調(diào)用2個矩陣相乘的標(biāo)準(zhǔn)算法(有改進(jìn)的方法,這里不考慮)計算出矩陣連乘積。若A是一個pq矩陣,B是一個qr矩陣,則計算其乘積C=AB的標(biāo)準(zhǔn)算法中,需要進(jìn)行pqr次數(shù)乘。矩陣連乘積的計算次序不同,計算量也不同,舉例如下:先考察3個矩陣A1,A2,A3連乘,設(shè)這三個矩陣的維數(shù)分別為10100,1005,550。若按(A1A2)A3)方式需要的數(shù)乘次數(shù)為101005105507500,若按(A1(A2A3)方式需要的數(shù)乘次數(shù)為100550101005075000。下面使用動態(tài)規(guī)劃法找出矩陣連乘積的最優(yōu)計算次序。1, 設(shè)矩陣連乘積AiAi+1Aj簡記為Ai:j,設(shè)最優(yōu)計算次序在Ak和Ak+1之間斷開,則加括號方式為:(AiAi+1Ak)(Ak+1Aj)則依照這個次序,先計算Ai:k和AK+1:j然后再將計算結(jié)果相乘,計算量是:Ai:k的計算量加上AK+1:j的計算量再加上它們相乘的計算量。問題的一個關(guān)鍵是:計算Ai:j的最優(yōu)次序所包含的兩個子過程(計算Ai:k和AK+1:j)也是最優(yōu)次序。2, 設(shè)計算Ai:j所需的最少數(shù)乘次數(shù)為mij。i=j時為單一矩陣,則mii=0,ij時,設(shè)最優(yōu)計算次序在Ak和Ak+1之間斷開,則mij=mik+mk+1j+pipk+1pj+1,其中p表示數(shù)組的維數(shù),例如A0到A5共6個數(shù)組(為了C語言的描述方便,下標(biāo)從0開始),他們表示如下:/p0:第一個矩陣的行數(shù)/p1:第一個矩陣的列數(shù),第二個矩陣的行數(shù)/p2:第二個矩陣的列數(shù),第三個矩陣的行數(shù)k此時并未確定,需要從i到j(luò)-1遍歷以尋找一個最小的mij。我們把這個最小的k放在sij。以下是完整實現(xiàn)代碼,以一個具體的例子實現(xiàn),稍加修改即可通用。#include using namespace std;/MatrixChain計算mij所需的最少數(shù)乘次數(shù)/并記錄斷開位置sij/void MatrixChain(int *p,int n,int *m,int *s)for(int i=0;in;i+)mii=0;/單個矩陣相乘,所需數(shù)乘次數(shù)為/以下兩個循環(huán)是關(guān)鍵之一,以個數(shù)組為例(為描述方便,mij用ij代替)/需按照如下次序計算/01 12 23 34 45/02 13 24 35/03 14 25/04 15/05/下面行的計算結(jié)果將會直接用到上面的結(jié)果。例如要計算,就會用到,或者,或者,或者,等等for(int r=1;rn;r+)for(int i=0;in-r;i+)int j=i+r;/首先在i斷開,即(Ai*(Ai+1.Aj)mij=mii+mi+1j+pi*pi+1*pj+1;sij=i;for(int k=i+1;kj;k+)/然后在k(從i+1開始遍歷到j(luò)-1)斷開,即(Ai.Ak)*(Ak+1.Aj)int t=mik+mk+1j+pi*pk+1*pj+1;if(tmij)/找到更好的斷開方法mij=t;/記錄最少數(shù)乘次數(shù)sij=k;/記錄斷開位置/如果使用下面注釋的循環(huán),則是按照如下次序計算/01 02 03 04 05/12 13 14 15/23 24 25/34 35/45/當(dāng)要計算時,會用到,而此時并沒有被計算出來。/*for(int i=0;in;i+)for( int j=i+1;jn;j+)mij=mii+mi+1j+pi*pi+1*pj+1;sij=i;for(int k=i+1;kj;k+)int t=mik+mk+1j+pi*pk+1*pj+1;if(tmij)mij=t;sij=k;*/Traceback打印Ai:j的加括號方式/void Traceback(int i,int j,int *s) /sij記錄了斷開的位置,即計算Ai:j的加括號方式為:/(Ai:sij)*(Asij+1:j)if(i=j)return;Traceback(i,sij,s);/遞歸打印Ai:sij的加括號方式Traceback(sij+1,j,s);/遞歸打印Asij+1:j的加括號方式/能走到這里說明i等于sij,sij+1等于j/也就是說這里其實只剩下兩個矩陣,不必再分了coutAi和A(sij+1)相乘endl;int _tmain(int argc, _TCHAR* argv)int n=6;/矩陣的個數(shù)int *p=new intn+1;/p0:第一個矩陣的行數(shù)/p1:第一個矩陣的列數(shù),第二個矩陣的行數(shù)/p2:第二個矩陣的列數(shù),第三個矩陣的行數(shù)p0=30;p1=35;p2=15;p3=5;p4=10;p5=20;p6=25;int *m,*s;m=new int*n;for( int i=0;in;i+)mi=new intn;s=new int*n;for(int i=0;in;i+)si=new intn;MatrixChain(p,n,m,s);Traceback(0,n-1,s); for(int i=0;in;i+) delete mi;mi=NULL; delete si;si=NULL; delete m; m=NULL; delete s; s = NULL; delete p; p = NULL; ret
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年金融科技在財富管理領(lǐng)域的創(chuàng)新應(yīng)用研究
- 2025年在線教育平臺課程進(jìn)度跟蹤與用戶滿意度評價報告
- 工業(yè)互聯(lián)網(wǎng)平臺入侵檢測系統(tǒng)2025年可視化安全監(jiān)控優(yōu)化報告001
- 深度解讀2025年不良資產(chǎn)處置市場格局與創(chuàng)新模式發(fā)展報告
- 2025年醫(yī)院電子病歷系統(tǒng)優(yōu)化與醫(yī)療信息化人才培養(yǎng)策略報告
- 2025屆廣東省廣州市南沙區(qū)八年級英語第二學(xué)期期中達(dá)標(biāo)測試試題含答案
- 咨詢工程師2017課件
- 2025年醫(yī)藥企業(yè)研發(fā)外包(CRO)模式下的臨床試驗監(jiān)測與數(shù)據(jù)收集報告
- 周長課件介紹
- 麻醉護(hù)理制度培訓(xùn)課件
- 小學(xué)用電安全課件
- 2024年河南省蘭考縣教育局公開招聘試題含答案分析
- 2025年北京市高考英語試卷真題(含答案解析)
- 商洛學(xué)院《大學(xué)學(xué)術(shù)綜合英語》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年高考英語全國二卷聽力試題答案詳解講解(課件)
- 招商運營筆試題目及答案
- 湟水河河湟新區(qū)段北岸防洪生態(tài)綜合治理項目 社會穩(wěn)定風(fēng)險評估報告
- JG/T 272-2010預(yù)制高強(qiáng)混凝土薄壁鋼管樁
- JG/T 266-2011泡沫混凝土
- 雜屋轉(zhuǎn)讓合同協(xié)議書
- 智能藥盒創(chuàng)新創(chuàng)業(yè)計劃書
評論
0/150
提交評論