cs 573 algorithms
play

CS 573: Algorithms . Sariel Har-Peled sariel@illinois.edu 3306 SC - PowerPoint PPT Presentation

. CS 573: Algorithms . Sariel Har-Peled sariel@illinois.edu 3306 SC University of Illinois, Urbana-Champaign Fall 2013 Sariel (UIUC) CS573 1 Fall 2013 1 / 55 CS 573: Algorithms, Fall 2013 Administrivia, Introduction Lecture 1 August


  1. Efficient algorithms So, is there an efficient/good/effective algorithm for primality? . Question: . What does efficiency mean? . In this class efficiency is broadly equated to polynomial time . O ( n ) , O ( n log n ) , O ( n 2 ) , O ( n 3 ) , O ( n 100 ) , . . . where n is size of the input. Why? Is n 100 really efficient/practical? Etc. Short answer: polynomial time is a robust, mathematically sound way to define efficiency. Has been useful for several decades. Sariel (UIUC) CS573 20 Fall 2013 20 / 55

  2. Efficient algorithms So, is there an efficient/good/effective algorithm for primality? . Question: . What does efficiency mean? . In this class efficiency is broadly equated to polynomial time . O ( n ) , O ( n log n ) , O ( n 2 ) , O ( n 3 ) , O ( n 100 ) , . . . where n is size of the input. Why? Is n 100 really efficient/practical? Etc. Short answer: polynomial time is a robust, mathematically sound way to define efficiency. Has been useful for several decades. Sariel (UIUC) CS573 20 Fall 2013 20 / 55

  3. Efficient algorithms So, is there an efficient/good/effective algorithm for primality? . Question: . What does efficiency mean? . In this class efficiency is broadly equated to polynomial time . O ( n ) , O ( n log n ) , O ( n 2 ) , O ( n 3 ) , O ( n 100 ) , . . . where n is size of the input. Why? Is n 100 really efficient/practical? Etc. Short answer: polynomial time is a robust, mathematically sound way to define efficiency. Has been useful for several decades. Sariel (UIUC) CS573 20 Fall 2013 20 / 55

  4. Efficient algorithms So, is there an efficient/good/effective algorithm for primality? . Question: . What does efficiency mean? . In this class efficiency is broadly equated to polynomial time . O ( n ) , O ( n log n ) , O ( n 2 ) , O ( n 3 ) , O ( n 100 ) , . . . where n is size of the input. Why? Is n 100 really efficient/practical? Etc. Short answer: polynomial time is a robust, mathematically sound way to define efficiency. Has been useful for several decades. Sariel (UIUC) CS573 20 Fall 2013 20 / 55

  5. Efficient algorithms So, is there an efficient/good/effective algorithm for primality? . Question: . What does efficiency mean? . In this class efficiency is broadly equated to polynomial time . O ( n ) , O ( n log n ) , O ( n 2 ) , O ( n 3 ) , O ( n 100 ) , . . . where n is size of the input. Why? Is n 100 really efficient/practical? Etc. Short answer: polynomial time is a robust, mathematically sound way to define efficiency. Has been useful for several decades. Sariel (UIUC) CS573 20 Fall 2013 20 / 55

  6. TSP problem Lincoln’s tour . Circuit court - ride through 1 Metamora counties staying a few days in Pekin each town. Bloomington . . Lincoln was a lawyer traveling 2 Urbana Clinton Danville with the Eighth Judicial Circuit. . t i M k s a Springfield u l Monticello P . . Picture: travel during 1850. 3 Decator . . . Sullivan Very close to optimal tour. 1 Paris . . . Might have been optimal Taylorville 2 Shelbyville at the time.. Sariel (UIUC) CS573 21 Fall 2013 21 / 55

  7. Solving TSP by a Computer Is it hard? . n = number of cities. 1 . . n 2 : size of input. 2 . . Number of possible solutions is 3 n ∗ ( n − 1) ∗ ( n − 2) ∗ ... ∗ 2 ∗ 1 = n ! . . . n ! grows very quickly as n grows. 4 n = 10 : n ! ≈ 3628800 n = 50 : n ! ≈ 3 ∗ 10 64 n = 100 : n ! ≈ 9 ∗ 10 157 Sariel (UIUC) CS573 22 Fall 2013 22 / 55

  8. Solving TSP by a Computer Fastest computer... . . Fastest super computer can do (roughly) 1 2 . 5 ∗ 10 15 operations a second. Assume: computer checks 2 . 5 ∗ 10 15 solutions every second, . . 2 then... . . . n = 20 = ⇒ 2 hours. 1 . . . n = 25 = ⇒ 200 years. 2 ⇒ 2 ∗ 10 20 years!!! . . . n = 37 = 3 Sariel (UIUC) CS573 23 Fall 2013 23 / 55

  9. What is a good algorithm? Running time... n 2 ops n 3 ops n 4 ops Input size n ! ops 5 0 secs 0 secs 0 secs 0 secs 20 0 secs 0 secs 0 secs 16 mins 3 · 10 9 years 30 0 secs 0 secs 0 secs 100 0 secs 0 secs 0 secs never 8000 0 secs 0 secs 1 secs never 16000 0 secs 0 secs 26 secs never 32000 0 secs 0 secs 6 mins never 64000 0 secs 0 secs 111 mins never 200,000 0 secs 3 secs 7 days never 2,000,000 0 secs 53 mins 202.943 years never 10 9 years 10 8 4 secs 12.6839 years never 10 13 years 10 9 6 mins 12683.9 years never Sariel (UIUC) CS573 24 Fall 2013 24 / 55

  10. What is a good algorithm? Running time... Sariel (UIUC) CS573 25 Fall 2013 25 / 55

  11. Primes is in P ! . Theorem (Agrawal-Kayal-Saxena’02) . There is a polynomial time algorithm for primality. . First polynomial time algorithm for testing primality. Running time is O (log 12 N ) further improved to about O (log 6 N ) by others. In terms of input size n = log N , time is O ( n 6 ) . Sariel (UIUC) CS573 26 Fall 2013 26 / 55

  12. What about before 2002? Primality testing a key part of cryptography. What was the algorithm being used before 2002? Miller-Rabin randomized algorithm: runs in polynomial time: O (log 3 N ) time . . 1 . . if N is prime correctly says “yes”. 2 . . if N is composite it says “yes” with probability at most 1 / 2 100 3 (can be reduced further at the expense of more running time). Based on Fermat’s little theorem and some basic number theory. Sariel (UIUC) CS573 27 Fall 2013 27 / 55

  13. Factoring . . Modern public-key cryptography based on RSA 1 (Rivest-Shamir-Adelman) system. . . Relies on the difficulty of factoring a composite number into its 2 prime factors. . . There is a polynomial time algorithm that decides whether a 3 given number N is prime or not (hence composite or not) but no known polynomial time algorithm to factor a given number. . Lesson . Intractability can be useful! . Sariel (UIUC) CS573 28 Fall 2013 28 / 55

  14. Factoring . . Modern public-key cryptography based on RSA 1 (Rivest-Shamir-Adelman) system. . . Relies on the difficulty of factoring a composite number into its 2 prime factors. . . There is a polynomial time algorithm that decides whether a 3 given number N is prime or not (hence composite or not) but no known polynomial time algorithm to factor a given number. . Lesson . Intractability can be useful! . Sariel (UIUC) CS573 28 Fall 2013 28 / 55

  15. Unit-Cost RAM Model Informal description: . . Basic data type is an integer/floating point number 1 . . Numbers in input fit in a word 2 . . Arithmetic/comparison operations on words take constant time 3 . . Arrays allow random access (constant time to access A [ i ] ) 4 . . Pointer based data structures via storing addresses in a word 5 Sariel (UIUC) CS573 29 Fall 2013 29 / 55

  16. Example Sorting: input is an array of n numbers . . input size is n (ignore the bits in each number), 1 . . comparing two numbers takes O (1) time, 2 . . random access to array elements, 3 . . addition of indices takes constant time, 4 . . basic arithmetic operations take constant time, 5 . . reading/writing one word from/to memory takes constant time. 6 We will usually not allow (or be careful about allowing): . . bitwise operations (and, or, xor, shift, etc). 1 . . floor function. 2 . limit word size (usually assume unbounded word size). 3 Sariel (UIUC) CS573 30 Fall 2013 30 / 55

  17. Caveats of RAM Model Unit-Cost RAM model is applicable in wide variety of settings in practice. However it is not a proper model in several important situations so one has to be careful. . . For some problems such as basic arithmetic computation, 1 unit-cost model makes no sense. Examples: multiplication of two n -digit numbers, primality etc. . . Input data is very large and does not satisfy the assumptions 2 that individual numbers fit into a word or that total memory is bounded by 2 k where k is word length. . . Assumptions valid only for certain type of algorithms that do not 3 create large numbers from initial data. For example, exponentiation creates very big numbers from initial numbers. Sariel (UIUC) CS573 31 Fall 2013 31 / 55

  18. Models used in class In this course: . . Assume unit-cost RAM by default. 1 . . We will explicitly point out where unit-cost RAM is not 2 applicable for the problem at hand. Sariel (UIUC) CS573 32 Fall 2013 32 / 55

  19. Part IV . Reductions . Sariel (UIUC) CS573 33 Fall 2013 33 / 55

  20. Independent Sets and Cliques Given a graph G , a set of vertices V ′ is: independent set : no two vertices of V ′ connected by an edge. . . 1 . Sariel (UIUC) CS573 34 Fall 2013 34 / 55

  21. Independent Sets and Cliques Given a graph G , a set of vertices V ′ is: independent set : no two vertices of V ′ connected by an edge. . . 1 . Sariel (UIUC) CS573 34 Fall 2013 34 / 55

  22. Independent Sets and Cliques Given a graph G , a set of vertices V ′ is: independent set : no two vertices of V ′ connected by an edge. . . 1 clique : every pair of vertices in V ′ is connected by an edge of . . 2 G . . Sariel (UIUC) CS573 34 Fall 2013 34 / 55

  23. Independent Sets and Cliques Given a graph G , a set of vertices V ′ is: independent set : no two vertices of V ′ connected by an edge. . . 1 clique : every pair of vertices in V ′ is connected by an edge of . . 2 G . . . Sariel (UIUC) CS573 34 Fall 2013 34 / 55

  24. Independent Sets and Cliques Given a graph G , a set of vertices V ′ is: independent set : no two vertices of V ′ connected by an edge. . . 1 clique : every pair of vertices in V ′ is connected by an edge of . . 2 G . . . Sariel (UIUC) CS573 34 Fall 2013 34 / 55

  25. Independent Sets and Cliques Given a graph G , a set of vertices V ′ is: independent set : no two vertices of V ′ connected by an edge. . . 1 clique : every pair of vertices in V ′ is connected by an edge of . . 2 G . . . Sariel (UIUC) CS573 34 Fall 2013 34 / 55

  26. The Independent Set and Clique Problems Independent Set Instance : A graph G and an integer k . Question: Does G has an independent set of size ≥ k ? Clique Instance : A graph G and an integer k . Question: Does G has a clique of size ≥ k ? Sariel (UIUC) CS573 35 Fall 2013 35 / 55

  27. The Independent Set and Clique Problems Independent Set Instance : A graph G and an integer k . Question: Does G has an independent set of size ≥ k ? Clique Instance : A graph G and an integer k . Question: Does G has a clique of size ≥ k ? Sariel (UIUC) CS573 35 Fall 2013 35 / 55

  28. Types of Problems . Decision, Search, and Optimization . . Decision problem . Example: given n , is n prime?. 1 . . Search problem . Example: given n , find a factor of n if it 2 exists. . . Optimization problem . Example: find the smallest prime 3 factor of n . . Sariel (UIUC) CS573 36 Fall 2013 36 / 55

  29. Types of Problems . Decision, Search, and Optimization . . Decision problem . Example: given n , is n prime?. 1 . . Search problem . Example: given n , find a factor of n if it 2 exists. . . Optimization problem . Example: find the smallest prime 3 factor of n . . Sariel (UIUC) CS573 36 Fall 2013 36 / 55

  30. Types of Problems . Decision, Search, and Optimization . . Decision problem . Example: given n , is n prime?. 1 . . Search problem . Example: given n , find a factor of n if it 2 exists. . . Optimization problem . Example: find the smallest prime 3 factor of n . . Sariel (UIUC) CS573 36 Fall 2013 36 / 55

  31. Reducing Independent Set to Clique An instance of Independent Set is a graph G and an integer k . . Sariel (UIUC) CS573 37 Fall 2013 37 / 55

  32. Reducing Independent Set to Clique An instance of Independent Set is a graph G and an integer k . . . Sariel (UIUC) CS573 37 Fall 2013 37 / 55

  33. Reducing Independent Set to Clique An instance of Independent Set is a graph G and an integer k . Convert G to G , in which ( u , v ) is an edge iff ( u , v ) is not an edge of G . ( G is the complement of G .) We use G and k as the instance of Clique . . . Sariel (UIUC) CS573 37 Fall 2013 37 / 55

  34. Reducing Independent Set to Clique An instance of Independent Set is a graph G and an integer k . Convert G to G , in which ( u , v ) is an edge iff ( u , v ) is not an edge of G . ( G is the complement of G .) We use G and k as the instance of Clique . . . Sariel (UIUC) CS573 37 Fall 2013 37 / 55

  35. Reducing Independent Set to Clique An instance of Independent Set is a graph G and an integer k . Convert G to G , in which ( u , v ) is an edge iff ( u , v ) is not an edge of G . ( G is the complement of G .) We use G and k as the instance of Clique . . . Sariel (UIUC) CS573 37 Fall 2013 37 / 55

  36. Reducing Independent Set to Clique An instance of Independent Set is a graph G and an integer k . Convert G to G , in which ( u , v ) is an edge iff ( u , v ) is not an edge of G . ( G is the complement of G .) We use G and k as the instance of Clique . . . Sariel (UIUC) CS573 37 Fall 2013 37 / 55

  37. Independent Set and Clique . . Independent Set ≤ Clique . 1 What does this mean? . . If have an algorithm for Clique , then we have an algorithm for 2 Independent Set . . . Clique is at least as hard as Independent Set . 3 . . Also... Independent Set is at least as hard as Clique . 4 Sariel (UIUC) CS573 38 Fall 2013 38 / 55

  38. Independent Set and Clique . . Independent Set ≤ Clique . 1 What does this mean? . . If have an algorithm for Clique , then we have an algorithm for 2 Independent Set . . . Clique is at least as hard as Independent Set . 3 . . Also... Independent Set is at least as hard as Clique . 4 Sariel (UIUC) CS573 38 Fall 2013 38 / 55

  39. Independent Set and Clique . . Independent Set ≤ Clique . 1 What does this mean? . . If have an algorithm for Clique , then we have an algorithm for 2 Independent Set . . . Clique is at least as hard as Independent Set . 3 . . Also... Independent Set is at least as hard as Clique . 4 Sariel (UIUC) CS573 38 Fall 2013 38 / 55

  40. Independent Set and Clique . . Independent Set ≤ Clique . 1 What does this mean? . . If have an algorithm for Clique , then we have an algorithm for 2 Independent Set . . . Clique is at least as hard as Independent Set . 3 . . Also... Independent Set is at least as hard as Clique . 4 Sariel (UIUC) CS573 38 Fall 2013 38 / 55

  41. Reductions, revised. For decision problems X , Y , a reduction from X to Y is: . . An algorithm . . . 1 . . Input: I X , an instance of X . 2 . . Output: I Y an instance of Y . 3 . . Such that: 4 I Y is YES instance of Y ⇐ ⇒ I X is YES instance of X There are other kinds of reductions. Sariel (UIUC) CS573 39 Fall 2013 39 / 55

  42. Reductions, revised. For decision problems X , Y , a reduction from X to Y is: . . An algorithm . . . 1 . . Input: I X , an instance of X . 2 . . Output: I Y an instance of Y . 3 . . Such that: 4 I Y is YES instance of Y ⇐ ⇒ I X is YES instance of X There are other kinds of reductions. Sariel (UIUC) CS573 39 Fall 2013 39 / 55

  43. Using reductions to solve problems . . R : Reduction X → Y 1 . . A Y : algorithm for Y : 2 . . = ⇒ New algorithm for X : 3 A X ( I X ) : // I X : instance of X . I Y ⇐ R ( I X ) return A Y ( I Y ) If R and A Y polynomial-time = ⇒ A X polynomial-time. Sariel (UIUC) CS573 40 Fall 2013 40 / 55

  44. Using reductions to solve problems . . R : Reduction X → Y 1 . . A Y : algorithm for Y : 2 . . = ⇒ New algorithm for X : 3 A X ( I X ) : // I X : instance of X . I Y ⇐ R ( I X ) return A Y ( I Y ) If R and A Y polynomial-time = ⇒ A X polynomial-time. Sariel (UIUC) CS573 40 Fall 2013 40 / 55

  45. Using reductions to solve problems . . R : Reduction X → Y 1 . . A Y : algorithm for Y : 2 . . = ⇒ New algorithm for X : 3 A X ( I X ) : // I X : instance of X . I Y ⇐ R ( I X ) return A Y ( I Y ) YES I X I Y R A Y NO A X If R and A Y polynomial-time = ⇒ A X polynomial-time. Sariel (UIUC) CS573 40 Fall 2013 40 / 55

  46. Comparing Problems . . “Problem X is no harder to solve than Problem Y ”. 1 . . If Problem X reduces to Problem Y (we write X ≤ Y ), then 2 X cannot be harder to solve than Y . . . X ≤ Y : 3 . . . X is no harder than Y , or 1 . . . Y is at least as hard as X . 2 Sariel (UIUC) CS573 41 Fall 2013 41 / 55

  47. Polynomial-time reductions YES I X I Y R A Y NO A X . Algorithm is efficient if it runs in polynomial-time. 1 . . Interested only in polynomial-time reductions. 2 . . X ≤ P Y : Have polynomial-time reduction from problem X to 3 problem Y . . . A Y : poly-time algorithm for Y . 4 . . = ⇒ Polynomial-time/efficient algorithm for X . 5 Sariel (UIUC) CS573 42 Fall 2013 42 / 55

  48. Polynomial-time reductions YES I X I Y R A Y NO A X . Algorithm is efficient if it runs in polynomial-time. 1 . . Interested only in polynomial-time reductions. 2 . . X ≤ P Y : Have polynomial-time reduction from problem X to 3 problem Y . . . A Y : poly-time algorithm for Y . 4 . . = ⇒ Polynomial-time/efficient algorithm for X . 5 Sariel (UIUC) CS573 42 Fall 2013 42 / 55

  49. Polynomial-time reductions YES I X I Y R A Y NO A X . Algorithm is efficient if it runs in polynomial-time. 1 . . Interested only in polynomial-time reductions. 2 . . X ≤ P Y : Have polynomial-time reduction from problem X to 3 problem Y . . . A Y : poly-time algorithm for Y . 4 . . = ⇒ Polynomial-time/efficient algorithm for X . 5 Sariel (UIUC) CS573 42 Fall 2013 42 / 55

  50. Polynomial-time reductions YES I X I Y R A Y NO A X . Algorithm is efficient if it runs in polynomial-time. 1 . . Interested only in polynomial-time reductions. 2 . . X ≤ P Y : Have polynomial-time reduction from problem X to 3 problem Y . . . A Y : poly-time algorithm for Y . 4 . . = ⇒ Polynomial-time/efficient algorithm for X . 5 Sariel (UIUC) CS573 42 Fall 2013 42 / 55

  51. Polynomial-time reductions and hardness . Lemma . For decision problems X and Y , if X ≤ P Y , and Y has an efficient algorithm, X has an efficient algorithm. . . . Independent Set : “believe” there is no efficient algorithm. 1 . . What about Clique ? 2 . . Showed: Independent Set ≤ P Clique . 3 . . If Clique had an efficient algorithm, so would Independent 4 Set ! Sariel (UIUC) CS573 43 Fall 2013 43 / 55

  52. Polynomial-time reductions and hardness . Lemma . For decision problems X and Y , if X ≤ P Y , and Y has an efficient algorithm, X has an efficient algorithm. . . . Independent Set : “believe” there is no efficient algorithm. 1 . . What about Clique ? 2 . . Showed: Independent Set ≤ P Clique . 3 . . If Clique had an efficient algorithm, so would Independent 4 Set ! Sariel (UIUC) CS573 43 Fall 2013 43 / 55

  53. Polynomial-time reductions and hardness . Lemma . For decision problems X and Y , if X ≤ P Y , and Y has an efficient algorithm, X has an efficient algorithm. . . . Independent Set : “believe” there is no efficient algorithm. 1 . . What about Clique ? 2 . . Showed: Independent Set ≤ P Clique . 3 . . If Clique had an efficient algorithm, so would Independent 4 Set ! Sariel (UIUC) CS573 43 Fall 2013 43 / 55

  54. Polynomial-time reductions and hardness . Lemma . For decision problems X and Y , if X ≤ P Y , and Y has an efficient algorithm, X has an efficient algorithm. . . . Independent Set : “believe” there is no efficient algorithm. 1 . . What about Clique ? 2 . . Showed: Independent Set ≤ P Clique . 3 . . If Clique had an efficient algorithm, so would Independent 4 Set ! Sariel (UIUC) CS573 43 Fall 2013 43 / 55

  55. Polynomial-time reductions and hardness . Lemma . For decision problems X and Y , if X ≤ P Y , and Y has an efficient algorithm, X has an efficient algorithm. . . . Independent Set : “believe” there is no efficient algorithm. 1 . . What about Clique ? 2 . . Showed: Independent Set ≤ P Clique . 3 . . If Clique had an efficient algorithm, so would Independent 4 Set ! . Observation . If X ≤ P Y and X does not have an efficient algorithm, Y cannot have an efficient algorithm! . Sariel (UIUC) CS573 43 Fall 2013 43 / 55

  56. Polynomial-time reductions and instance sizes . Proposition . R : a polynomial-time reduction from X to Y . Then, for any instance I X of X , the size of the instance I Y of Y produced from I X by R is polynomial in the size of I X . . . Proof. . R is a polynomial-time algorithm and hence on input I X of size | I X | it runs in time p ( | I X | ) for some polynomial p () . I Y is the output of R on input I X . R can write at most p ( | I X | ) bits and hence | I Y | ≤ p ( | I X | ) . . Note: Converse is not true. A reduction need not be polynomial-time even if output of reduction is of size polynomial in its input. Sariel (UIUC) CS573 44 Fall 2013 44 / 55

  57. Polynomial-time reductions and instance sizes . Proposition . R : a polynomial-time reduction from X to Y . Then, for any instance I X of X , the size of the instance I Y of Y produced from I X by R is polynomial in the size of I X . . . Proof. . R is a polynomial-time algorithm and hence on input I X of size | I X | it runs in time p ( | I X | ) for some polynomial p () . I Y is the output of R on input I X . R can write at most p ( | I X | ) bits and hence | I Y | ≤ p ( | I X | ) . . Note: Converse is not true. A reduction need not be polynomial-time even if output of reduction is of size polynomial in its input. Sariel (UIUC) CS573 44 Fall 2013 44 / 55

  58. Polynomial-time reductions and instance sizes . Proposition . R : a polynomial-time reduction from X to Y . Then, for any instance I X of X , the size of the instance I Y of Y produced from I X by R is polynomial in the size of I X . . . Proof. . R is a polynomial-time algorithm and hence on input I X of size | I X | it runs in time p ( | I X | ) for some polynomial p () . I Y is the output of R on input I X . R can write at most p ( | I X | ) bits and hence | I Y | ≤ p ( | I X | ) . . Note: Converse is not true. A reduction need not be polynomial-time even if output of reduction is of size polynomial in its input. Sariel (UIUC) CS573 44 Fall 2013 44 / 55

  59. Polynomial-time Reduction . Definition . A polynomial time reduction from a decision problem X to a decision problem Y is an algorithm A such that: . . Given an instance I X of X , A produces an instance I Y of Y . 1 . . A runs in time polynomial in | I X | . This implies that | I Y | (size 2 of I Y ) is polynomial in | I X | . . . Answer to I X YES iff answer to I Y is YES. 3 . . Proposition . If X ≤ P Y then a polynomial time algorithm for Y implies a polynomial time algorithm for X . . This is a Karp reduction . Sariel (UIUC) CS573 45 Fall 2013 45 / 55

  60. Transitivity of Reductions . Proposition . X ≤ P Y and Y ≤ P Z implies that X ≤ P Z . . . . Note: X ≤ P Y does not imply that Y ≤ P X and hence it is 1 very important to know the FROM and TO in a reduction. . . To prove X ≤ P Y you need to show a reduction FROM X TO 2 Y . . ...show that an algorithm for Y implies an algorithm for X . 3 Sariel (UIUC) CS573 46 Fall 2013 46 / 55

  61. Transitivity of Reductions . Proposition . X ≤ P Y and Y ≤ P Z implies that X ≤ P Z . . . . Note: X ≤ P Y does not imply that Y ≤ P X and hence it is 1 very important to know the FROM and TO in a reduction. . . To prove X ≤ P Y you need to show a reduction FROM X TO 2 Y . . ...show that an algorithm for Y implies an algorithm for X . 3 Sariel (UIUC) CS573 46 Fall 2013 46 / 55

  62. Transitivity of Reductions . Proposition . X ≤ P Y and Y ≤ P Z implies that X ≤ P Z . . . . Note: X ≤ P Y does not imply that Y ≤ P X and hence it is 1 very important to know the FROM and TO in a reduction. . . To prove X ≤ P Y you need to show a reduction FROM X TO 2 Y . . ...show that an algorithm for Y implies an algorithm for X . 3 Sariel (UIUC) CS573 46 Fall 2013 46 / 55

  63. Vertex Cover Given a graph G = ( V , E ) , a set of vertices S is: . . A vertex cover if every e ∈ E has at least one endpoint in S . 1 . Sariel (UIUC) CS573 47 Fall 2013 47 / 55

  64. Vertex Cover Given a graph G = ( V , E ) , a set of vertices S is: . . A vertex cover if every e ∈ E has at least one endpoint in S . 1 . Sariel (UIUC) CS573 47 Fall 2013 47 / 55

  65. Vertex Cover Given a graph G = ( V , E ) , a set of vertices S is: . . A vertex cover if every e ∈ E has at least one endpoint in S . 1 . . Sariel (UIUC) CS573 47 Fall 2013 47 / 55

  66. Vertex Cover Given a graph G = ( V , E ) , a set of vertices S is: . . A vertex cover if every e ∈ E has at least one endpoint in S . 1 . . Sariel (UIUC) CS573 47 Fall 2013 47 / 55

  67. Vertex Cover Given a graph G = ( V , E ) , a set of vertices S is: . . A vertex cover if every e ∈ E has at least one endpoint in S . 1 . . Sariel (UIUC) CS573 47 Fall 2013 47 / 55

  68. The Vertex Cover Problem . Problem ( Vertex Cover ) . Input: A graph G and integer k . Goal: Is there a vertex cover of size ≤ k in G ? . Can we relate Independent Set and Vertex Cover ? Sariel (UIUC) CS573 48 Fall 2013 48 / 55

  69. The Vertex Cover Problem . Problem ( Vertex Cover ) . Input: A graph G and integer k . Goal: Is there a vertex cover of size ≤ k in G ? . Can we relate Independent Set and Vertex Cover ? Sariel (UIUC) CS573 48 Fall 2013 48 / 55

  70. Relationship between... Vertex Cover and Independent Set . Proposition . Let G = ( V , E ) be a graph. S is an independent set if and only if V \ S is a vertex cover. . . Proof. . ( ⇒ ) Let S be an independent set . . . Consider any edge uv ∈ E . 1 . . . Since S is an independent set, either u ̸∈ S or v ̸∈ S . 2 . . . Thus, either u ∈ V \ S or v ∈ V \ S . 3 . . . V \ S is a vertex cover. 4 ( ⇐ ) Let V \ S be some vertex cover: . . . Consider u , v ∈ S 1 . . . uv is not an edge of G , as otherwise V \ S does not cover uv . 2 . . . = ⇒ S is thus an independent set. 3 . Sariel (UIUC) CS573 49 Fall 2013 49 / 55

  71. Independent Set ≤ P Vertex Cover . . G : graph with n vertices, and an integer k be an instance of 1 the Independent Set problem. . . G has an independent set of size ≥ k iff G has a vertex cover 2 of size ≤ n − k . . ( G , k ) is an instance of Independent Set , and ( G , n − k ) is 3 an instance of Vertex Cover with the same answer. . . Therefore, Independent Set ≤ P Vertex Cover . Also Vertex 4 Cover ≤ P Independent Set . Sariel (UIUC) CS573 50 Fall 2013 50 / 55

  72. Independent Set ≤ P Vertex Cover . . G : graph with n vertices, and an integer k be an instance of 1 the Independent Set problem. . . G has an independent set of size ≥ k iff G has a vertex cover 2 of size ≤ n − k . . ( G , k ) is an instance of Independent Set , and ( G , n − k ) is 3 an instance of Vertex Cover with the same answer. . . Therefore, Independent Set ≤ P Vertex Cover . Also Vertex 4 Cover ≤ P Independent Set . Sariel (UIUC) CS573 50 Fall 2013 50 / 55

  73. Independent Set ≤ P Vertex Cover . . G : graph with n vertices, and an integer k be an instance of 1 the Independent Set problem. . . G has an independent set of size ≥ k iff G has a vertex cover 2 of size ≤ n − k . . ( G , k ) is an instance of Independent Set , and ( G , n − k ) is 3 an instance of Vertex Cover with the same answer. . . Therefore, Independent Set ≤ P Vertex Cover . Also Vertex 4 Cover ≤ P Independent Set . Sariel (UIUC) CS573 50 Fall 2013 50 / 55

  74. Independent Set ≤ P Vertex Cover . . G : graph with n vertices, and an integer k be an instance of 1 the Independent Set problem. . . G has an independent set of size ≥ k iff G has a vertex cover 2 of size ≤ n − k . . ( G , k ) is an instance of Independent Set , and ( G , n − k ) is 3 an instance of Vertex Cover with the same answer. . . Therefore, Independent Set ≤ P Vertex Cover . Also Vertex 4 Cover ≤ P Independent Set . Sariel (UIUC) CS573 50 Fall 2013 50 / 55

  75. The Set Cover Problem . Problem ( Set Cover ) . Input: Given a set U of n elements, a collection S 1 , S 2 , . . . S m of subsets of U , and an integer k . Goal: Is there a collection of at most k of these sets S i whose union is equal to U ? . . Example . Let U = { 1 , 2 , 3 , 4 , 5 , 6 , 7 } , k = 2 with S 1 = { 3 , 7 } S 2 = { 3 , 4 , 5 } S 3 = { 1 } S 4 = { 2 , 4 } S 5 = { 5 } S 6 = { 1 , 2 , 6 , 7 } { S 2 , S 6 } is a set cover . Sariel (UIUC) CS573 51 Fall 2013 51 / 55

Recommend


More recommend