Loading in 5 sec....

Reduction between Transitive Closure & Boolean Matrix Multiplication PowerPoint Presentation

Reduction between Transitive Closure & Boolean Matrix Multiplication

Download Presentation

Reduction between Transitive Closure & Boolean Matrix Multiplication

Loading in 2 Seconds...

- 109 Views
- Uploaded on
- Presentation posted in: General

Reduction between Transitive Closure & Boolean Matrix Multiplication

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Reduction between Transitive Closure &

Boolean Matrix Multiplication

Presented by Rotem Mairon

Overview

The speed-up of 4-Russians for matrix multiplication

A divide & conquer approach for matrix multiplication: Strassen’s method

Reduction between TC and BMM

The speedup of 4-Russians for matrix multiplication

A basic observation

- Consider a two boolean matrices, A and B of small dimensions.

- The boolean multiplication of row Ai by column Bj is defined by:

- The naïve boolean multiplication is done bit-after bit. This requires O(n) steps.

- How can this be improved with pre-processing?

n=4

3

The speedup of 4-Russians for matrix multiplication

A basic observation

- Each row Ai and column Bj form a pair of 4-bit binary numbers.

- These binary numbers can be regarded as indices to a table of size 24x24

- For each entry in the table, we pre-store the value for multiplying the indices.

- The multiplication of Ai by Bi can be computed in O(1) time.

- Problem: 2nx2n is not practical of large matrix multiplication.

= 6

n=4

= 4

4

The speedup of 4-Russians for matrix multiplication

The speedup

- Instead of regarding a complete row/col as an index to the table, consider only part of it.

- Now, we pre-compute multiplication values for pairs of binary vectors of size k in a table of size 2kx2k.

5

5

The speedup of 4-Russians for matrix multiplication

The speedup

- Instead of regarding a complete row/col as an index to the table, consider only part of it.

- Now, we pre-compute multiplication values for pairs of binary vectors of size k in a table of size 2kx2k.

6

6

The speedup of 4-Russians for matrix multiplication

The speedup

- Let , then all pairs of k-bit binary vectors canbe represented in a table of size:

- Time required for multiplying Ai by Bi: O(n/logn).

- Total time required: O(n3/logn) instead of O(n3).

7

7

Overview

The method of 4-Russians for matrix multiplication

A divide & conquer approach for matrix multiplication: Strassen’s method

Reduction between TC and BMM

Strassen’s method for matrix multiplication

A divide and conquer approach

- Divide each nxn matrix into four matrices of size (n/2)x(n/2):

- Computing all of requires 8 multiplications and 4 additions.

- Therefore, the total running time is

- Using the Master Theorem, this solves to . Still cubic!

Can we do better with a straightforward divide and conquer approach?

9

Strassen’s method for matrix multiplication

Strassen’s algorithm

- Define seven matrices of size (n/2)x(n/2) :

- The four (n/2)x(n/2) matrices can be defined in terms of M1,…,M7:

10

Strassen’s method for matrix multiplication

Strassen’s algorithm

Running time? Each matrix Mi requires additions

and subtractions but only one multiplication:

which solves to

11

11

Strassen’s method for matrix multiplication

Improvements

First to break the 2.5 barrier:

12

12

Best choices for matrix multiplication

- Using the exact formulas for time complexity, for square matrices, crossover points
- have been found:
- For n<7, the naïve algorithm for matrix multiplication is preferred.As an example, a 6x6 matrix requires 482 steps for the method of 4- Russians, but 468 steps for the naïve multiplication.
- For 6<n<513, the method of 4-Russians is most efficient.
- For 512<n, Strassen’s approach costs the least number of steps.

13

Overview

The method of 4-Russians for matrix multiplication

A divide & conquer approach for matrix multiplication: Strassen’s method

Reduction between TC and BMM

Realization of matrix multiplication in graphs

Let A,B be adjacency matrices of two graphs over the same set of vertices {1,2,…,n}

- An (A,B)-path is a path of length two whose first edge belongs to A and its second edge belongs to B.

- if and only if there is an (A,B)-path from vertex i to vertex j. Therefore, C is the adjacency matrix with respect to (A,B)-paths.

15

Transitive Closure by Matrix Multiplication

Definition and a cubic solution

Given a directed graph G=(V,E), the transitive closure of G is defined as the graph

G*=(V,E*) where E*={(i,j) : there is a path from vertex i to vertex j}.

- A dynamic programming algorithm, has been devised:

- Floyd-Warshall’s algorithm:

- Requires O(n3) time. Could it be beaten?

16

Transitive Closure by Matrix Multiplication

Beating the cubic solution

1

2

3

4

1

1

0

0

1

1

1

0

0

0

1

1

0

2

0

1

1

0

0

1

1

0

0

0

1

1

3

0

0

1

1

0

0

1

1

0

0

0

1

4

0

0

0

1

0

0

0

1

0

0

0

0

By squaring the matrix, we get (i,j)=1 iff we can get from i to j in exactlytwo steps:

How could we make (i,j) equal 1 iff there’s a path from i to j in at most 2 steps?

Storing 1’s in all diagonal entries.

What about (i,j)=1 iff there’s a path from i to j in at most 4 steps?

Keep multiplying.

17

Transitive Closure by Matrix Multiplication

Beating the cubic solution

In total, the longest path had 4 vertices and 2 multiplications are required.

Log2(n).

How many multiplications are required for the general case?

- The transitive closure can be obtained in O(n2.37log2(n)) time:
- Multiply the matrix log2(n) times.
- Each multiplication requires O(n2.37) steps using Strassen’s approach.

- Better still: we can get rid of the log2(n) factor.

18

Transitive Closure by Matrix Multiplication

Better still: getting rid of the log(n) factor

The log(n) factor can be dropped by applying the following steps:

- Determine the strongly connected components of the graph: O(n2)

- Collapse each component to a single vertex.

- The problem is now reduced to the problem for the new graph.

19

Transitive Closure by Matrix Multiplication

Better still: getting rid of the log(n) factor

The log(n) factor can be dropped by applying the following steps:

- Generate a topological sort for the new graph.

- Divide the graph into two sections: A (first half) and B (second half).

- The adjacency matrix of sorted graph is upper triangular:

20

Transitive Closure by Matrix Multiplication

Better still: getting rid of the log(n) factor

To find the transitive closure of G, notice that:

- Connections within A are independent of B.
- Similarly, connections within B are independent of A.

- Connections from A to B are found by:

A*(i,u) = 1

iuinA

a path in A

21

21

Transitive Closure by Matrix Multiplication

Better still: getting rid of the log(n) factor

To find the transitive closure of G, notice that:

- Connections within A are independent of B.
- Similarly, connections within B are independent of A.

- Connections from A to B are found by:

A*C(i,v) = 1

iuinA

and

u v

a path in A

an edge in C

22

22

Transitive Closure by Matrix Multiplication

Better still: getting rid of the log(n) factor

To find the transitive closure of G, notice that:

- Connections within A are independent of B.
- Similarly, connections within B are independent of A.

- Connections from A to B are found by:

and

A*CB*(i,j) = 1

iuinA

and

u v

ujinA

a path in A

an edge in C

a path in B

23

23

Transitive Closure by Matrix Multiplication

Better still: getting rid of the log(n) factor

To find the transitive closure of G, notice that:

- Connections within A are independent of B.
- Similarly, connections within A are independent of A.

- Hence, G* can be found with determining A*, B*, and computing A*CB*
- This requires finding the transitive closure of two (n/2)x(n/2) matrices,
- And performing two matrix multiplications: O(n2.37).

Running time? Solves to O(2.37)

24

Matrix Multiplication by Transitive Closure

Let A,B be two boolean matrices, to compute C=AB, form the following matrix:

- The transitive closure of such a graph is formed by adding the edges from the 1st part to 2nd.

- These edges are described by the product of matrices A,B. Therefore,

25

Thanks