各个击破Divide-and-Conquer动态规划DynamicProgramming.PPT

各个击破Divide-and-Conquer动态规划DynamicProgramming.PPT

各个击破Divide-and-Conquer动态规划DynamicProgramming

連鎖矩陣相乘 連鎖矩陣相乘 因為結合律成立,故 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

文档评论(0)

1亿VIP精品文档

相关文档