Matrix Chain Multiplication


Matrix Chain Multiplication

  • Matrix chain multiplication (or Matrix Chain Ordering Problem, MCOP) is an optimization problem that can be solved using dynamic programming.
  • Given a sequence of matrices, the goal is to find the most efficient way to multiply these matrices.
  • The problem is not actually to perform the multiplications, but merely to decide the sequence of the matrix multiplications involved.
  • Here are many options because matrix multiplication is associative. In other words, no matter how the product is parenthesized, the result obtained will remain the same. For example, for four matrices A, B, C, and D, we would have:

((AB)C)D = ((A(BC))D) = (AB)(CD) = A((BC)D) = A(B(CD))
Matrix Chain Multiplication

Example of Matrix Chain Multiplication


Example:
Sequence {4, 10, 3, 12, 20, and 7}. The matrices have size 4 x 10, 10 x 3, 3 x 12, 12 x 20, 20 x 7. We need to compute M [i,j], 0 ≤ i, j≤ 5.
We know M [i, i] = 0 for all i.
Matrix Chain Multiplication
Matrix Chain Multiplication

Here P0 to P5 are Position and M1 to M5 are matrix of size (pi to pi-1
On the basis of sequence, we make a formula
Matrix Chain Multiplication

In Dynamic Programming, initialization of every method done by '0'.So we initialize it by '0'.It will sort out diagonally.
We have to sort out all the combination but the minimum output combination is taken into consideration.
Matrix Chain Multiplication
Matrix Chain Multiplication

Pseudo code

Matrix Chain Multiplication