SlideShare a Scribd company logo
Matrix - Chain Multiplication
Dr. Kiran K
Assistant Professor
Department of CSE
UVCE
Bengaluru, India.
Introduction
Problem Statement:
Given a chain of n matrices <A1, A2, . . . , An>,
Ai has dimension pi-1 x pi , (i = 1, 2, . . . , n)
Fully Parenthesize the product A1 A2 . . . An in a way that Minimizes the number of
Scalar Multiplications.
Fully Parenthesize:
 A product of matrices is Fully Parenthesized if it is either
• A Single Matrix or
• Product of Two Fully Parenthesized Matrix Products, surrounded by
parentheses.
Eg.:
The product A1A2A3A4 of the matrices <A1, A2, A3, A4>, can be Fully
Parenthesized in Five distinct ways:
• (A1(A2 (A3A4)))
• (A1((A2A3) A4))
• ((A1A2)(A3A4))
• ((A1(A2A3))A4)
• (((A1A2)A3)A4)
Introduction…
MATRIX-MULTIPLY (A, B)
If (A.columns  B.rows)
Error “Incompatible Dimensions”
Else
Let C be a new A.rows x B.columns Matrix
For (i = 1 to A.rows)
For (j = 1 to B.columns)
cij = 0
For (k = 1 to A.columns)
cij = cij + aik . bkj
return C
Order of A: i x k
Order of B: k x j
Order of C: i x j
Number of Scalar Multiplications:
k multiplications for each of the
(i * j) entries of C.
= i * k * j
= i k j
Multiplication of Two Matrices
Eg.:
<A1, A2, A3>
A1 - 10 x 100
A2 - 100 x 5
A3 - 5 x 50
Cost of Matrix Multiplication
((A1A2) A3)
A1A2 - 10 * 100 * 5 = 5000
((A1A2) A3) – 10 * 5 * 50 = 2500
Total 5000 + 2500
= 7500 Scalar Multipliations
(A1 (A2A3))
A2A3 – 100 * 5 * 50 = 25000
(A1 (A2A3) – 10 * 100 * 50 = 50000
Total 25000 + 50000
= 75000 Scalar Multiplications
Parenthesizing a chain of matrices can have a dramatic impact on the cost of product
evaluation.
Goal:
To determine an
Order for Multiplying Matrices
that has the
Lowest Cost
Let P(n) - Number of Alternative Parenthesizations of a sequence of n matrices.
• n = 1, Only one matrix:
• Only one way to fully parenthesize the matrix product.
• n > = 2:
• A Fully Parenthesized matrix product is the Product of Two Fully
Parenthesized Matrix Subproducts.
• Split between the two subproducts may occur between the kth and (k + 1)st
matrices for any k = 1, 2, . . . , n - 1.
Counting the Number of Parenthesizations
Dynamic-programming method is used to determine how to optimally parenthesize
a matrix chain:
1. Characterize the structure of an optimal solution.
2. Recursively define the value of an optimal solution.
3. Compute the value of an optimal solution.
4. Construct an optimal solution from computed information
Optimal Parenthesization of Matrix-Chain
• Ai . . . j : Matrix that results from evaluating the product Ai Ai+1 . . . Aj. i  j.
• If (i < j)
Parenthesize Ai Ai+1 . . . Aj by splitting the product between Ak and Ak+1
for i  k < j.
→ Compute matrices Ai . . . k and Ak + 1 . . . j and then multiply them together to
produce the final product Ai . . . j.
• Cost of Parenthesizing = Cost of Computing Ai . . . k + Cost of Computing Ak + 1 . . . j
+ Cost of Multiplying them together.
1. Structure of an Optimal Parenthesization
• Cost of an optimal solution is defined recursively in terms of optimal solutions to
sub-problems.
• Sub-problems: Problems of determining the minimum cost of parenthesizing
Ai A i + 1 . . . A j for 1  i  j  n.
• m [i, j]: Minimum number of scalar multiplications to compute matrix Ai . . . j
 if (i = j)
There is only one matrix A i . . . i = A 1
m [i, j] = 0
 If (i < j)
m [i, j] = Cost of Computing Ai . . . k + Cost of Computing Ak + 1 . . . j +
Cost of Multiplying them together.
m [i, j] = m [i, k] + m [k + 1, j] + pi – 1 pk pj
2. A Recursive solution
 k varies from i to j – 1. Hence,
• s [i, j]: Value of k at which the Split is an Optimal Parenthesization.
A Recursive Solution…
• pi – 1 x pi - Dimension of matrix A i. i = 1, 2, . . . , n
• p = < p0 , p1 , . . . pn> - List of Matrix Dimensions.
• m [1 . . n, 1 . . n] - Table storing the Costs m [i, j]
• s [1 . . n - 1, 2 . . n] - Table storing the Index of k that achieved
optimal cost in computing m [i, j].
Used to construct an optimal solution.
• m [1, n] - Lowest cost to compute A 1 . . n
3. Computing the Optimal Costs
MATRIX-CHAIN-ORDER (p)
n = p.length - 1
let m [1 . . n, 1 . . n] and s [1 . . n - 1, 2 . . n] be new tables
For (i = 1 to n)
m [i, i] = 0
For (l = 2 to n)
For (i = 1 to n - l + 1)
j = i + l – 1
m [i, j] = 
For (k = i to j – 1)
q = m [i, k] + m [k + 1, j] + pi-1 pk pj
If (q < m [i, j])
m [i, j] = q
s [i, j] = k
return m and s
Computing the Optimal Costs…
Running Time : O (n3)
Space to store Tables m and s : O (n2)
Example
n = 6
pi = 30, 35, 15, 5, 10, 20, 25
Table m:
• Order: n x n
• i - rows and j - columns
• Only the lower half of the
table upto (i, i) gets filled
because 1  i  j  n
Matrix A1 A2 A3 A4 A5 A6
Dimension 30 x 35 35 x 15 15 x 5 5 x 10 10 x 20 20 x 25
1 2 3 4 5 6
1 0
2 0
3 0
4 0
5 0
6 0
If no. of matrices = 1, No. of ways to
parenthesize = 0. i.e., m (i, i) = 0
m [1, 1] = 0, m [2, 2] = 0, m [3, 3] = 0
m [4, 4] = 0, m [5, 5] = 0, m [6, 6] = 0
j
i
Tablem
Example…
• l = 2 → 2 Matrices
• Matrices: A1 A2, A2 A3, A3 A4, A4 A5, A5 A6
• No. of positions where split can occur = 1. Therefore, k = 1, 2, 3, 4, 5
respectively.
• Number of different parenthesizations:
A1 A2: m [1, 2] = m [1, 1] + m [2, 2] + p0 p1 p2 = 0 + 0 + 30 x 35 x 15 = 15,750
s [1, 2] = 1
A2 A3: m [2, 3] = m [2, 2] + m [3, 3] + p1 p2 p3 = 0 + 0 + 35 x 15 x 05 = 2,625
s [2, 3] = 2
A3 A4: m [3, 4] = m [3, 3] + m [4, 4] + p2 p3 p4 = 0 + 0 + 15 x 05 x 10 = 750
s [2, 3] = 3
A4 A5: m [4, 5] = m [4, 4] + m [5, 5] + p3 p4 p5 = 0 + 0 + 30 x 35 x 15 = 1,000
s [1, 2] = 4
A5 A6: m [5, 6] = m [5, 5] + m [6, 6] + p4 p5 p6 = 0 + 0 + 10 x 20 x 25 = 5,000
s [1, 2] = 5
Example…
n = 6; pi = 30, 35, 15, 5, 10, 20, 25; l = 2 i = 1 to n - l + 1; j = i + l – 1; k = i to j – 1
q = m [i, k] + m [k + 1, j] + pi-1 pk pj
i = 1
j = 1+2-1 = 2
i = 2
j = 2+2-1 = 3
i = 3
j = 3+2-1 = 4
k = 1
q = m [1,1] + m [2,2] + p0 p1 p2
= 0 + 0 + 30 x 35 x 15 = 15,750
k = 2
q = m [2,2] + m [3,3] + p1 p2 p3
= 0 + 0 + 35 x 15 x 5 = 2,625
k = 3
q = m [3,3] + m [4,4] + p2 p3 p4
= 0 + 0 + 15 x 5 x 10 = 750
m [1, 2] = 15,750
s [1, 2] = 1
m [2, 3] = 2,625
s [2, 3] = 2
m [3, 4] = 750
s [3, 4] = 3
i = 4
j = 4+2-1 = 5
i = 5
j = 5+2-1 = 6
k = 4
q = m [4,4] + m [5,5] + p3 p4 p5
= 0 + 0 + 30 x 35 x 15 = 1,000
k = 5
q = m [5,5] + m [6,6] + p4 p5 p6
= 0 + 0 + 10 x 20 x 25 = 5,000
m [4, 5] = 1,000
s [4, 5] = 4
m [5, 6] = 5,000
s [5, 6] = 5
Example…
1 2 3 4 5 6
1 0 15,750
2 0 2,625
3 0 750
4 0 1,000
5 0 5,000
6 0
j
i
Table m 1 2 3 4 5 6
1 1
2 2
3 3
4 4
5 5
Table s
j
i
Example…
• l = 3 → 3 Matrices
• Matrices: A1 A2 A3, A2 A3 A4, A3 A4 A5, A4 A5 A6
• No. of positions where split can occur = 2.
Therefore, k = (1, 2), (2, 3) (3, 4), (4, 5) respectively.
• Number of different parenthesizations:
A1 A2 A3 :
m [1, 1] + m [2, 3] + p0 p1 p3 = 0 + 2625 + 30 x 35 x 05 = 7,875
m [1, 2] + m [3, 3] + p0 p2 p3 = 15750 + 0 + 30 x 15 x 05 = 18,000
s [1, 3] = 1
A2 A3 A4 :
m [2, 2] + m [3, 4] + p1 p2 p4 = 0 + 750 + 30 x 15 x 10 = 6,000
m [2, 3] + m [4, 4] + p1 p3 p4 = 2625 + 0 + 35 x 05 x 10 = 4,375
s [2, 4] = 3
m [1, 3] = min
= 4,375m [2, 4] = min
= 7,875
Example…
A3 A4 A5 :
m [3, 3] + m [4, 5] + p2 p3 p5 = 0 + 1000 + 15 x 05 x 20 = 2,500
m [3, 4] + m [5, 5] + p2 p4 p5 = 750 + 0 + 15 x 10 x 20 = 3,750
s [3, 5] = 3
A4 A5 A6 :
m [4, 4] + m [5, 6] + p3 p4 p6 = 0 + 5000 + 05 x 10 x 25 = 6,250
m [4, 5] + m [6, 6] + p3 p5 p6 = 1000 + 0 + 05 x 20 x 25 = 3,500
s [4, 6] = 5
m [3, 5] = min
= 3,500m [4, 6] = min
= 2,500
Example…
n = 6; pi = 30, 35, 15, 5, 10, 20, 25; l = 3 i = 1 to n - l + 1; j = i + l – 1; k = i to j – 1
q = m [i, k] + m [k + 1, j] + pi-1 pk pj
i = 1
j = 1+3-1 = 3
i = 2
j = 2+3-1 = 4
k = 1
q=m[1,1]+m[2,3]+ p0 p1 p3
=0+2625+30x35x5
q = 7,875
k = 2
q=m[1,2]+m[3,3]+ p0 p2 p3
=15750+0+30x15x5
q = 18,000
k = 2
q=m[2,2]+m[3,4]+ p1 p2 p4
=0+750+35x15x10
q = 6,000
k = 3
q=m[2,3]+m[4,4]+ p1 p3 p4
=2625+0+35x5x10
q = 4,375
m [1, 3] = min (7875, 18000) = 7,875
s [1, 3] = 1
m [2, 4] = min (6000, 4375) = 4,375
s [2,4] = 3
i = 3
j = 3+3-1 = 5
i = 4
j = 4+3-1 = 6
k = 3
q=m[3,3]+m[4,5]+ p2 p3 p5
=0+1000+15x5x20
q = 2,500
k = 4
q=m[3,4]+m[5,5]+ p2 p4 p5
=750+0+15x10x20
q = 3,750
k = 4
q=m[4,4]+m[5,6]+ p3 p4 p6
=0+5000+5x10x25
q = 6,250
k = 5
q=m[4,5]+m[6,6]+ p3 p5 p6
=1000+0+5x20x25
q = 3,500
m [3, 5] = min (2500, 3750) = 2,500
s [3, 5] = 3
m [4, 6] = min (6250, 3500) = 3,500
s [4, 6] = 5
Example…
1 2 3 4 5 6
1 0 15,750 7,875
2 0 2,625 4,375
3 0 750 2,500
4 0 1,000 3,500
5 0 5,000
6 0
j
i
Table m 1 2 3 4 5 6
1 1 1
2 2 3
3 3 3
4 4 5
5 5
Table s
j
i
Example…
• l = 4 → 4 Matrices
• Matrices: A1 A2 A3 A4, A2 A3 A4 A5, A3 A4 A5 A6
• No. of positions where split can occur = 3.
Therefore, k = (1, 2, 3), (2, 3, 4) (3, 4, 5) respectively.
• Number of different parenthesizations:
A1 A2 A3 A4 :
m [1, 1] + m [2, 4] + p0 p1 p4 = 0 + 4375 + 30 x 35 x 10 = 14,875
m [1, 4] = min m [1, 2] + m [3, 4] + p0 p2 p4 = 15750 + 750 + 30 x 15 x 10 = 21,000 = 9,375
m [1, 3] + m [4, 4] + p0 p3 p4 = 7875 + 0 + 30 x 5 x 10 = 9,375
s [1, 4] = 1
Example…
A2 A3 A4 A5 :
m [2, 2] + m [3, 5] + p1 p2 p5 = 0 + 2500 + 35 x 15 x 20 = 13,000
m [2, 5] = min m [2, 3] + m [4, 5] + p1 p3 p5 = 2625 + 1000 + 35 x 5 x 20 = 7,125 = 7,125
m [2, 4] + m [5, 5] + p1 p4 p5 = 4375 + 0 + 30 x 10 x 20 = 11,375
s [2, 5] = 3
A3 A4 A5 A6 :
m [3, 3] + m [4, 6] + p2 p3 p6 = 0 + 3500 + 15 x 5 x 25 = 5,375
m [3, 6] = min m [3, 4] + m [5, 6] + p2 p4 p6 = 750 + 3500 + 15 x 10 x 25 = 8,000 = 5,375
m [3, 5] + m [6, 6] + p2 p5 p6 = 2500 + 0 + 15 x 20 x 25 = 10,000
s [3, 6] = 3
Example…
n = 6; pi = 30, 35, 15, 5, 10, 20, 25; l = 4 i = 1 to n - l + 1; j = i + l – 1; k = i to j – 1
q = m [i, k] + m [k + 1, j] + pi-1 pk pj
i = 1; j = 1+4-1 = 4
k = 1
q=m[1,1]+m[2,4]+ p0 p1 p4
=0+4375+30x35x10 = 14,875
k = 2
q=m[1,2]+m[3,4]+ p0 p2 p4
=15750+750+30x15x10 = 21,000
k = 3
q=m[1,3]+m[4,4]+ p0 p3 p4
=7875+0+30x5x10 = 9,375
m [1, 4] = min (14875, 21000, 9375) = 9,375; s [1, 4] = 3
i = 2; j = 2+4-1 = 5
k = 2
q=m[2,2]+m[3,5]+ p1 p2 p5
=0+2500+35x15x20 = 13,000
k = 3
q=m[2,3]+m[4,5]+ p1 p3 p5
=2625+1000+35x5x20 = 7,125
k = 4
q=m[2,4]+m[5,5]+ p1 p4 p5
=4375+0+35x10x20 = 11,375
m [2, 5] = min (13000, 7125, 11375) = 7,125; s [2, 5] = 3
i = 3; j = 3+4-1 = 6
k = 3
q=m[3,3]+m[4,6]+ p2 p3 p6
=0+3500+15x5x25 = 5,375
k = 4
q=m[3,4]+m[5,6]+ p2 p4 p6
=750+3500+15x10x25 = 8,000
k = 5
q=m[3,5]+m[6,6]+ p2 p5 p6
=2500+0+15x20x25 = 10,000
m [3, 6] = min (5375, 8000, 10000) = 5,375; s [3, 6] = 3
Example…
1 2 3 4 5 6
1 0 15,750 7,875 9,375
2 0 2,625 4,375 7,125
3 0 750 2,500 5,375
4 0 1,000 3,500
5 0 5,000
6 0
j
i
Table m 1 2 3 4 5 6
1 1 1 3
2 2 3 3
3 3 3 3
4 4 5
5 5
Table s
j
i
Example…
• l = 5 → 5 Matrices
• Matrices: A1 A2 A3 A4 A5, A2 A3 A4 A5 A6
• No. of positions where split can occur = 4.
Therefore, k = (1, 2, 3, 4), (2, 3, 4, 5) respectively.
• Number of different parenthesizations:
A1 A2 A3 A4 A5 :
m [1, 1] + m [2, 5] + p0 p1 p5 = 0 + 7175 + 30 x 35 x 20 = 28,125
m [1, 2] + m [3, 5] + p0 p2 p5 = 15750 + 2500 + 30 x 15 x 20 = 27,250
m [1, 3] + m [4, 5] + p0 p3 p5 = 7875 + 1000 + 30 x 5 x 20 = 11,875
m [1, 4] + m [5, 5] + p0 p4 p5 = 9375 + 0 + 35 x 10 x 20 = 16,375
s [1, 5] = 3
A2 A3 A4 A5 A6 :
m [2, 2] + m [3, 6] + p1 p2 p6 = 0 + 5375 + 35 x 15 x 25 = 18,500
m [2, 3] + m [4, 6] + p2 p3 p6 = 2625 + 3500 + 15 x 5 x 25 = 8,000
m [2, 4] + m [5, 6] + p1 p4 p6 = 4375 + 5000 + 35 x 10 x 25 = 18,125
m [2, 5] + m [6, 6] + p1 p5 p6 = 7125 + 0 + 35 x 20 x 25 = 24,625
s [2, 6] = 3
m [1, 5] = min = 11,875
m [2, 6] = min = 8,000
Example…
n = 6; pi = 30, 35, 15, 5, 10, 20, 25; l = 5 i = 1 to n - l + 1; j = i + l – 1; k = i to j – 1
q = m [i, k] + m [k + 1, j] + pi-1 pk pj
i = 1
j = 1+5-1 = 5
k = 1
q=m[1,1]+m[2,5]+ p0 p1 p5
=0+7125+30x35x20
q = 28,125
k = 2
q=m[1,2]+m[3,5]+ p0 p2 p5
=15750+2500+30x15x20
q = 27,250
k = 3
q=m[1,3]+m[4,5]+ p0 p3 p5
=7875+1000+30x5x20
q = 11,875
k = 4
q=m[1,4]+m[5,5]+ p0 p4 p5
=9375+0+35x10x20
q = 16,375
m [1, 5] = min (28125, 27250, 11875, 16375) = 11,875
s [1, 5] = 3
i = 2
j = 2+5-1 = 6
k = 2
q=m[2,2]+m[3,6]+ p1 p2 p6
=0+5375+35x15x25
q = 18,500
k = 3
q=m[2,3]+m[4,6]+ p2 p3 p6
=2625+3500+15x5x25
q = 8,000
k = 4
q=m[2,4]+m[5,6]+ p1 p4 p6
=4375+5000+35x10x25
q = 18,125
k = 5
q=m[2,5]+m[6,6]+ p1 p5 p6
=7125+0+35x20x25
q = 24,625
m [2, 6] = min (18500, 8000, 18125, 24625) = 8,000
s [2, 6] = 3
Example…
1 2 3 4 5 6
1 0 15,750 7,875 9,375 11,875
2 0 2,625 4,375 7,125 8,000
3 0 750 2,500 5,375
4 0 1,000 3,500
5 0 5,000
6 0
j
i
Table m 1 2 3 4 5 6
1 1 1 3 3
2 2 3 3 3
3 3 3 3
4 4 5
5 5
Table s
j
i
Example…
• l = 6 → 6 Matrices
• Matrices: A1 A2 A3 A4 A5 A6
• No. of positions where split can occur = 5.
Therefore, k = (1, 2, 3, 4, 5).
• Number of different parenthesizations:
A1 A2 A3 A4 A5 :
m [1, 1] + m [2, 6] + p0 p1 p6 = 0 + 8000 + 30 x 35 x 25 = 34,250
m [1, 2] + m [3, 6] + p0 p2 p6 = 15750 + 5375 + 35 x 15 x 25 = 32,375
m [1, 6] = min m [1, 3] + m [4, 6] + p0 p3 p6 = 7875 + 3500 + 30 x 5 x 25 = 15,125 = 15,125
m [1, 4] + m [5, 6] + p0 p4 p6 = 9375 + 5000 + 35 x 10 x 25 = 21,875
m [1, 5] + m [6, 6] + p0 p5 p6 = 11875 + 0 + 35 x 20 x 25 = 26,875
s [1, 6] = 3
Example…
n = 6; pi = 30, 35, 15, 5, 10, 20, 25; l = 6 i = 1 to n - l + 1; j = i + l – 1; k = i to j – 1
q = m [i, k] + m [k + 1, j] + pi-1 pk pj
i = 1
j = 1+6-1 = 6
k = 1
q = m [1,1] + m [2,6] + p0 p1 p6
= 0+8000+30x35x25= 34,250
k = 2
q = m [1,2] + m [3,6] + p0 p2 p6
=15750+5375+30x15x25= 32,375
k = 3
q = m [1,3] + m [4,6] + p0 p3 p6
=7875+3500+30x5x25= 15,125
k = 4
q = m [1,4] + m [5,6] + p0 p4 p6
=9375+5000+30x10x25= 21,875
k = 5
q = m [1,5] + m [6,6] + p0 p5 p6
=11875+0+30x20x25 = 26,875
m [1, 6] = min (34250, 34250, 15125, 21875, 26875) = 15125
s [1, 6] = 3
Example…
1 2 3 4 5 6
1 0 15,750 7,875 9,375 11,875 15125
2 0 2,625 4,375 7,125 8,000
3 0 750 2,500 5,375
4 0 1,000 3,500
5 0 5,000
6 0
j
i
Table m 1 2 3 4 5 6
1 1 1 3 3 3
2 2 3 3 3
3 3 3 3
4 4 5
5 5
Table s
j
i
The Minimum number of Scalar
Multiplications to multiply the 6
matrices A1 A2 A3 A4 A5 A6 is:
m [1, 6] = 15,125.
The Optimal split occurs at:
s [1, 6] = 3.
• Optimal way of computing A 1 . . n is: A 1 . . S [1, n] x A S [1, n] + 1 . . n
• The initial call PRINT-OPTIMAL-PARENS (s, 1, n) prints an optimal
parenthesization of A1, A2, . . . , An
PRINT-OPTIMAL-PARENS (s, i, j)
If (i == j)
Print “A”i
Else Print “(”
PRINT-OPTIMAL-PARENS (s, i, s [i, j])
PRINT-OPTIMAL-PARENS (s, s [i, j] + 1, j )
Print “)”
4. Constructing an Optimal Solution
PRINT-OPTIMAL-PARENS (s, 1, 6)
prints the Parenthesization:
((A1 (A2 A3)) ((A4 A5) A6))
PRINT-OPTIMAL-PARENS (s, 1, 6) Push (i = 1, j = 6)
(
PRINT-OPTIMAL-PARENS (s, 1, 3) Push (i = 1, j = 3)
((
PRINT-OPTIMAL-PARENS (s, 1, 1) Push (i = 1, j = 1)
((A1 Pop (i = 1, j = 1)
PRINT-OPTIMAL-PARENS (s, 2, 3) Push (i = 2, j = 3)
((A1(
PRINT-OPTIMAL-PARENS (s, 2, 2) Push (i = 2, j = 2)
((A1(A2 Pop (i = 2, j = 2)
PRINT-OPTIMAL-PARENS (s, 3, 3) Push (i = 3, j = 3)
((A1(A2A3 Pop (i = 3, j = 3)
((A1(A2A3) Pop (i = 2, j = 3)
Constructing an Optimal Solution…
((A1(A2A3)) Pop (i = 1, j = 3)
PRINT-OPTIMAL-PARENS (s, 4, 6) Push (i = 4, j = 6)
((A1(A2A3))(
PRINT-OPTIMAL-PARENS (s, 4, 5) Push (i = 4, j = 5)
((A1(A2A3))((
PRINT-OPTIMAL-PARENS (s, 4, 4) Push (i = 4, j = 4)
((A1(A2A3))((A4 Pop (i = 4, j = 4)
PRINT-OPTIMAL-PARENS (s, 5, 5) Push (i = 5, j = 5)
((A1(A2A3))((A4A5 Pop (i = 5, j = 5)
((A1(A2A3))((A4A5) Pop (i = 4, j = 5)
PRINT-OPTIMAL-PARENS (s, 6, 6) Push (i = 6, j = 6)
((A1(A2A3))((A4A5)A6 Push (i = 6, j = 6)
((A1(A2A3))((A4A5)A6) Pop (i = 4, j = 6)
((A1(A2A3))((A4A5)A6)) Pop (i = 1, j = 6)
Optimal Parenthesization : ((A1(A2A3))((A4A5)A6))
Constructing an Optimal Solution…
References:
• Thomas H Cormen. Charles E Leiserson, Ronald L Rivest, Clifford Stein,
Introduction to Algorithms, Third Edition, The MIT Press Cambridge,
Massachusetts London, England.

More Related Content

What's hot

Strassen's matrix multiplication
Strassen's matrix multiplicationStrassen's matrix multiplication
Strassen's matrix multiplication
Megha V
 
Time and space complexity
Time and space complexityTime and space complexity
Time and space complexityAnkit Katiyar
 
Greedy Algorithm - Knapsack Problem
Greedy Algorithm - Knapsack ProblemGreedy Algorithm - Knapsack Problem
Greedy Algorithm - Knapsack Problem
Madhu Bala
 
01 Knapsack using Dynamic Programming
01 Knapsack using Dynamic Programming01 Knapsack using Dynamic Programming
01 Knapsack using Dynamic Programming
Fenil Shah
 
Optimal binary search tree
Optimal binary search treeOptimal binary search tree
Optimal binary search tree
Kavya P
 
Time complexity
Time complexityTime complexity
Time complexity
Kartik Chandra Mandal
 
0/1 knapsack
0/1 knapsack0/1 knapsack
0/1 knapsack
Amin Omi
 
Matrix chain multiplication by MHM
Matrix chain multiplication by MHMMatrix chain multiplication by MHM
Matrix chain multiplication by MHM
Md Mosharof Hosen
 
Asymptotic notations
Asymptotic notationsAsymptotic notations
Asymptotic notationsEhtisham Ali
 
Stressen's matrix multiplication
Stressen's matrix multiplicationStressen's matrix multiplication
Stressen's matrix multiplicationKumar
 
Knapsack problem
Knapsack problemKnapsack problem
Knapsack problem
Vikas Sharma
 
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
Umesh Kumar
 
Master theorem
Master theoremMaster theorem
Master theorem
fika sweety
 
Floyd Warshall Algorithm
Floyd Warshall AlgorithmFloyd Warshall Algorithm
Floyd Warshall Algorithm
InteX Research Lab
 
Algorithm analysis (All in one)
Algorithm analysis (All in one)Algorithm analysis (All in one)
Algorithm analysis (All in one)
jehan1987
 
Counting Sort
Counting SortCounting Sort
Counting Sort
Faiza Saleem
 
Asymptotic Notation and Complexity
Asymptotic Notation and ComplexityAsymptotic Notation and Complexity
Asymptotic Notation and Complexity
Rajandeep Gill
 
Design and Analysis of Algorithms
Design and Analysis of AlgorithmsDesign and Analysis of Algorithms
Design and Analysis of Algorithms
Swapnil Agrawal
 
OPTIMAL BINARY SEARCH
OPTIMAL BINARY SEARCHOPTIMAL BINARY SEARCH
OPTIMAL BINARY SEARCH
Cool Guy
 

What's hot (20)

Strassen's matrix multiplication
Strassen's matrix multiplicationStrassen's matrix multiplication
Strassen's matrix multiplication
 
Time and space complexity
Time and space complexityTime and space complexity
Time and space complexity
 
Greedy Algorithm - Knapsack Problem
Greedy Algorithm - Knapsack ProblemGreedy Algorithm - Knapsack Problem
Greedy Algorithm - Knapsack Problem
 
01 Knapsack using Dynamic Programming
01 Knapsack using Dynamic Programming01 Knapsack using Dynamic Programming
01 Knapsack using Dynamic Programming
 
Optimal binary search tree
Optimal binary search treeOptimal binary search tree
Optimal binary search tree
 
Time complexity
Time complexityTime complexity
Time complexity
 
0/1 knapsack
0/1 knapsack0/1 knapsack
0/1 knapsack
 
Matrix chain multiplication by MHM
Matrix chain multiplication by MHMMatrix chain multiplication by MHM
Matrix chain multiplication by MHM
 
Asymptotic notations
Asymptotic notationsAsymptotic notations
Asymptotic notations
 
Stressen's matrix multiplication
Stressen's matrix multiplicationStressen's matrix multiplication
Stressen's matrix multiplication
 
Knapsack problem
Knapsack problemKnapsack problem
Knapsack problem
 
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
PPT On Sorting And Searching Concepts In Data Structure | In Programming Lang...
 
Master theorem
Master theoremMaster theorem
Master theorem
 
Floyd Warshall Algorithm
Floyd Warshall AlgorithmFloyd Warshall Algorithm
Floyd Warshall Algorithm
 
Algorithm analysis (All in one)
Algorithm analysis (All in one)Algorithm analysis (All in one)
Algorithm analysis (All in one)
 
Counting Sort
Counting SortCounting Sort
Counting Sort
 
Asymptotic Notation and Complexity
Asymptotic Notation and ComplexityAsymptotic Notation and Complexity
Asymptotic Notation and Complexity
 
Design and Analysis of Algorithms
Design and Analysis of AlgorithmsDesign and Analysis of Algorithms
Design and Analysis of Algorithms
 
Heaps
HeapsHeaps
Heaps
 
OPTIMAL BINARY SEARCH
OPTIMAL BINARY SEARCHOPTIMAL BINARY SEARCH
OPTIMAL BINARY SEARCH
 

Similar to Matrix chain multiplication

Palm ch1
Palm ch1Palm ch1
Palm ch1
Heera Rawat
 
Matrix chain multiplication in design analysis of algorithm
Matrix chain multiplication in design analysis of algorithmMatrix chain multiplication in design analysis of algorithm
Matrix chain multiplication in design analysis of algorithm
RajKumar323561
 
Set 1 mawar
Set 1 mawarSet 1 mawar
Set 1 mawar
faazafauzana
 
Wu Mamber (String Algorithms 2007)
Wu  Mamber (String Algorithms 2007)Wu  Mamber (String Algorithms 2007)
Wu Mamber (String Algorithms 2007)
mailund
 
Dynamic Programming - Matrix Chain Multiplication
Dynamic Programming - Matrix Chain MultiplicationDynamic Programming - Matrix Chain Multiplication
Dynamic Programming - Matrix Chain Multiplication
Pecha Inc.
 
chapter_5_arithmetic_progressions book for
chapter_5_arithmetic_progressions book forchapter_5_arithmetic_progressions book for
chapter_5_arithmetic_progressions book for
Balkishan Dyavanapelly
 
Mathematics formulas
Mathematics formulasMathematics formulas
Mathematics formulas
Thanussha Ragu
 
Notes and Formulae Mathematics SPM
Notes and Formulae Mathematics SPM Notes and Formulae Mathematics SPM
Notes and Formulae Mathematics SPM
Zhang Ewe
 
Notes and-formulae-mathematics
Notes and-formulae-mathematicsNotes and-formulae-mathematics
Notes and-formulae-mathematicsAh Ching
 
workbook_full_solutions_2.pdf
workbook_full_solutions_2.pdfworkbook_full_solutions_2.pdf
workbook_full_solutions_2.pdf
ZiaSethi1
 
Rumus matematik examonline spa
Rumus matematik examonline spaRumus matematik examonline spa
Rumus matematik examonline spa
Mohammad Hafiz Bin Hamzah, M. Sc.
 
Dynamic Programming Matrix Chain Multiplication
Dynamic Programming Matrix Chain MultiplicationDynamic Programming Matrix Chain Multiplication
Dynamic Programming Matrix Chain Multiplication
KrishnakoumarC
 
Assignment of class 12 (chapters 2 to 9)
Assignment of class 12 (chapters 2 to 9)Assignment of class 12 (chapters 2 to 9)
Assignment of class 12 (chapters 2 to 9)
KarunaGupta1982
 
A study on number theory and its applications
A study on number theory and its applicationsA study on number theory and its applications
A study on number theory and its applications
Itishree Dash
 
1 UNITI Numbers System.pdf
1 UNITI Numbers System.pdf1 UNITI Numbers System.pdf
1 UNITI Numbers System.pdf
PrabhdeepBajwa1
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...ijceronline
 

Similar to Matrix chain multiplication (20)

Palm ch1
Palm ch1Palm ch1
Palm ch1
 
Matrix chain multiplication in design analysis of algorithm
Matrix chain multiplication in design analysis of algorithmMatrix chain multiplication in design analysis of algorithm
Matrix chain multiplication in design analysis of algorithm
 
Set 1 mawar
Set 1 mawarSet 1 mawar
Set 1 mawar
 
Wu Mamber (String Algorithms 2007)
Wu  Mamber (String Algorithms 2007)Wu  Mamber (String Algorithms 2007)
Wu Mamber (String Algorithms 2007)
 
Dynamic Programming - Matrix Chain Multiplication
Dynamic Programming - Matrix Chain MultiplicationDynamic Programming - Matrix Chain Multiplication
Dynamic Programming - Matrix Chain Multiplication
 
add math form 4/5
add math form 4/5add math form 4/5
add math form 4/5
 
Lec38
Lec38Lec38
Lec38
 
chapter_5_arithmetic_progressions book for
chapter_5_arithmetic_progressions book forchapter_5_arithmetic_progressions book for
chapter_5_arithmetic_progressions book for
 
Mathematics formulas
Mathematics formulasMathematics formulas
Mathematics formulas
 
Notes and Formulae Mathematics SPM
Notes and Formulae Mathematics SPM Notes and Formulae Mathematics SPM
Notes and Formulae Mathematics SPM
 
Notes and-formulae-mathematics
Notes and-formulae-mathematicsNotes and-formulae-mathematics
Notes and-formulae-mathematics
 
workbook_full_solutions_2.pdf
workbook_full_solutions_2.pdfworkbook_full_solutions_2.pdf
workbook_full_solutions_2.pdf
 
Rumus matematik examonline spa
Rumus matematik examonline spaRumus matematik examonline spa
Rumus matematik examonline spa
 
4 chap
4 chap4 chap
4 chap
 
Dynamic Programming Matrix Chain Multiplication
Dynamic Programming Matrix Chain MultiplicationDynamic Programming Matrix Chain Multiplication
Dynamic Programming Matrix Chain Multiplication
 
Assignment of class 12 (chapters 2 to 9)
Assignment of class 12 (chapters 2 to 9)Assignment of class 12 (chapters 2 to 9)
Assignment of class 12 (chapters 2 to 9)
 
Topik 1
Topik 1Topik 1
Topik 1
 
A study on number theory and its applications
A study on number theory and its applicationsA study on number theory and its applications
A study on number theory and its applications
 
1 UNITI Numbers System.pdf
1 UNITI Numbers System.pdf1 UNITI Numbers System.pdf
1 UNITI Numbers System.pdf
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
 

More from Kiran K

String Matching with Finite Automata and Knuth Morris Pratt Algorithm
String Matching with Finite Automata and Knuth Morris Pratt AlgorithmString Matching with Finite Automata and Knuth Morris Pratt Algorithm
String Matching with Finite Automata and Knuth Morris Pratt Algorithm
Kiran K
 
Johnson's algorithm
Johnson's algorithmJohnson's algorithm
Johnson's algorithm
Kiran K
 
Rabin Karp Algorithm
Rabin Karp AlgorithmRabin Karp Algorithm
Rabin Karp Algorithm
Kiran K
 
Naive string matching algorithm
Naive string matching algorithmNaive string matching algorithm
Naive string matching algorithm
Kiran K
 
Longest common subsequence
Longest common subsequenceLongest common subsequence
Longest common subsequence
Kiran K
 
Single source shortes path in dag
Single source shortes path in dagSingle source shortes path in dag
Single source shortes path in dag
Kiran K
 
Bellman ford
Bellman fordBellman ford
Bellman ford
Kiran K
 

More from Kiran K (7)

String Matching with Finite Automata and Knuth Morris Pratt Algorithm
String Matching with Finite Automata and Knuth Morris Pratt AlgorithmString Matching with Finite Automata and Knuth Morris Pratt Algorithm
String Matching with Finite Automata and Knuth Morris Pratt Algorithm
 
Johnson's algorithm
Johnson's algorithmJohnson's algorithm
Johnson's algorithm
 
Rabin Karp Algorithm
Rabin Karp AlgorithmRabin Karp Algorithm
Rabin Karp Algorithm
 
Naive string matching algorithm
Naive string matching algorithmNaive string matching algorithm
Naive string matching algorithm
 
Longest common subsequence
Longest common subsequenceLongest common subsequence
Longest common subsequence
 
Single source shortes path in dag
Single source shortes path in dagSingle source shortes path in dag
Single source shortes path in dag
 
Bellman ford
Bellman fordBellman ford
Bellman ford
 

Recently uploaded

MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdfMASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
goswamiyash170123
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
Jean Carlos Nunes Paixão
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
tarandeep35
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Dr. Vinod Kumar Kanvaria
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
amberjdewit93
 
World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024
ak6969907
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
Dr. Shivangi Singh Parihar
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
vaibhavrinwa19
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
TechSoup
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
chanes7
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
AyyanKhan40
 
Normal Labour/ Stages of Labour/ Mechanism of Labour
Normal Labour/ Stages of Labour/ Mechanism of LabourNormal Labour/ Stages of Labour/ Mechanism of Labour
Normal Labour/ Stages of Labour/ Mechanism of Labour
Wasim Ak
 
Digital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion DesignsDigital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion Designs
chanes7
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
Scholarhat
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
Priyankaranawat4
 

Recently uploaded (20)

MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdfMASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
MASS MEDIA STUDIES-835-CLASS XI Resource Material.pdf
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
 
Digital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental DesignDigital Artefact 1 - Tiny Home Environmental Design
Digital Artefact 1 - Tiny Home Environmental Design
 
World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
 
Normal Labour/ Stages of Labour/ Mechanism of Labour
Normal Labour/ Stages of Labour/ Mechanism of LabourNormal Labour/ Stages of Labour/ Mechanism of Labour
Normal Labour/ Stages of Labour/ Mechanism of Labour
 
Digital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion DesignsDigital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion Designs
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
 

Matrix chain multiplication

  • 1. Matrix - Chain Multiplication Dr. Kiran K Assistant Professor Department of CSE UVCE Bengaluru, India.
  • 2. Introduction Problem Statement: Given a chain of n matrices <A1, A2, . . . , An>, Ai has dimension pi-1 x pi , (i = 1, 2, . . . , n) Fully Parenthesize the product A1 A2 . . . An in a way that Minimizes the number of Scalar Multiplications. Fully Parenthesize:  A product of matrices is Fully Parenthesized if it is either • A Single Matrix or • Product of Two Fully Parenthesized Matrix Products, surrounded by parentheses.
  • 3. Eg.: The product A1A2A3A4 of the matrices <A1, A2, A3, A4>, can be Fully Parenthesized in Five distinct ways: • (A1(A2 (A3A4))) • (A1((A2A3) A4)) • ((A1A2)(A3A4)) • ((A1(A2A3))A4) • (((A1A2)A3)A4) Introduction…
  • 4. MATRIX-MULTIPLY (A, B) If (A.columns  B.rows) Error “Incompatible Dimensions” Else Let C be a new A.rows x B.columns Matrix For (i = 1 to A.rows) For (j = 1 to B.columns) cij = 0 For (k = 1 to A.columns) cij = cij + aik . bkj return C Order of A: i x k Order of B: k x j Order of C: i x j Number of Scalar Multiplications: k multiplications for each of the (i * j) entries of C. = i * k * j = i k j Multiplication of Two Matrices
  • 5. Eg.: <A1, A2, A3> A1 - 10 x 100 A2 - 100 x 5 A3 - 5 x 50 Cost of Matrix Multiplication ((A1A2) A3) A1A2 - 10 * 100 * 5 = 5000 ((A1A2) A3) – 10 * 5 * 50 = 2500 Total 5000 + 2500 = 7500 Scalar Multipliations (A1 (A2A3)) A2A3 – 100 * 5 * 50 = 25000 (A1 (A2A3) – 10 * 100 * 50 = 50000 Total 25000 + 50000 = 75000 Scalar Multiplications Parenthesizing a chain of matrices can have a dramatic impact on the cost of product evaluation.
  • 6. Goal: To determine an Order for Multiplying Matrices that has the Lowest Cost
  • 7. Let P(n) - Number of Alternative Parenthesizations of a sequence of n matrices. • n = 1, Only one matrix: • Only one way to fully parenthesize the matrix product. • n > = 2: • A Fully Parenthesized matrix product is the Product of Two Fully Parenthesized Matrix Subproducts. • Split between the two subproducts may occur between the kth and (k + 1)st matrices for any k = 1, 2, . . . , n - 1. Counting the Number of Parenthesizations
  • 8. Dynamic-programming method is used to determine how to optimally parenthesize a matrix chain: 1. Characterize the structure of an optimal solution. 2. Recursively define the value of an optimal solution. 3. Compute the value of an optimal solution. 4. Construct an optimal solution from computed information Optimal Parenthesization of Matrix-Chain
  • 9. • Ai . . . j : Matrix that results from evaluating the product Ai Ai+1 . . . Aj. i  j. • If (i < j) Parenthesize Ai Ai+1 . . . Aj by splitting the product between Ak and Ak+1 for i  k < j. → Compute matrices Ai . . . k and Ak + 1 . . . j and then multiply them together to produce the final product Ai . . . j. • Cost of Parenthesizing = Cost of Computing Ai . . . k + Cost of Computing Ak + 1 . . . j + Cost of Multiplying them together. 1. Structure of an Optimal Parenthesization
  • 10. • Cost of an optimal solution is defined recursively in terms of optimal solutions to sub-problems. • Sub-problems: Problems of determining the minimum cost of parenthesizing Ai A i + 1 . . . A j for 1  i  j  n. • m [i, j]: Minimum number of scalar multiplications to compute matrix Ai . . . j  if (i = j) There is only one matrix A i . . . i = A 1 m [i, j] = 0  If (i < j) m [i, j] = Cost of Computing Ai . . . k + Cost of Computing Ak + 1 . . . j + Cost of Multiplying them together. m [i, j] = m [i, k] + m [k + 1, j] + pi – 1 pk pj 2. A Recursive solution
  • 11.  k varies from i to j – 1. Hence, • s [i, j]: Value of k at which the Split is an Optimal Parenthesization. A Recursive Solution…
  • 12. • pi – 1 x pi - Dimension of matrix A i. i = 1, 2, . . . , n • p = < p0 , p1 , . . . pn> - List of Matrix Dimensions. • m [1 . . n, 1 . . n] - Table storing the Costs m [i, j] • s [1 . . n - 1, 2 . . n] - Table storing the Index of k that achieved optimal cost in computing m [i, j]. Used to construct an optimal solution. • m [1, n] - Lowest cost to compute A 1 . . n 3. Computing the Optimal Costs
  • 13. MATRIX-CHAIN-ORDER (p) n = p.length - 1 let m [1 . . n, 1 . . n] and s [1 . . n - 1, 2 . . n] be new tables For (i = 1 to n) m [i, i] = 0 For (l = 2 to n) For (i = 1 to n - l + 1) j = i + l – 1 m [i, j] =  For (k = i to j – 1) q = m [i, k] + m [k + 1, j] + pi-1 pk pj If (q < m [i, j]) m [i, j] = q s [i, j] = k return m and s Computing the Optimal Costs… Running Time : O (n3) Space to store Tables m and s : O (n2)
  • 14. Example n = 6 pi = 30, 35, 15, 5, 10, 20, 25 Table m: • Order: n x n • i - rows and j - columns • Only the lower half of the table upto (i, i) gets filled because 1  i  j  n Matrix A1 A2 A3 A4 A5 A6 Dimension 30 x 35 35 x 15 15 x 5 5 x 10 10 x 20 20 x 25 1 2 3 4 5 6 1 0 2 0 3 0 4 0 5 0 6 0 If no. of matrices = 1, No. of ways to parenthesize = 0. i.e., m (i, i) = 0 m [1, 1] = 0, m [2, 2] = 0, m [3, 3] = 0 m [4, 4] = 0, m [5, 5] = 0, m [6, 6] = 0 j i Tablem
  • 15. Example… • l = 2 → 2 Matrices • Matrices: A1 A2, A2 A3, A3 A4, A4 A5, A5 A6 • No. of positions where split can occur = 1. Therefore, k = 1, 2, 3, 4, 5 respectively. • Number of different parenthesizations: A1 A2: m [1, 2] = m [1, 1] + m [2, 2] + p0 p1 p2 = 0 + 0 + 30 x 35 x 15 = 15,750 s [1, 2] = 1 A2 A3: m [2, 3] = m [2, 2] + m [3, 3] + p1 p2 p3 = 0 + 0 + 35 x 15 x 05 = 2,625 s [2, 3] = 2 A3 A4: m [3, 4] = m [3, 3] + m [4, 4] + p2 p3 p4 = 0 + 0 + 15 x 05 x 10 = 750 s [2, 3] = 3 A4 A5: m [4, 5] = m [4, 4] + m [5, 5] + p3 p4 p5 = 0 + 0 + 30 x 35 x 15 = 1,000 s [1, 2] = 4 A5 A6: m [5, 6] = m [5, 5] + m [6, 6] + p4 p5 p6 = 0 + 0 + 10 x 20 x 25 = 5,000 s [1, 2] = 5
  • 16. Example… n = 6; pi = 30, 35, 15, 5, 10, 20, 25; l = 2 i = 1 to n - l + 1; j = i + l – 1; k = i to j – 1 q = m [i, k] + m [k + 1, j] + pi-1 pk pj i = 1 j = 1+2-1 = 2 i = 2 j = 2+2-1 = 3 i = 3 j = 3+2-1 = 4 k = 1 q = m [1,1] + m [2,2] + p0 p1 p2 = 0 + 0 + 30 x 35 x 15 = 15,750 k = 2 q = m [2,2] + m [3,3] + p1 p2 p3 = 0 + 0 + 35 x 15 x 5 = 2,625 k = 3 q = m [3,3] + m [4,4] + p2 p3 p4 = 0 + 0 + 15 x 5 x 10 = 750 m [1, 2] = 15,750 s [1, 2] = 1 m [2, 3] = 2,625 s [2, 3] = 2 m [3, 4] = 750 s [3, 4] = 3 i = 4 j = 4+2-1 = 5 i = 5 j = 5+2-1 = 6 k = 4 q = m [4,4] + m [5,5] + p3 p4 p5 = 0 + 0 + 30 x 35 x 15 = 1,000 k = 5 q = m [5,5] + m [6,6] + p4 p5 p6 = 0 + 0 + 10 x 20 x 25 = 5,000 m [4, 5] = 1,000 s [4, 5] = 4 m [5, 6] = 5,000 s [5, 6] = 5
  • 17. Example… 1 2 3 4 5 6 1 0 15,750 2 0 2,625 3 0 750 4 0 1,000 5 0 5,000 6 0 j i Table m 1 2 3 4 5 6 1 1 2 2 3 3 4 4 5 5 Table s j i
  • 18. Example… • l = 3 → 3 Matrices • Matrices: A1 A2 A3, A2 A3 A4, A3 A4 A5, A4 A5 A6 • No. of positions where split can occur = 2. Therefore, k = (1, 2), (2, 3) (3, 4), (4, 5) respectively. • Number of different parenthesizations: A1 A2 A3 : m [1, 1] + m [2, 3] + p0 p1 p3 = 0 + 2625 + 30 x 35 x 05 = 7,875 m [1, 2] + m [3, 3] + p0 p2 p3 = 15750 + 0 + 30 x 15 x 05 = 18,000 s [1, 3] = 1 A2 A3 A4 : m [2, 2] + m [3, 4] + p1 p2 p4 = 0 + 750 + 30 x 15 x 10 = 6,000 m [2, 3] + m [4, 4] + p1 p3 p4 = 2625 + 0 + 35 x 05 x 10 = 4,375 s [2, 4] = 3 m [1, 3] = min = 4,375m [2, 4] = min = 7,875
  • 19. Example… A3 A4 A5 : m [3, 3] + m [4, 5] + p2 p3 p5 = 0 + 1000 + 15 x 05 x 20 = 2,500 m [3, 4] + m [5, 5] + p2 p4 p5 = 750 + 0 + 15 x 10 x 20 = 3,750 s [3, 5] = 3 A4 A5 A6 : m [4, 4] + m [5, 6] + p3 p4 p6 = 0 + 5000 + 05 x 10 x 25 = 6,250 m [4, 5] + m [6, 6] + p3 p5 p6 = 1000 + 0 + 05 x 20 x 25 = 3,500 s [4, 6] = 5 m [3, 5] = min = 3,500m [4, 6] = min = 2,500
  • 20. Example… n = 6; pi = 30, 35, 15, 5, 10, 20, 25; l = 3 i = 1 to n - l + 1; j = i + l – 1; k = i to j – 1 q = m [i, k] + m [k + 1, j] + pi-1 pk pj i = 1 j = 1+3-1 = 3 i = 2 j = 2+3-1 = 4 k = 1 q=m[1,1]+m[2,3]+ p0 p1 p3 =0+2625+30x35x5 q = 7,875 k = 2 q=m[1,2]+m[3,3]+ p0 p2 p3 =15750+0+30x15x5 q = 18,000 k = 2 q=m[2,2]+m[3,4]+ p1 p2 p4 =0+750+35x15x10 q = 6,000 k = 3 q=m[2,3]+m[4,4]+ p1 p3 p4 =2625+0+35x5x10 q = 4,375 m [1, 3] = min (7875, 18000) = 7,875 s [1, 3] = 1 m [2, 4] = min (6000, 4375) = 4,375 s [2,4] = 3 i = 3 j = 3+3-1 = 5 i = 4 j = 4+3-1 = 6 k = 3 q=m[3,3]+m[4,5]+ p2 p3 p5 =0+1000+15x5x20 q = 2,500 k = 4 q=m[3,4]+m[5,5]+ p2 p4 p5 =750+0+15x10x20 q = 3,750 k = 4 q=m[4,4]+m[5,6]+ p3 p4 p6 =0+5000+5x10x25 q = 6,250 k = 5 q=m[4,5]+m[6,6]+ p3 p5 p6 =1000+0+5x20x25 q = 3,500 m [3, 5] = min (2500, 3750) = 2,500 s [3, 5] = 3 m [4, 6] = min (6250, 3500) = 3,500 s [4, 6] = 5
  • 21. Example… 1 2 3 4 5 6 1 0 15,750 7,875 2 0 2,625 4,375 3 0 750 2,500 4 0 1,000 3,500 5 0 5,000 6 0 j i Table m 1 2 3 4 5 6 1 1 1 2 2 3 3 3 3 4 4 5 5 5 Table s j i
  • 22. Example… • l = 4 → 4 Matrices • Matrices: A1 A2 A3 A4, A2 A3 A4 A5, A3 A4 A5 A6 • No. of positions where split can occur = 3. Therefore, k = (1, 2, 3), (2, 3, 4) (3, 4, 5) respectively. • Number of different parenthesizations: A1 A2 A3 A4 : m [1, 1] + m [2, 4] + p0 p1 p4 = 0 + 4375 + 30 x 35 x 10 = 14,875 m [1, 4] = min m [1, 2] + m [3, 4] + p0 p2 p4 = 15750 + 750 + 30 x 15 x 10 = 21,000 = 9,375 m [1, 3] + m [4, 4] + p0 p3 p4 = 7875 + 0 + 30 x 5 x 10 = 9,375 s [1, 4] = 1
  • 23. Example… A2 A3 A4 A5 : m [2, 2] + m [3, 5] + p1 p2 p5 = 0 + 2500 + 35 x 15 x 20 = 13,000 m [2, 5] = min m [2, 3] + m [4, 5] + p1 p3 p5 = 2625 + 1000 + 35 x 5 x 20 = 7,125 = 7,125 m [2, 4] + m [5, 5] + p1 p4 p5 = 4375 + 0 + 30 x 10 x 20 = 11,375 s [2, 5] = 3 A3 A4 A5 A6 : m [3, 3] + m [4, 6] + p2 p3 p6 = 0 + 3500 + 15 x 5 x 25 = 5,375 m [3, 6] = min m [3, 4] + m [5, 6] + p2 p4 p6 = 750 + 3500 + 15 x 10 x 25 = 8,000 = 5,375 m [3, 5] + m [6, 6] + p2 p5 p6 = 2500 + 0 + 15 x 20 x 25 = 10,000 s [3, 6] = 3
  • 24. Example… n = 6; pi = 30, 35, 15, 5, 10, 20, 25; l = 4 i = 1 to n - l + 1; j = i + l – 1; k = i to j – 1 q = m [i, k] + m [k + 1, j] + pi-1 pk pj i = 1; j = 1+4-1 = 4 k = 1 q=m[1,1]+m[2,4]+ p0 p1 p4 =0+4375+30x35x10 = 14,875 k = 2 q=m[1,2]+m[3,4]+ p0 p2 p4 =15750+750+30x15x10 = 21,000 k = 3 q=m[1,3]+m[4,4]+ p0 p3 p4 =7875+0+30x5x10 = 9,375 m [1, 4] = min (14875, 21000, 9375) = 9,375; s [1, 4] = 3 i = 2; j = 2+4-1 = 5 k = 2 q=m[2,2]+m[3,5]+ p1 p2 p5 =0+2500+35x15x20 = 13,000 k = 3 q=m[2,3]+m[4,5]+ p1 p3 p5 =2625+1000+35x5x20 = 7,125 k = 4 q=m[2,4]+m[5,5]+ p1 p4 p5 =4375+0+35x10x20 = 11,375 m [2, 5] = min (13000, 7125, 11375) = 7,125; s [2, 5] = 3 i = 3; j = 3+4-1 = 6 k = 3 q=m[3,3]+m[4,6]+ p2 p3 p6 =0+3500+15x5x25 = 5,375 k = 4 q=m[3,4]+m[5,6]+ p2 p4 p6 =750+3500+15x10x25 = 8,000 k = 5 q=m[3,5]+m[6,6]+ p2 p5 p6 =2500+0+15x20x25 = 10,000 m [3, 6] = min (5375, 8000, 10000) = 5,375; s [3, 6] = 3
  • 25. Example… 1 2 3 4 5 6 1 0 15,750 7,875 9,375 2 0 2,625 4,375 7,125 3 0 750 2,500 5,375 4 0 1,000 3,500 5 0 5,000 6 0 j i Table m 1 2 3 4 5 6 1 1 1 3 2 2 3 3 3 3 3 3 4 4 5 5 5 Table s j i
  • 26. Example… • l = 5 → 5 Matrices • Matrices: A1 A2 A3 A4 A5, A2 A3 A4 A5 A6 • No. of positions where split can occur = 4. Therefore, k = (1, 2, 3, 4), (2, 3, 4, 5) respectively. • Number of different parenthesizations: A1 A2 A3 A4 A5 : m [1, 1] + m [2, 5] + p0 p1 p5 = 0 + 7175 + 30 x 35 x 20 = 28,125 m [1, 2] + m [3, 5] + p0 p2 p5 = 15750 + 2500 + 30 x 15 x 20 = 27,250 m [1, 3] + m [4, 5] + p0 p3 p5 = 7875 + 1000 + 30 x 5 x 20 = 11,875 m [1, 4] + m [5, 5] + p0 p4 p5 = 9375 + 0 + 35 x 10 x 20 = 16,375 s [1, 5] = 3 A2 A3 A4 A5 A6 : m [2, 2] + m [3, 6] + p1 p2 p6 = 0 + 5375 + 35 x 15 x 25 = 18,500 m [2, 3] + m [4, 6] + p2 p3 p6 = 2625 + 3500 + 15 x 5 x 25 = 8,000 m [2, 4] + m [5, 6] + p1 p4 p6 = 4375 + 5000 + 35 x 10 x 25 = 18,125 m [2, 5] + m [6, 6] + p1 p5 p6 = 7125 + 0 + 35 x 20 x 25 = 24,625 s [2, 6] = 3 m [1, 5] = min = 11,875 m [2, 6] = min = 8,000
  • 27. Example… n = 6; pi = 30, 35, 15, 5, 10, 20, 25; l = 5 i = 1 to n - l + 1; j = i + l – 1; k = i to j – 1 q = m [i, k] + m [k + 1, j] + pi-1 pk pj i = 1 j = 1+5-1 = 5 k = 1 q=m[1,1]+m[2,5]+ p0 p1 p5 =0+7125+30x35x20 q = 28,125 k = 2 q=m[1,2]+m[3,5]+ p0 p2 p5 =15750+2500+30x15x20 q = 27,250 k = 3 q=m[1,3]+m[4,5]+ p0 p3 p5 =7875+1000+30x5x20 q = 11,875 k = 4 q=m[1,4]+m[5,5]+ p0 p4 p5 =9375+0+35x10x20 q = 16,375 m [1, 5] = min (28125, 27250, 11875, 16375) = 11,875 s [1, 5] = 3 i = 2 j = 2+5-1 = 6 k = 2 q=m[2,2]+m[3,6]+ p1 p2 p6 =0+5375+35x15x25 q = 18,500 k = 3 q=m[2,3]+m[4,6]+ p2 p3 p6 =2625+3500+15x5x25 q = 8,000 k = 4 q=m[2,4]+m[5,6]+ p1 p4 p6 =4375+5000+35x10x25 q = 18,125 k = 5 q=m[2,5]+m[6,6]+ p1 p5 p6 =7125+0+35x20x25 q = 24,625 m [2, 6] = min (18500, 8000, 18125, 24625) = 8,000 s [2, 6] = 3
  • 28. Example… 1 2 3 4 5 6 1 0 15,750 7,875 9,375 11,875 2 0 2,625 4,375 7,125 8,000 3 0 750 2,500 5,375 4 0 1,000 3,500 5 0 5,000 6 0 j i Table m 1 2 3 4 5 6 1 1 1 3 3 2 2 3 3 3 3 3 3 3 4 4 5 5 5 Table s j i
  • 29. Example… • l = 6 → 6 Matrices • Matrices: A1 A2 A3 A4 A5 A6 • No. of positions where split can occur = 5. Therefore, k = (1, 2, 3, 4, 5). • Number of different parenthesizations: A1 A2 A3 A4 A5 : m [1, 1] + m [2, 6] + p0 p1 p6 = 0 + 8000 + 30 x 35 x 25 = 34,250 m [1, 2] + m [3, 6] + p0 p2 p6 = 15750 + 5375 + 35 x 15 x 25 = 32,375 m [1, 6] = min m [1, 3] + m [4, 6] + p0 p3 p6 = 7875 + 3500 + 30 x 5 x 25 = 15,125 = 15,125 m [1, 4] + m [5, 6] + p0 p4 p6 = 9375 + 5000 + 35 x 10 x 25 = 21,875 m [1, 5] + m [6, 6] + p0 p5 p6 = 11875 + 0 + 35 x 20 x 25 = 26,875 s [1, 6] = 3
  • 30. Example… n = 6; pi = 30, 35, 15, 5, 10, 20, 25; l = 6 i = 1 to n - l + 1; j = i + l – 1; k = i to j – 1 q = m [i, k] + m [k + 1, j] + pi-1 pk pj i = 1 j = 1+6-1 = 6 k = 1 q = m [1,1] + m [2,6] + p0 p1 p6 = 0+8000+30x35x25= 34,250 k = 2 q = m [1,2] + m [3,6] + p0 p2 p6 =15750+5375+30x15x25= 32,375 k = 3 q = m [1,3] + m [4,6] + p0 p3 p6 =7875+3500+30x5x25= 15,125 k = 4 q = m [1,4] + m [5,6] + p0 p4 p6 =9375+5000+30x10x25= 21,875 k = 5 q = m [1,5] + m [6,6] + p0 p5 p6 =11875+0+30x20x25 = 26,875 m [1, 6] = min (34250, 34250, 15125, 21875, 26875) = 15125 s [1, 6] = 3
  • 31. Example… 1 2 3 4 5 6 1 0 15,750 7,875 9,375 11,875 15125 2 0 2,625 4,375 7,125 8,000 3 0 750 2,500 5,375 4 0 1,000 3,500 5 0 5,000 6 0 j i Table m 1 2 3 4 5 6 1 1 1 3 3 3 2 2 3 3 3 3 3 3 3 4 4 5 5 5 Table s j i The Minimum number of Scalar Multiplications to multiply the 6 matrices A1 A2 A3 A4 A5 A6 is: m [1, 6] = 15,125. The Optimal split occurs at: s [1, 6] = 3.
  • 32. • Optimal way of computing A 1 . . n is: A 1 . . S [1, n] x A S [1, n] + 1 . . n • The initial call PRINT-OPTIMAL-PARENS (s, 1, n) prints an optimal parenthesization of A1, A2, . . . , An PRINT-OPTIMAL-PARENS (s, i, j) If (i == j) Print “A”i Else Print “(” PRINT-OPTIMAL-PARENS (s, i, s [i, j]) PRINT-OPTIMAL-PARENS (s, s [i, j] + 1, j ) Print “)” 4. Constructing an Optimal Solution PRINT-OPTIMAL-PARENS (s, 1, 6) prints the Parenthesization: ((A1 (A2 A3)) ((A4 A5) A6))
  • 33. PRINT-OPTIMAL-PARENS (s, 1, 6) Push (i = 1, j = 6) ( PRINT-OPTIMAL-PARENS (s, 1, 3) Push (i = 1, j = 3) (( PRINT-OPTIMAL-PARENS (s, 1, 1) Push (i = 1, j = 1) ((A1 Pop (i = 1, j = 1) PRINT-OPTIMAL-PARENS (s, 2, 3) Push (i = 2, j = 3) ((A1( PRINT-OPTIMAL-PARENS (s, 2, 2) Push (i = 2, j = 2) ((A1(A2 Pop (i = 2, j = 2) PRINT-OPTIMAL-PARENS (s, 3, 3) Push (i = 3, j = 3) ((A1(A2A3 Pop (i = 3, j = 3) ((A1(A2A3) Pop (i = 2, j = 3) Constructing an Optimal Solution…
  • 34. ((A1(A2A3)) Pop (i = 1, j = 3) PRINT-OPTIMAL-PARENS (s, 4, 6) Push (i = 4, j = 6) ((A1(A2A3))( PRINT-OPTIMAL-PARENS (s, 4, 5) Push (i = 4, j = 5) ((A1(A2A3))(( PRINT-OPTIMAL-PARENS (s, 4, 4) Push (i = 4, j = 4) ((A1(A2A3))((A4 Pop (i = 4, j = 4) PRINT-OPTIMAL-PARENS (s, 5, 5) Push (i = 5, j = 5) ((A1(A2A3))((A4A5 Pop (i = 5, j = 5) ((A1(A2A3))((A4A5) Pop (i = 4, j = 5) PRINT-OPTIMAL-PARENS (s, 6, 6) Push (i = 6, j = 6) ((A1(A2A3))((A4A5)A6 Push (i = 6, j = 6) ((A1(A2A3))((A4A5)A6) Pop (i = 4, j = 6) ((A1(A2A3))((A4A5)A6)) Pop (i = 1, j = 6) Optimal Parenthesization : ((A1(A2A3))((A4A5)A6)) Constructing an Optimal Solution…
  • 35. References: • Thomas H Cormen. Charles E Leiserson, Ronald L Rivest, Clifford Stein, Introduction to Algorithms, Third Edition, The MIT Press Cambridge, Massachusetts London, England.