4

我想了解什麼是鏈式矩陣乘法以及它如何與常規乘法不同。我已經檢查了幾位來源,但似乎都在學術上解釋了我的理解。什麼是鏈式矩陣乘法?

我想這是一種動態規劃算法的一種形式,以優化的方式實現操作,但我沒有更進一步。

謝謝

回答

6

鏈式乘法只是一系列乘法運算。 A B C D 。最初它對編程和動態編程沒有任何幫助。但是有一個很好的規則(結合規律)A *(B * C)=(A * B)* C,但是這些表達式的計算代價是不同的。所以有一個最佳括號分配的任務。它是介紹。現在閱讀維基。

+1

它是關於動態規劃,這是何等的動態編程工作的一個簡單的解釋。你可以看看CLRS瞭解更多細節。 – DarthVader 2010-05-19 17:57:38

+0

@安德雷那個好規則被稱爲聯想法。 – Geek 2012-09-04 09:29:00

+1

@Geek這是很久以前,我忘了我爲什麼沒有提到它,要麼我忘了名字或只是添加一些幽默。 – Andrey 2012-09-04 10:01:41

0

矩陣鏈乘積是可以由動態規劃方法待解決的問題,它需要以乘以乘法的最小數目的給定矩陣適當括號的矩陣。 例

M1 = 12 x 20 
M2 = 20 x 15 
M3 = 15 x 30 

有解決這個問題的方法有兩種,取決於從你開始乘以你的矩陣。

1). ((M1 x M2) x M3) 
2). (M1 x (M2 x M3)) 

首先一個只需要3600 + 5400 = 乘法。
第二種解決方案需要9,000 + 7,200 = 16,200次乘法。
這裏我們將首先選擇第二,因爲它需要更少的乘法次數。
你的程序必須能夠告訴用戶如何圓括號矩陣,這樣它最大限度地減少乘法(優化問題