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

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

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

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

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: 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri

2

Matrix multiplication

= ij ik kjc a bi ja i jb

ComplexityAuthors

n3folklore

n2.81Strassen (1969)

n2.38Coppersmith, Winograd (1990)

n???

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

3

Rectangular Matrix multiplication

=

ab

c

abc

c

b c

a a

b

=

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

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

4

Rectangular Matrix multiplication

a

bc

c

= a

2If , then ( , , )a c

b a c M a b c b ab cb b

3( , , )

min{ , , }

abcM a b c

a b c

There are also improved specially designed rectangular matrix multiplication algorithms

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

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: 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri

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: 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri

7

Finding triangles

A triangle

A graph

Does the graph contain a triangle? Yes!

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

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: 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri

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: 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri

10

Finding longer cycles

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

We want simple cycles!

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

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: 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri

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

mm

Finding a cycle passing through a high degree

vertex

=

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

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: 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri

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: 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri

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: 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri

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: 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri

17

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

[EG ’03]

m mm

, ,m mm M n

m

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

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: 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri

19

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

m mm

, ,m m mm M

m m

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

20

• Where do we go from here?

• Why just three degree classes?

• How many cases will we have for C5, C6, …?

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

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: 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri

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: 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri

23

Finding paths

kd2d1d

1

m

d

Degree:

Sizeof class:

k

m

d2

m

d

We get a chain matrix product problem!

We can use the sparsity of the matrices.

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

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: 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri

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: 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster Haifa Univ. - Oranim Uri Zwick Tel Aviv University Uri

26

Finding C5’s

Theorem: 5

31.63

2c

5

1 1 1 1 1 3( , , , , )2 2 2 2 2 2

C

Requires a non-constant number of degree classes.

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

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

27

Finding C6’s

Conjecture:

10 3 134 4 6

22 4 13 917 4 6 4

6 11 2 9 164 5 4 7

10 16 57 7 2

2if

ifc

if

if

If the conjecture is true, then c6<1.65.

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

28

Finding odd cycles

Conjecture: for odd k3.( 1)

(2 1)k

kc

k

The conjecture holds for k=3,5.

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

29

Open problems

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

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

• Other applications?