Lec12.1-Dynamic Programming 2

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 32

Multiplying Matrices

n Two matrices, A with (p x q) matrix and B with (q x r)


matrix, can be multiplied to get C with dimensions p x r,
using scalar multiplications

1
Multiplying Matrices

2
Ex2:Matrix-chain multiplication
n We are given a sequence (chain) <A1, A2, ..., An> of n
matrices to be multiplied, and we wish to compute the
product. A1.A2…An.

n Matrix multiplication is associative, and so all


parenthesizations yield the same product,

(A1 (A2 (A3 A4))) ,


(A1 ((A2 A3) A4)) ,
((A1 A2) (A3 A4)) ,
((A1 (A2 A3)) A4) ,
(((A1 A2) A3) A4).

3
Matrix-chain multiplication – cont.
n We can multiply two matrices A and B only if they are
compatible the number of columns of A must equal the
number of rows of B. If A is a p × q matrix and B is a q ×
r matrix, the resulting matrix C is a p × r matrix.

n The time to compute C is dominated by the number of


scalar multiplications, which is p q r.

4
Matrix-chain multiplication – cont.
n Ex: consider the problem of a chain <A1, A2, A3> of
three matrices, with the dimensions of 10 × 100, 100
× 5, and 5 × 50, respectively.

n If we multiply according to ((A1 A2) A3), we perform


10 · 100 · 5 = 5000 scalar multiplications to compute
the 10 × 5 matrix product A1 A2, plus another 10 · 5 ·
50 = 2500 scalar multiplications to multiply this matrix
byA3 for a total of 7500 scalar multiplications

n If instead , we multiply as (A1 (A2 A3)), we perform


100 · 5 · 50 = 25,000 scalar multiplications to
compute the 100 × 50 matrix product A2 A3, plus
another 10 · 100 · 50 = 50,000 scalar multiplications
to multiply A1 by this matrix, for a total of 75,000
scalar multiplications. Thus, computing the product
according to the first parenthesization is 10 times
faster.
5
Matrix-chain multiplication – cont.
n Matrix multiplication is associative
q q (AB)C = A(BC)

n The parenthesization matters


n Consider A X B X C X D, where
q A is 30x1, B is 1x40, C is 40x10, D is 10x25

n Costs:
q ((AB)C)D = 1200 + 12000 + 7500 = 20700
q (AB)(CD) = 1200 + 10000 + 30000 = 41200
q A((BC)D) = 400 + 250 + 750 = 1400

6
Matrix Chain Multiplication (MCM)
Problem
n Input:
q Matrices A1, A2, …, An, each Ai of size pi-1 x pi,

n Output:
q Fully parenthesised product A1 x A2 x … x An
that minimizes the number of scalar
multiplications.

n Note:
q In MCM problem, we are not actually multiplying
matrices
q Our goal is only to determine an order for
multiplying matrices that has the lowest cost
7
Matrix Chain Multiplication (MCM)
Problem
n Typically, the time invested in determining
this optimal order is more than paid for by the
time saved later on when actually performing
the matrix multiplications

n So, exhaustively checking all possible


parenthesizations does not yield an efficient
algorithm

8
Counting the Number of Parenthesizations
n Denote the number of alternative parenthesizations of a
sequence of (n) matrices by P(n) then a fully
parenthesized matrix product is given by:

! (A1 (A2 (A3 A4))) , If n = 4 <A1,A2,A3,A4> then the number of


! (A1 ((A2 A3) A4)) , alternative parenthesis is =5
! ((A1 A2) (A3 A4)) , P(4) =P(1) P(4-1) + P(2) P(4-2) + P(3) P(4-3)
! ((A1 (A2 A3)) A4) , = P(1) P(3) + P(2) P(2) + P(3) P(1)= 2+1+2=5
! (((A1 A2) A3) A4). P(3) =P(1) P(2) + P(2) P(1) = 1+1=2
P(2) =P(1) P(1)= 1

9
Counting the Number of Parenthesizations

10
Step 1: Optimal Sub-structure

11
Step 1: Optimal Sub-structure

12
Step 1: Optimal Sub-structure

13
Step 1: Optimal Sub-structure

14
Step 2: Recursive Solution
n Next we define the cost of optimal solution
recursively in terms of the optimal solutions to
sub-problems

n For MCM, sub-problems are:


q problems of determining the min-cost of a
parenthesization of Ai Ai+1…Aj for 1 <= i <= j <= n

n Let m[i, j] = min # of scalar multiplications


needed to compute the matrix Ai...j.
q For the whole problem, we need to find m[1, n]

15
Step 2: Recursive Solution
n Since Ai..j can be obtained by breaking it into
Ai..k Ak+1..j, We have (each Ai of size pi-1 x
pi)
q m[i, j] = m[i, k] + m[k+1, j] + pi-1pkpj

n There are j-i possible values for k: i <= k <= j

n Since the optimal parenthesization must use


one of these values for k, we need only check
them all to find the best.

16
Step 2: Recursive Solution

17
Step 3: Computing the Optimal Costs

18
Elements of Dynamic Programming

19
Overlapping Sub-problems

20
Step 3: Computing the Optimal Costs
The following code assumes that matrix Ai has
dimensions pi-1 x pi for i =1,2, …, n

21
Step 3: Computing the Optimal Costs

22
Step 3: Computing the Optimal Costs

23
Step 3: Computing the Optimal Costs

24
Step 3: Computing the Optimal Costs

25
Step 3: Computing the Optimal Costs

26
Step 3: Computing the Optimal Costs

27
Step 4: Constructing an Optimal Solution
n Although Matrix-Chain-Order determines the
optimal number of scalar multiplications
needed to compute a matrix-chain product, it
does not directly show how to multiply the
matrices

n Using table s, we can construct an optimal


solution

28
Step 4: Constructing an Optimal Solution

29
Step 4: Constructing an Optimal Solution

30
Step 4: Constructing an Optimal Solution

31
Step 4: Constructing an Optimal Solution

32

You might also like