1 / 30

Randomized Algorithms CS648

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: .

arnav
Download Presentation

Randomized Algorithms CS648

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Randomized AlgorithmsCS648 Lecture 19 algorithm for Min-cut in a graph

  2. 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

  3. Recap of the previous lecture

  4. Graph and Multi-graph A multi-graph may have: • More than one edge between a pair of vertices • No self loop

  5. 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.

  6. some basic facts

  7. 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 ?

  8. Contract() Contract(

  9. 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 ?

  10. Relation betweenand? Contract(

  11. 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

  12. 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:

  13. Algorithm for min-cut Min-cut(): { Repeat ?? times { Let ; Contract(). } return the edges of multi-graph ; } Running time:

  14. Algorithm for min-cut Question: What is probability that is preserved during the algorithm ? Answer: = = >

  15. Algorithm for min-cut Min-cut-high-probability(): { Repeat Min-cut() algorithm log times and report the smallest cut computed; } Running time: Error Probability : <

  16. 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

  17. Common recurrences

  18. Common recurrences Question:What is the largest value of for which the solution of the following recurrence ?

  19. Faster Min-cut algorithm

  20. 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.

  21. 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.

  22. 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

  23. 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

  24. 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

  25. 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= ?? <

  26. Solving the recurrence For , For , = Substituting , we get the recurrence For , For ,

  27. 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

  28. 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.

  29. Solving the recurrence , For , Observation 1: Observation 2: Hence, • // by unfolding and using the fact that • // and we are done. proof //since

  30. This lecture introduced many concepts which can be used for design and analysis of efficient randomized algorithms. Try to reflect upon these concept…

More Related