360 likes | 505 Views
Randomized Algorithms CS648. Lecture 18 A pproximate Distance Oracles Algorithm for Min-cut : part 1. Approximate Distance oracles. All-Pairs Shortest Paths. Notations and Terminologies : A graph on vertices edges A path from to : a sequence , ,…, where ( , )
E N D
Randomized AlgorithmsCS648 Lecture 18 Approximate Distance Oracles Algorithm for Min-cut : part 1
All-Pairs Shortest Paths Notations and Terminologies : A graph on • vertices • edges A pathfrom 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 . Distancefrom to : the length of the shortest path from to . : Distance from to
All-Pairs Shortest Paths Problem 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)
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
A truly magical result Approximate Distance Oracles MikkelThorupand Uri Zwick: Approximate Distance Oracles for graphs, Journal of ACM (4), 2005
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 ?
Reporting distance from Report
stretch What is the 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 ; } 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.
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 ||
Expected size of = … … Increasing order of distance from None of is present in
Expected space of 3-approximate distance oracle Space for Global distance information: = = = Spacefor Local distance information: = = To minimize the total space: (Balance the two terms) Expected space: 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
Meant for only those (hopefully nonzero no. of) students whose aim is more than just a good grade in this course. 5-approximate distance oracle
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.
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.
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-cutis , what can be minimum value of ? Answer:
Contract() 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():
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:
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:
Algorithm for min-cut Min-cut(): { Repeat ?? times { Let ; Contract(). } return the edges of multi-graph ; } Running time:
Algorithm for min-cut Question: What is probability that is preserved during the algorithm ? Answer: = = >
Algorithm for min-cut Min-cut-high-probability(): { Repeat Min-cut() algorithm log times and report the smallest cut computed; } Running time: Error Probability : <