1 / 32

The Best Algorithms are Randomized Algorithms

The Best Algorithms are Randomized Algorithms. N. Harvey C&O Dept. TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: A A A A A A A A. Why do we randomize?. Reasons for Randomness. Fooling Adversaries Symmetry Breaking Searching a Haystack

penn
Download Presentation

The Best Algorithms are Randomized Algorithms

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. The Best Algorithms are Randomized Algorithms N. Harvey C&O Dept TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAAAAA

  2. Why do we randomize?

  3. Reasons for Randomness • Fooling Adversaries • Symmetry Breaking • Searching a Haystack • Sampling huge sets • ...

  4. Picking Passwords • Encryption keys are randomly chosen

  5. The Hallway Dance • Randomly go left or right • After a few twists you won’t collide(usually!)

  6. QuickSort 17 5 23 9 12 4 19 10 5 9 12 4 23 17 19 10 • If I knew an approximate median, I could partition into 2 groups & recurse • A random element is probably close to the median • Like “searching for hay in a haystack”

  7. Reasons for Randomness • Fooling Adversaries • Symmetry Breaking • Searching a Haystack • ...

  8. Another Adversary Example IP • Linux 2.4.20 denial-of-service attack • Kernel uses a hash table to cache info about IP traffic flows • Adversary sends many IP packets that all have same hash value • Hash table becomes linked list; Kernel very slow • Solution: Randomized hash function

  9. Another Symmetry Breaking Example • Ethernet Media Access Control • Try to send packet • If collision detected • Wait for a random delay • Retry sending packet http://picasaweb.google.com/tomatobasil

  10. Another Haystack Example • Consider the polynomial f(x,y)=(x-y2)(x2+2y+1) • Problem: Find a point (x,y) that is not a zero of f • If f0 then, for randomly chosen (x,y), Pr[ f(x,y)=0 ] = 0 • Even over finite fields, Pr[ f(x,y)=0 ] is small

  11. Reasons for Randomness • Fooling Adversaries • Symmetry Breaking • Searching a Haystack • ... • Beauty: randomization often gives really cool algorithms!

  12. Graph Basics • A graph is a collection of verticesand edges • Every edge joins two vertices • The degree of a vertex is # edges attached to it

  13. Graph Connectivity A connected graph A disconnected graph • Problem: How many edges do you need to remove to make a graph disconnected?

  14. Graph Connectivity • Problem: How many edges do you need to remove to make a graph disconnected? • Connectivityis minimum # edges whose removal disconnects the graph • Observation:for every vertex v, degree(v)  connectivity • Because removing all edges attached to vertex v disconnects the graph

  15. Graph Connectivity • Problem: How many edges do you need to remove to make a graph disconnected? • Connectivityis minimum # edges whose removal disconnects the graph • Useful in many applications: • How many MFCF network cables must be cut to disrupt MC’s internet connectivity? • How many bombs can my oil pipelines withstand?

  16. Graph Connectivity Example S • Removing red edges disconnects graph • Definition: A cut is a set of edges of the form{ all edges with exactly one endpoint in S }where S is some set of vertices. • Fact: min set of edges that disconnects graph is always a cut

  17. Algorithms for Graph Connectivity • Given a graph, how to compute connectivity? • Standard Approach: Network Flow Theory • Ford-Fulkerson Algorithm computes an st min cut(minimum # edges to disconnect vertices s & t) • Compute this value for all vertices s and t, then take the minimum • Get min # edges to disconnect any two vertices • CO 355 Approach: • Compute st min cuts by ellipsoid method instead • Next: An amazing randomizedapproach

  18. Algorithm Overview • Input: A haystack • Output: A needle (maybe) • While haystack not too small • Pick a random handful • Throw it away • End While • Output whatever is left

  19. Edge Contraction u w v • Key operation: contracting an edge uv • Delete the edge uv • Combine u & v into a single vertex w • Any edge with endpoint u or v now ends at w

  20. Edge Contraction v u w • Key operation: contracting an edge uv • Delete the edge uv • Combine u & v into a single vertex w • Any edge with endpoint u or v now ends at w • This can create “parallel” edges

  21. Randomized Algorithm for Connectivity • Input: A graph • Output: Minimum cut (maybe) • While graph has  2 vertices “Not too small” • Pick an edge uv at random “Random Handful” • Contract it “Throw it away” • End While • Output remaining edges

  22. Graph Connectivity Example • We were lucky: Remaining edges are the min cut • How lucky must we be to find the min cut? • Theorem(Karger ‘93): The probability that this algorithm finds a min cut is  1/(# vertices)2.

  23. But does the algorithm work? • How lucky must we be to find the min cut? • Theorem(Karger ‘93): The probability that this algorithm finds a min cut is  1/n2. (n = # vertices) • Fairly low success probability. Is this useful? • Yes! Run the algorithm n2 times. • Pr[ fails to find min cut ]  (1-1/n2)n2 1/e • So algorithm succeeds with probability > 1/2

  24. Proof of Main Theorem • While graph has  2 vertices “Not too small” • Pick an edge uv at random “Random Handful” • Contract it “Throw it away” • End While • Output remaining edges • Fix some min cut. Say it has k edges. • If algorithm doesn’t contract any edge in this cut, then the algorithm outputs this cut • When contracting edge uv, both u & v are on same side of cut • So what is probability that this happens?

  25. Initially there are n vertices. • Claim 1: # edges in min cut=k  every vertex has degree  k  total # edges  nk/2 • Pr[random edge is in min cut] = # edges in min cut / total # edges k / (nk/2) = 2/n

  26. Now there are n-1 vertices. • Claim 2: min cut in remaining graph is  k • Why? Every cut in remaining graph is also a cut in original graph. • So, Pr[ random edge is in min cut ]  2/(n-1)

  27. In general, when there are i vertices left Pr[ random edge is in min cut ]  2/i • So Pr[ alg never contracts an edge in min cut ]

  28. Final Algorithm • Input: Graph G • Output: min cut, with probability  1/2 • For i=1,..,n2 • Start from G • While graph has  2 vertices • Pick an edge uv at random • Contract it • End While • Let Ei = { remaining edges } • End For • Output smallest Ei • Running time: O(m¢n2) (m = # edges, n = # vertices) • With more beautiful ideas, improves to  O(n2)

  29. How Many Min Cuts? • Our analysis: for any particular min cut, Pr[ algorithm finds that min cut ]  1/n2 • So suppose C1, C2, ..., Ct are all the min cuts • 1/n2 fraction of the time the algorithm finds C1 • 1/n2 fraction of the time the algorithm finds C2 • ... • 1/n2 fraction of the time the algorithm finds Ct • This is only possible if t ·n2 • Corollary: Any connected graph on n verticeshas · n2 min cuts. (Actually, min cuts)

  30. How Many Min Cuts? • Corollary: Any connected graph on n vertices has min cuts. • Is this optimal? • An n-cycle has exactly min cuts!

  31. How Many Approximate Min Cuts? • A similar analysis gives a nice generalization: • Theorem (Karger-Stein ‘96):Let G be a graph with min cut size k.Then # { cuts with k edges }  n2. • No other proof of this theorem is known!

  32. Classes • CS 466, CS 761 (still active?), C&O 738 Books Mitzenmacher-Upfal Motwani-Raghavan Alon-Spencer

More Related