29
1 Finding cycles using Finding cycles using rectangular matrix rectangular matrix multiplication and multiplication and dynamic programming dynamic programming Raphael Yuster Raphael Yuster Haifa Univ. Haifa Univ. - - Oranim Oranim Uri Zwick Uri Zwick Tel Aviv Tel Aviv University University

Finding cycles using rectangular matrix multiplication and dynamic programming

Embed Size (px)

DESCRIPTION

Finding cycles using rectangular matrix multiplication and dynamic programming. Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University. Matrix multiplication. =. . Rectangular Matrix multiplication. c. c. b. =. . a. a. b. a. c. a. =. . b. c. b. - PowerPoint PPT Presentation

Citation preview

Page 1: Finding cycles using  rectangular matrix multiplication and dynamic programming

1

Finding cycles using Finding cycles using rectangular matrix multiplication rectangular matrix multiplication

and dynamic programmingand dynamic programming

Raphael Yuster Raphael Yuster Haifa Univ.Haifa Univ. -- OranimOranim Uri Zwick Uri Zwick Tel Aviv UniversityTel Aviv University

Page 2: Finding cycles using  rectangular matrix multiplication and dynamic programming

2

Matrix multiplication

= ij ik kjc a bi ja i jb

ComplexityAuthors

n3folklore

n2.81Strassen (1969)

n2.38Coppersmith, Winograd (1990)

n???

Page 3: Finding cycles using  rectangular matrix multiplication and dynamic programming

3

Rectangular Matrix multiplication

=

a bc

abc

cb c

a ab

=

M(a,b,c) = M(b,c,a) = M(c,a,b)... =

Page 4: Finding cycles using  rectangular matrix multiplication and dynamic programming

4

Rectangular Matrix multiplication

ab c

c

= a

2If , then ( , , ) a cb a c M a b c b ab cb b

3( , , )min{ , , }

abcM a b ca b c

There are also improved specially designed rectangular matrix multiplication algorithms

Page 5: Finding cycles using  rectangular matrix multiplication and dynamic programming

5

Chain Matrix Product

• Let Ai be an ni ni+1 matrix.

• Compute A1A2…Ak.• Matrix multiplication is associative, so all

association orders give the same result, but may have vastly different cost.

• Easy to solve using dynamic programming.

Page 6: Finding cycles using  rectangular matrix multiplication and dynamic programming

6

Chain Matrix Product (cont.)

Let P(i,j) be the cost of computing Ai…Aj.

1 2( , 1) ( , , )i i iP i i M n n n

( , ) min ( , ) ( , ) ( , , )i r ji r jP i j P i r P r j M n n n

Complexity of naïve solution is O(k3).

For M(a,b,c)=abc, there is a much more complicated O(k log k) algorithm .

Page 7: Finding cycles using  rectangular matrix multiplication and dynamic programming

7

Finding triangles

A triangle

A graph

Does the graph contain a triangle? Yes!

Page 8: Finding cycles using  rectangular matrix multiplication and dynamic programming

8

Algorithms for finding triangles

Let A be the adjacency matrix of a graph G.

Then, G contains a triangle iff A2AT≠0.

Running timeAuthors

mnfolklore

n < n2.38folklore

m3/2Itai-Rodeh ’78

m2 /(-1) < m1.41AYZ ’97

Page 9: Finding cycles using  rectangular matrix multiplication and dynamic programming

9

Finding triangles in O(m2 /(-1)) time [AYZ ’97]

Let be a parameter. . High degree vertices: vertices of degree .Low degree vertices: vertices of degree < .There are at most 2m/ high degree vertices

2m m=

= m(+1) /(-1)

Page 10: Finding cycles using  rectangular matrix multiplication and dynamic programming

10

Finding longer cycles

A graph G contains a Ck iff Ak-1AT≠0 ?

We want simple cycles!

Page 11: Finding cycles using  rectangular matrix multiplication and dynamic programming

11

Color coding [AYZ ’95]

Assign each vertex v a random number c(v) from {0,1,...,k-1}.

Remove all edges (u,v) for which c(v)≠c(u)+1 (mod k).

All cycles of length k in the graph are now simple.

If a graph contains a Ck then with a probability of at least k

- k it still contains a Ck after this process.

An improved version works with probability 2 -

O(k).

Can be derandomized at a logarithmic cost.

Page 12: Finding cycles using  rectangular matrix multiplication and dynamic programming

12

Finding C2k in O(m2-1/k) time [AYZ ’97]

Let be a parameter. . High degree vertices: vertices of degree .Low degree vertices: vertices of degree < .There are at most 2m/ high degree vertices

= m1/k

Finding paths of length k

1km

m m

Finding a cycle passing through a high degree

vertex

=

Page 13: Finding cycles using  rectangular matrix multiplication and dynamic programming

13

Algorithms for finding a Ck

Running timeAuthors

mnMonien ’85

n < n2.38AYZ ’95

m2-1/k/2AYZ ’97

[AYZ ’97]:“We have not been able to use fast matrix

multiplication to obtain faster algorithms for finding Ck, for k4, in sparse graphs.”

Page 14: Finding cycles using  rectangular matrix multiplication and dynamic programming

14

Finding even cycles even faster [YZ ’97]

In undirected graphs, a C2k, for any fixed k, can be found in O(n2) time!

We are still working on:Finding odd cycles עוד יותר מהר

Page 15: Finding cycles using  rectangular matrix multiplication and dynamic programming

15

Algorithms for finding a C4

Running timeAuthors

mnMonien ’85

n < n2.38AYZ ’95

m3/2AYZ ’97

m 2-2/ n1/Eisenbrand,

Grandoni ’03

m(4-1)/(2+1)<m1.48YZ ’03

Page 16: Finding cycles using  rectangular matrix multiplication and dynamic programming

16

Let be a parameter. . High degree vertices: vertices of degree .Low degree vertices: vertices of degree < .There are at most 2m/ high degree vertices

Finding C4’s in O(m 2-2/ n1/) time

[Eisendbrand, Grandoni ’03]

Page 17: Finding cycles using  rectangular matrix multiplication and dynamic programming

17

Finding C4’s in O(m 2-2/ n1/) time

[EG ’03]

m mm

, ,m mm M n

m

Page 18: Finding cycles using  rectangular matrix multiplication and dynamic programming

18

Let be a parameter.

High degree vertices: ≤ deg(v) Medium degree vertices: 1/2 ≤ deg(v) < Low degree vertices: deg(v) < 1/2

There are at most 2m/ high degree vertices.There are at most 2m/1/2 medium degree vertices.

Finding C4’s in O(m(4-1)/(2+1)) time [YZ ’03]

Page 19: Finding cycles using  rectangular matrix multiplication and dynamic programming

19

Finding C4’s in O(m(4-1)/(2+1)) time [YZ ’03]

m mm

, ,m m mm M m m

Page 20: Finding cycles using  rectangular matrix multiplication and dynamic programming

20

• Where do we go from here?• Why just three degree classes?• How many cases will we have for C5, C6, …?

Page 21: Finding cycles using  rectangular matrix multiplication and dynamic programming

21

The general case

• Partition the vertices into log n degree classes: Vi={ vV | 2i ≤ deg(v) ≤ 2i+1 }

• Number of cycle classes is only (log n)k.• What is the most efficient way of handling

each class?

Page 22: Finding cycles using  rectangular matrix multiplication and dynamic programming

22

Handling a given cycle class

jd1kd

id2d

1d

0d

Choose i and j.

Find all paths of length j-i that pass through vertices of degrees

di ,…, dj.

Find all paths of length k-(j-i) that pass through vertices of

degrees dj ,…, di.

Check whether the graph contains a cycle from the class.

Page 23: Finding cycles using  rectangular matrix multiplication and dynamic programming

23

Finding paths

kd2d1d

1

md

Degree:

Sizeof class:

k

md2

md

We get a chain matrix product problem!

We can use the sparsity of the matrices.

Page 24: Finding cycles using  rectangular matrix multiplication and dynamic programming

24

Finding paths (cont.)

kdm2dm1dmDegree:

Sizeof class:

1 kdm 21 dm 11 dm

It is convenient to express everything as a power of m.

1

1

( , 1)

( , ) min ( 1, )

max ( , ), ( , ), (1 ,1 ,1

j

ii r j

i r j

P i j d

P i j P i j d

P i r P r j M d d d

( , 1) 1P i i

Page 25: Finding cycles using  rectangular matrix multiplication and dynamic programming

25

Finding cycles

0 1 1 ,

max ( , ), ( , )( , , , ) min

2k k i ji

P i j P j iC d d d

d

0 1 10 , , , 1 0 1 1max ( , , , )kk d d d k kc C d d d

Theorem: There is an time algorithm for finding Ck’s in directed graphs.

( )kcO m

Page 26: Finding cycles using  rectangular matrix multiplication and dynamic programming

26

Finding C5’s

Theorem: 53 1.63

2c

51 1 1 1 1 3( , , , , )

2 2 2 2 2 2C

Requires a non-constant number of degree classes.

The worst-case running time in obtained for regular graphs.

Page 27: Finding cycles using  rectangular matrix multiplication and dynamic programming

27

Finding C6’s

Conjecture:

10 3 134 4 622 4 13 917 4 6 4

6 11 2 9 164 5 4 710 16 57 7 2

2ifif

cifif

If the conjecture is true, then c6<1.65.

Page 28: Finding cycles using  rectangular matrix multiplication and dynamic programming

28

Finding odd cycles

Conjecture: for odd k3.( 1)

(2 1)kkc

k

The conjecture holds for k=3,5.

Page 29: Finding cycles using  rectangular matrix multiplication and dynamic programming

29

Open problems

• Is it possible to extend the technique presented to obtained improved algorithms?

• Find a feasible way for rigorously computing c6, c7, etc.

• Other applications?