Post on 23-Jun-2015
Randomized AlgorithmsCS648
Lecture 18• Approximate Distance Oracles• Algorithm for Min-cut : part 1
1
APPROXIMATE DISTANCE ORACLES
2
All-Pairs Shortest Paths
Notations and Terminologies :A graph on
– vertices – edges –
A path from to : a sequence , ,…, where (,) Length of a path : sum of the weights on the edges of path .Shortest path from to : the path of smallest length from to . Distance from to : the length of the shortest path from to .
: Distance from to
3
All-Pairs Shortest PathsProblem Definition: Given a graph , build a compact data structure so that for any ,• can be reported in time • Shortest path from to can be reported in optimal time.
Results known:• size data structure
(Distance matrix and Witness matrix)• preprocessing time (Dijkstra’s algorithm from each vertex)
Current-state-of-the-art RAM size: 8 GBs
Can’t handle graphs with even vertices (with RAM size)
4
All-Pairs Approximate Shortest Paths
Problem Definition: Given a graph , build a compact data structure so that for any , it reports in time satisfying
: stretch.
Aim: To achieve • Sub-quadratic space.• Sub-cubic preprocessing time.With query time.
Many elegant results have been invented for undirected graphs
5
A truly magical result
:Stretch Space Query time Preprocessing time
6
𝟑
𝟓𝟐𝒌−𝟏
𝑶 (𝒏𝟏+𝟏
𝟐) 𝑶 (𝟏) 𝑶 (𝒎𝒏𝟏𝟐 )
𝑶 (𝒏𝟏+𝟏
𝟑) 𝑶 (𝟏) 𝑶 (𝒎𝒏𝟏𝟑 )
𝑶 (𝒏𝟏+𝟏
𝒌) 𝑶 (𝒌) 𝑶 (𝒌𝒎𝒏𝟏𝒌)
Approximate Distance Oracles
Mikkel Thorup and Uri Zwick:Approximate Distance Oracles for graphs, Journal of ACM (4), 2005
INSPIRATION FROM OUR DAILY LIFE
7
Air/Road Network
8
𝑲𝒂𝒏𝒑𝒖𝒓
𝑳𝒖𝒄𝒌𝒏𝒐𝒘
𝑩𝒂𝒏𝒈𝒂𝒍𝒐𝒓𝒆
𝑫𝒆𝒍𝒉𝒊
The Idea
Given a graph ,• Compute a small set of Landmark vertices. • From each vertex , store distance to vertices present in its locality.• From each vertex , store distance to all vertices in the graph.
Questions: • What is the formal notion of locality ?• How to retrieve distance from to a far away vertex ?• What is the guarantee of stretch ?• How to compute the desired set efficiently ?
9
10
Formal notion of locality
𝒖
11
Formal notion of locality
= {}
𝒖 𝑳 (𝒖)
𝑩𝒂𝒍𝒍 (𝒖 ,𝑽 ,𝑳)
12
Reporting distance from
𝒖
𝒗
𝑳 (𝒖)
𝑩𝒂𝒍𝒍 (𝒖 ,𝑽 ,𝑳)
𝒗
𝜹 (𝒖 ,𝑳 (𝒖))≤ 𝜹 (𝒖 ,𝒗 ) Report
13
??
What is the stretch ?
𝒖
𝒗
𝑳 (𝒖)
𝜹 (𝒖 ,𝑳 (𝒖))≤ 𝜹 (𝒖 ,𝒗 )
𝑩𝒂𝒍𝒍 (𝒖 ,𝑽 ,𝑳)
≤ 𝜹 (𝒖 ,𝒗 )+𝜹 (𝒖 ,𝑳(𝒖))
stretch
3-approximate distance oracle
Preprocessing-algorithm(){ Compute set suitably; For each store distance to all vertices; For each compute ; Build a hash table storing distances from to ;
}
Query(, ){ If return ; else return ;}
14
Global distance info.
Local distance info.
The real challenge left
How to compute set such that• is small.• is small for each .
Fact1: It is difficult, if not impossible, to compute such a set deterministically.
Fact2: The structure of graph (the edges and weights) can be arbitrary and more complex than planar road/air networkk.
15
16
The real challenge left
𝒖 𝑳 (𝒖)
𝑩𝒂𝒍𝒍 (𝒖 ,𝑽 ,𝑳)
Conquering the challenge
Let be a fraction to be fixed later on.Computing :{ ∅; For each Add to independently with probability ; return ;}
Expected size of :
• : random variable for ||
17
Expected size of
=
18
𝒖Increasing order of distance from
… …
None of is present in
𝑩𝒂𝒍𝒍 (𝒖 ,𝑽 ,𝑳)
Expected space of 3-approximate distance oracle
Space for Global distance information: = = =
Space for Local distance information: = =
To minimize the total space: (Balance the two terms)
Expected space:
19
Each vertex in keeps a Ball)
Theorem: An undirected weighted graph can be processed to build a data structure of expected size that can report 3-approximate distance between any pair of vertices in time.
Homework: • Convert to a Las Vegas algorithm with high probability bound on space.• Show that expected preprocessing time is
20
5-APPROXIMATE DISTANCE ORACLE
Meant for only those (hopefully nonzero no. of) students whose aim is more than just a good grade in this course.
21
3-approximate distance oracle
22
𝑽
𝑳
5-approximate distance oracle
23
𝑽
𝑳𝟏
𝑳𝟐
24
5-approximate distance oracle
𝒖 𝑳𝟏(𝒖)
𝑩𝒂𝒍𝒍 (𝒖 ,𝑽 ,𝑳𝟏)
𝑩𝒂𝒍𝒍 (𝒖 ,𝑳𝟏 ,𝑳𝟐)
𝑳𝟐(𝒖)
PROBLEM 2MIN-CUT
25
Min-Cut
: undirected connected graph Definition (cut):A subset whose removal disconnects the graph.
Definition (min-cut): A cut of smallest size.Problem Definition: Design algorithm to compute min-cut of a given graph.
26
Min-Cut
Deterministic Algorithms:• time - Designed in 1997, - Quite complex to analyze and implement Randomized Algorithms:• time Monte Carlo [1993]
• time Monte Carlo [1996]
- Both are much simpler and easier to implement.
27
SOME BASIC FACTS
28
Min-Cut
Question: How many cuts ?Answer: Question : what is relation between degree() and size of min-cut ?Answer: size of min-cut degree() Question : If size of min-cut is , what can be minimum value of ?Answer:
29
Contract()
30
𝒖
𝒗
𝒘𝒚
𝒙 𝒂
𝒃 𝒉
𝒍
𝒙𝒚
𝒖
𝒗
𝒘
𝒂
𝒃 𝒉
𝒍
Contract(
Contract()
Contract(){ Let ; Merge the two vertices and into one vertex; Preserve multi-edges; Remove the edge ; Let be the modified graph; return ;}
Time complexity of Contract():
31
Contract()
Let be the size of min-cut of . Let be any min-cut of . Let be the graph after Contract().
Observation: Every cut of is also a cut of .
Question: Under what circumstance is a cut of ?Answer: if .
Question: If is selected randomly uniformly, what is the probability that is preserved in ?Answer:
32
≤𝒌
𝒏𝒌 /𝟐≤𝟐𝒏
Contract()
Let be the size of min-cut of . Let be any min-cut of . Lemma: If edge to be contracted is selected randomly uniformly, is preserved with probability at least .
Let ; Contract().Let ; Contract().
Question: What is probability that is preserved in ?Answer:
33
Algorithm for min-cut
Min-cut():{ Repeat ?? times {
Let ; Contract().
} return the edges of multi-graph ;}
Running time:
34
𝒏−𝟐
Algorithm for min-cut
Question: What is probability that is preserved during the algorithm ?Answer:
= = >
35
Algorithm for min-cut
Min-cut-high-probability():{ Repeat Min-cut() algorithm log times and report the smallest cut computed;} Running time: Error Probability : <
36