Download presentation

Presentation is loading. Please wait.

Published byJustina Lester Modified over 4 years ago

1
CSL758 Instructors: Naveen Garg Kavitha Telikepalli Scribe: Manish Singh Vaibhav Rastogi February 7 & 11, 2008.

2
The Quick Sort Problem To sort a given set of numbers In traditional quick sort algorithm, we pick a particular index element as pivot for splitting. Worst Case: O(n 2 ) Average Case: O(n log n) A good pivot can be selected using median finding algorithm but the total complexity will again be O(n 2 ). So, what if we pick a random element uniformly as pivot and do the partition. We will show that this takes expected O(n log n) time.

3
Randomized Quick Sort algorithm Assuming all elements are distinct We pick a random element x as the pivot and partition the input set S into two sets L and R such: L = numbers less than x R = numbers greater than x Recursively sort L and R. Return LxR

4
Analysis of Randomized Quick Sort The running time of this algorithm is variable. Running time = # of comparisons in this algorithm. Expected Running Time, Let S be the sorted sequence of the n input numbers. S = Let X ij = 1 if S i and S j are compared in the algo = 0 otherwise Running time = # of comparisons = S1S1 S2S2 SiSi SnSn S n-1 SjSj

5
Analysis cont… The expected running time = = Now, = 1 * Pr[S i and S j are compared in our alg.] + 0 * Pr[S i and S j are not compared] Suppose we have a set of numbers: 2, 7, 15, 18, 19, 23, 35 In this 18 and 19 will always be compared. 2 and 35 will be compared only if compared at root.

6
Analysis cont… Pr[S i and S j are compared in our algo] = Pr[the first element chosen as pivot in set {s i,s i+1,….,s j } is either s i or s j ]. To elements get compared only if they have ancestor relationship in the tree. Pr[Picking S i or S j ] = S1S1 S2S2 SiSi SnSn S n-1 SjSj 3 rd pivot 1 st pivot 2 nd pivot 4 th pivot5 th pivot

7
Analysis cont… Thus the expected runtime: This algorithm will always give the right answer though the running time may be different. This is an example of Las Vegas algorithms.

8
The global min cut problem Input: A connected undirected multigraph G(V, E). Output: A minimum cardinality subset of edges whose removal makes G disconnected. ab cd x

9
First Idea Recall the max flow problem An s-t min cut is the min cut which makes s and t disconnected. Run a max flow algorithm on G for all (s, t) pairs and return the smallest of the output cuts. Time: Since G is undirected we could fix s and iterate t over all other vertices. Time:

10
Reduce G to G 1 with one vertex less such that 1. 2. Contract a random edge. Each edge is contracted with probability Contract a random edge Another idea GG1G1 d c ab d c (a,b)

11
Observation 1 Any cut of G 1 is also a cut of G, with a and b on the same side. If mincut of G 1 < mincut of G This mincut of G1 should be the mincut of G, by the above observation. Thus, mincut of G 1 ≥ mincut of G.

12
Observation 2 Fix our favorite global mincut C, with Let e be the edge contracted. If e is not in C then C is also a cut in G 1. Using Observation 1, mincut of G 1 = mincut of G. e

13
Observation 2 cont… which is quite a high probability.

14
The algorithm Repeat Choose an edge of G uniformly at random and contract it. Let the resulting graph be called G. Until there are only two vertices in G. Output the set of edges between the two vertices as our candidate mincut.

15
Bounding the probability of correctness Let C be our favorite mincut and F be the cut output by the algorithm. Pr[F is C]=Pr[no edge of C is contracted in any iteration]. Let E i be the event that no edge of C got contracted in the i th iteration.

16
Bounding the probability of correctness We know that, Because C remains the mincut we can also bound the conditional following conditional probabilities as we bounded Thus,

17
Bounding the probability of correctness is the product of these conditional probabilities. So we have, This probability bound is too low. It can be improved by repeating the algorithm N times and returning the least cut.

18
Running time Choosing a random edge. Choose a vertex u with probability Now choose one of u’s with probability Time: O(n).

19
Running time Contracting edges: Use adjacency matrix. Add the rows and columns of u and v. O(n) time. u u v v u+vu+v u+vu+v

20
Running time The basic algorithm has iterations. Each iteration in the basic algorithm involves selecting and contracting a random edge. O(n) time. The basic algorithm is repeated times. Therefore running time =

Similar presentations

© 2020 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google