300 likes | 448 Views
Randomized Algorithms CS648. Lecture 19 algorithm for Min-cut in a graph. Overview. 1. Recap of the previous lecture time Monte Carlo algorithm for min-cut 2. Knowledge of recurrence 3. time Monte Carlo algorithm for min-cut 4. An important bi-product: .
E N D
Randomized AlgorithmsCS648 Lecture 19 algorithm for Min-cut in a graph
Overview 1. Recap of the previous lecture time Monte Carlo algorithm for min-cut 2. Knowledge of recurrence 3.time Monte Carlo algorithm for min-cut 4. An important bi-product: To design efficient algorithm A new tool to design an efficient algorithm
Graph and Multi-graph A multi-graph may have: • More than one edge between a pair of vertices • No self loop
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 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: How about cuts in multi-graph ?
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(): Relation between and ?
Relation betweenand? Contract(
Observations about Contract() Let be the size of min-cut of . Let be any min-cut of . Let be the graph after Contract(). Observation 1: may be a multi-graph. Observation 2: Every cut of is also a cut of . Observation 3: remains a cut of if . Question: If is selected randomly uniformly, what is the probability that is preserved in ? Answer: Recall that
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 : <
In the following slides, we shall revisit common recurrences. Try to solve these recurrences in a simple manner instead of using Master’s theorem. This will help you develop a useful insight into recurrences. This insight will help you fine-tune the previous inefficient algorithm and eventually lead to design (and analysis) of a more efficient algorithm for min-cut. Revisiting Recurrences
Common recurrences Question:What is the largest value of for which the solution of the following recurrence ?
Revisiting algorithm for min-cut Min-cut(): { Repeat ?? times { Let ; Contract(). } return the edges of multi-graph ; } Running time: We shall modify this algorithm to improve its success probability. But we shall not allow any significant blow up in the running time.
Algorithm for min-cut Probability that min-cut is preserved during the algorithm : = Question: What is probability that min-cut is preserved in first iteration ? Answer: Try to make careful observations based on the above answer to improve the success probability of the min-cut algorithm.
Key observations about Min-Cut algorithm Algorithm performs contractions : After contractions: • Min-cut is preserved with probability ¼ . • There are only vertices left. (the graph size is significantly reduced). IDEA: Invoke two calls of Min-cut algorithmafter contractions and return the smaller of the two cuts computed. Since the graph size is reduced significantly, we can afford to do it. recursively
Revised algorithm for min-cut Fast-Min-cut(): If has at most 10 vertices compute exact min-cut else { ; Repeat times { Let ; Contract(). } Fast-Min-cut(); Fast-Min-cut(); Let be smaller of the cuts ,; } return; • for Question: Prob. min-cut is preserved at the end of the Repeat loop = ? Question: How to increase this prob.? Answer:reduce. Question: What is the smallest value of to ensure ? 1/4
Faster algorithm for min-cut Fast-Min-cut(): If has at most 10 vertices compute exact min-cut else { ; Repeattimes { Let ; Contract(). } Fast-Min-cut(); Fast-Min-cut(); Let be smaller of the cuts ,; } return; Running time of the algorithm : Question: Prob. min-cut is preserved at the end of the Repeat loop = ? : the probability that algorithm returns the min-cut. For , For ,?? 1/2
Success probability ofFast-Min-cut() For , For , = We shall now show that recurrence has a solution: If we repeat Fast-Min-cut total times and report the smallest of all the output, probability of error= ?? <
Solving the recurrence For , For , = Substituting , we get the recurrence For , For ,
Solving the recurrence For , For , = It suffices to consider the above recurrence only for those which are powers of . For the sake of neatness, let us use to denote . Thus the above recurrence can be expressed as
Solving the recurrence It suffices to solve the following recurrence. , For , • The recurrence still looks difficult since it does not belong to the pool of recurrences you are familiar with. • However, it has a very short and elementary solution. In fact the solution is very inspiring. • First try on your own before proceeding to the following slides.
Solving the recurrence , For , Observation 1: Observation 2: Hence, • // by unfolding and using the fact that • // and we are done. proof //since
This lecture introduced many concepts which can be used for design and analysis of efficient randomized algorithms. Try to reflect upon these concept…