1 Decomposition into bipartite graphs with minimum degree 1. Raphael Yuster.
1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster...
-
date post
20-Dec-2015 -
Category
Documents
-
view
226 -
download
0
Transcript of 1 Finding cycles using rectangular matrix multiplication and dynamic programming Raphael Yuster...
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
2
Matrix multiplication
= ij ik kjc a bi ja i jb
ComplexityAuthors
n3folklore
n2.81Strassen (1969)
n2.38Coppersmith, Winograd (1990)
n???
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)... =
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
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.
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 .
7
Finding triangles
A triangle
A graph
Does the graph contain a triangle? Yes!
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
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)
10
Finding longer cycles
A graph G contains a Ck iff Ak-1AT≠0 ?
We want simple cycles!
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.
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
=
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.”
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 עוד יותר מהר
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
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]
17
Finding C4’s in O(m 2-2/ n1/) time
[EG ’03]
m mm
, ,m mm M n
m
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]
19
Finding C4’s in O(m(4-1)/(2+1)) time [YZ ’03]
m mm
, ,m m mm M
m m
20
• Where do we go from here?
• Why just three degree classes?
• How many cases will we have for C5, C6, …?
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?
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.
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.
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
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
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.
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.
28
Finding odd cycles
Conjecture: for odd k3.( 1)
(2 1)k
kc
k
The conjecture holds for k=3,5.
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?