矩陣鏈乘積

矩陣鏈乘積 ( 或 ) 是可用動態規劃解決的最佳化問題 。 給定一序列矩陣 ， 期望求出相乘這些矩陣的最有效方法 。 此問題並不是真的去執行其乘法 ， 而只是決定執行乘法的順序而已 。 因爲矩陣乘法具有結合律 ， 所有其運算順序有很多種選擇 。 換句話說 ， 不論如何括號其乘積 ， 最後結果都會是一樣的 。 例如 ， 若有四個矩陣 、 、 和 ， 將可以有 ： 但括號其乘積的順序是會影響到需計算乘積所需簡單算術運算的數目 ， 即其效率 。 例如 ， 設爲一矩陣 ， 爲矩陣與爲矩陣 ， 則 ： 有個運算 有個運算 明顯地 ， 第一種方式要有效多了 。 既然已確認過此問題了 ， 那要如何決定n個矩陣相乘的最佳順序呢 ？ 可以比較每一順序的運算量 （ 使用蠻力 ） ， 但這將需要時間O ( 2n ) ， 是一種非常慢且對大n不實在的方法 。 那解決方法 ， 如我們將看到的 ， 是將問題分成一套相關的子問題 。 以解答子問題一次而再使用其解答數次 ， 即可以徹底地得出其所需時間 。 此一方法稱爲動態規劃 。