- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(Greedy Method) 各个击破(Divide-and-Conquer)
連鎖矩陣相乘 連鎖矩陣相乘 因為結合律成立,故 n 個矩陣相乘,最多有 種乘法方式。例如:4 個矩陣相乘 A, B, C, D 會有 5 種乘法方式 A (B (C D)) (A B) (C D) A ((B C) D) ((A B) C) D (A (B C)) D 每種方式所需乘法計算的次數並不相同,如何才能有最少的相乘次數? 連鎖矩陣相乘 若用暴力法 (Brute-force) 解,時間複雜度為 Ω(4n/n3/2) 若Ai, Ai+1, …, Aj 在某組合方式所需的乘法次數為最小 (最佳),則必存在一個k,使得Ai, Ai+1, …, Ak 和Ak+1, Ak+2, …, Aj皆為最佳。 ((Ai Ai+1 … Ak )(Ak+1 Ak+2 …, Aj)) 最佳組合 最佳子組合 最佳子組合 連鎖矩陣相乘 * Matrix Chain的遞迴式 此遞迴式涵蓋以下兩個規則: Ni, j = 矩陣 Ai 乘到 Aj 所需的最少乘法數 (其中 i j) Ni,i = 0 di 表示矩陣之維度(列或行) 第1個矩陣維度應為 d0 × d1,第2個矩陣維度應為 d1 × d2 ,最後一個矩陣維度應為dn-1 × dn 連鎖矩陣相乘 i j 1 2 3 4 1 0 1200 1200 1232 2 0 720 912 3 0 2880 4 0 A1 A2 A3 A4 A1 A2 A2A3 A3A4 A1 A2A3 A2A3A4 A1 A2A3A4 本例中矩陣編號由 A1 開始,所以矩陣維度也從 d1 × d2 開始 連鎖矩陣相乘 矩陣相乘路徑可以另外設定一個陣列 Pi,j 記錄每次選擇的分割點,即 k 值,再由最佳解反推回去即可。 i j 1 2 3 4 1 0 1200 1200 1232 2 0 720 912 3 0 2880 4 0 i j 1 2 3 4 1 1 1 1 2 2 2 2 3 3 3 3 4 4 Ni,j Pi,j Algorithm MatrixChain(d0, … , dn) Input: Sequence d0, … , dn of integers. Output: for i, j = 0, … , n-1, the minimum number of multiplications Ni, j need to compute the product Ai × Ai+1 × … × Aj, where Ak is a dk × dk+1 matrix for i ? 0 to n-1 do Ni, i ? 0 for b ? 1 to n-1 do for i ? 0 to n-b-1 do j ? i+b Ni, j ? +∞ for k ? i to j-1 do Ni, j ? min { Ni, j , Ni, k + Nk+1, j + di dk+1 dj+1} 0/1 Knapsack Problem 有 N 種物品,每種都只有1個。其中第 i 種物品(i=1..N),價值為 c[i],重量為 w[i]。今有一個背包,可以負重 W,問如何可以得到最大價值 V? 假設有一個背包可以負重 10 公斤,有5個物品,價值分別為 10, 20, 30, 40, 50,重量分別為 2, 4, 3, 1, 5,問可以取到的最大價值為何? 0/1 Knapsack Problem P[i, j] 有 i 種物品,背包可負重 j,所獲得最大價值。 初始值 P[0, 0] = 0 初始值 P[0, 1] = … = P[0,10] = -1 恰好裝滿 P[0, 1] = … = P[0, 10] = 0 不一定要裝滿 0/1 Knapsack Problem P[i, j] = Max{ P[i-1, j] , P[i-1, j-w[i] ] + c[i] } 對 i 項物品 不取 此時背包最大價值為 P[i-1, j] i 2公斤 5 P[i, 10] = P[i-1, 10] 取 P[i-1, j-w[i] ] + c[i] i 2公斤 5 P[i, 10] = P[i-1, 8] + 5 0/1 Knapsack Problem for (int i=0; i 物品的數量; i++) for (int j=背包負重; j0; j--) P[i, j] = Max{ P[i-1, j] , P[i-1, j-w[i]
您可能关注的文档
- (1)流体在圆形管道中作层流流动,如果只将流速增加一倍,则阻力损失为.doc
- (+) 核外电子.PPT
- (1H06)计算机(97年7月18日十七版)勘误表P.5表中第四代执行速度10.doc
- (A)梅雨带来的雨量最多(B).ppt
- (B)PDA(C)超级电脑(D)-台北市私立十信高级中学.doc
- (Hz)电流形式低频(低周波).ppt
- (N)1.675×10-27kg电中性{{核内质子数=核电荷数=核外-温州二中.PPT
- (SPSS13.0)变量加权.ppt
- (A) 同源器官及趋异演化.PPT
- (mol),摩尔质量、气体摩尔体积.PPT
- 施工现场断排水标准做法(可编辑).pptx
- 特大型体育场馆项目管理复盘(可编辑).pptx
- 山地环境超高层智能建造关键技术(可编辑).pptx
- 超高层装配式住宅设计与施工(可编辑).pptx
- 高空作业防坠落措施图示手册(可编辑).pptx
- 2025年重庆市忠县忠县白石镇国民经济和社会发展第十五个五年规划.docx
- 2025年山东省德州市平原县恩城镇国民经济和社会发展第十五个五年规划.docx
- 2025年山东省莱芜市钢城区黄庄镇国民经济和社会发展第十五个五年规划.docx
- 2025年山东省临沂市蒙阴县桃墟镇国民经济和社会发展第十五个五年规划.docx
- 2025年山东省临沂市河东区郑旺镇国民经济和社会发展第十五个五年规划.docx
文档评论(0)