Can you summarize the following document?
        
  一開始,假定真的想知道的是乘完矩陣所需的最小成本,或算術運算的最小量。若只有兩個矩陣相乘,則只會有一種方法去乘它們,所有其最小成本為乘積的成本。一般地,可以用下列的遞迴演算法求出最小成本:  例如,若有四矩陣formula_16,計算每一分法formula_17、formula_18和formula_19所需的成本,遞迴計算formula_20、formula_21、formula_22和formula_23的最小成本。然後選擇最好的一個。這方法不只找出其最小成本,也決定做這乘積的最好辦法:盡只是以最小總成本分開,並對每一因子做相同的事情。  不幸地,若真實作此演算法,將會發現它和比較每一順序的運算量一樣慢!發生什麼事了嗎?答案是因為多做了許多多餘的工作。例如,上述遞迴計算了formula_20與formula_21以找到最小成本,但在找出formula_20的最小成本時,亦需要去找出formula_21的最小成本。當遞迴較深時,會有越來越多這種不需要的重複產生。  一簡單的解決方法為備忘錄法:每次計算乘完一特定子序列所需的最小成本時,儲存其數值。若再遇到相同子序列時,便只需讀取已存的答案,而不需要再重計算一次。當formula_28個矩陣會有約formula_29個不同的子序列,其所需空間是合理的。可證明此一簡單的技術可使得運算時間由formula_30降至formula_31,使得其對實際應用有足夠的效率。此為由上而下動態規劃。  虛擬碼:  另一種解決方法是預先知道需要計算的成本並事先計算它們。其運作如下:

  1981年由Hu與Shing發表了時間複雜度formula_36的演算法。
矩陣鏈乘積(英語:Matrix chain multiplication,或英語:Matrix Chain Ordering Problem,英語:MOCP)是可用動態規劃解決的最佳化問題。給定一序列矩陣,期望求出相乘這些矩陣的最有效方法。此問題並不是真的去"執行"其乘法,而只是決定執行乘法的順序而已。