矩陣連乘演算法精講

鴨脖發表於2012-06-10

今天看了好久的矩陣連乘演算法,總算有了一點頭緒,現在來細細總結一下。

首先我們知道的是,矩陣連乘演算法是一種動態規劃法,那麼和多段圖和弗洛伊德演算法一樣,它也體現了動態規劃法的特點。像弗洛伊德演算法,它的動體現在每加進一個節點,那麼d和path者兩個二維表都會發生相應的變化,且朝著全域性最優解的方向去變化。那麼矩陣連乘演算法其實也是一樣的。這裡面也用到了兩個二維表,分別是m和s。弗洛伊德演算法其實和dijkstra演算法的思想是一致的,d和path表的改變都依賴於下一個加進來的節點。而矩陣連乘演算法中兩個二維表的改變則依賴於該點左下角的值。如下圖:


演算法的步驟是這樣的:

1、主對角線上為0

2、次對角線上的設為初值為順序計算,而每次我們只需要左下方的值,所以每計算一次次對角線上的值,相應的我們可以從上到下計算得出從i為0到i為j的值,因為其左下方的值已經計算出來.計算的方法還需要一個for迴圈,假設斷點的位置是中間的任何一個,然後通過比較得出m值最小的那個斷點,並且修改兩個二維表

3、最後一步我們得出來的便是m【0】【n-1】

相關文章