матрица Ai имеет размер pi-1 × pi при i = 1,2,2,…,n
на входе последовательность
length[p] = n+1
Используются вспомогательные таблицы
m[1..n,1..n]
s[1..n,1..n]
Matrix-Chain-Order (p)
1 n ¬ length[p] - 1
2 for i ¬ 1 to n
3 do m[i,i] ¬ 0
4 for l ¬ 2 to n
5 do for i ¬ 1 to n – l +1
6 doj ¬ i + l - 1
7 m[i, j] ¬ ∞
8 for k ¬ i toj –1
9 do q ¬ m[i,k]+m[k + 1,j] + pi-1 pk pj
10 if q < m[i,j]
11 thenm[i,j] ¬ q
12s[i,j] ¬ k
13 returnm, s
Шаг 4: построение оптимального решения
Matrix-Chain-Multiply (A,s,i,j)
1 if j > i
2 thenX ¬ Matrix-Chain-Multiply (A,s,i, s[i,j])
3 Y ¬ Matrix-Chain-Multiply (A,s, s[i,j]+1 ,j)
4 returnMatrix-Multiply (X, Y)
5 else returnA