1 / 28

CSCI 3160 Design and Analysis of Algorithms Tutorial 3

CSCI 3160 Design and Analysis of Algorithms Tutorial 3. Fei Chen. Outline. More examples about 2-SAT More randomized algorithms Verifying Matrix Multiplication String Equality Test Design Patterns. 2-SAT. Given (x 1 ∨¬x 2 )∧(x 2 ∨¬x 3 )∧(x 4 ∨x 3 )∧(x 5 ∨x 1 )∧(x 4 ∨¬x 5 )

terrel
Download Presentation

CSCI 3160 Design and Analysis of Algorithms Tutorial 3

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. CSCI 3160 Design and Analysis of AlgorithmsTutorial 3 Fei Chen

  2. Outline • More examples about 2-SAT • More randomized algorithms • Verifying Matrix Multiplication • String Equality Test • Design Patterns

  3. 2-SAT • Given (x1∨¬x2)∧(x2∨¬x3)∧(x4∨x3)∧(x5∨x1)∧(x4∨¬x5) • (x1, x2, x3, x4, x5) = (T, T, T, T, T) is a satisfying assignment. • Suppose you do not know about this solution • You do not even know if there exists a solution for this formula • How to decide if there is one using randomness?

  4. 2-SAT • (x1∨¬x2)∧(x2∨¬x3)∧(x4∨x3)∧(x5∨x1)∧(x4∨¬x5) • Start with a random assignment, • say (x1, x2, x3, x4, x5) = (F, T, F, F, T) Number of xis that agrees with the solution (i.e. number of i such that xi = T) 0 1 2 3 4 5

  5. 2-SAT • (x1∨¬x2)∧(x2∨¬x3)∧(x4∨x3)∧(x5∨x1)∧(x4∨¬x5) • Find an unsatisfied clause: (x4∨x3) • flipone of the value of x3 and x4 randomly • If we flip x3, then we jump from 2 to 3 • If we flip x4, then we jump from 2 to 3 clauses

  6. 2-SAT • (x1∨¬x2)∧(x2∨¬x3)∧(x4∨x3)∧(x5∨x1)∧(x4∨¬x5) • Find an unsatisfied clause: (x1∨¬x2) • flipone of the value of x1 and x2 randomly • If we flip x1, then we jump from 3 to 4 • If we flip x2, then we jump from 3 to 2 clauses

  7. 2-SAT • (x1∨¬x2)∧(x2∨¬x3)∧(x4∨x3)∧(x5∨x1)∧(x4∨¬x5) • Find an unsatisfied clause: (x2∨¬x3) • flipone of the value of x2 and x3 randomly • If we flip x2, then we jump from 2 to 3 • If we flip x3, then we jump from 2 to 1 clauses

  8. 2-SAT • (x1∨¬x2)∧(x2∨¬x3)∧(x4∨x3)∧(x5∨x1)∧(x4∨¬x5) • Find an unsatisfied clause: (x1∨¬x2) • flipone of the value of x1 and x2 randomly • If we flip x1, then we jump from 3 to 4 • If we flip x2, then we jump from 3 to 2 clauses

  9. 2-SAT • (x1∨¬x2)∧(x2∨¬x3)∧(x4∨x3)∧(x5∨x1)∧(x4∨¬x5) • Find an unsatisfied clause: (x4∨¬x5) • flipone of the value of x4 and x5 randomly • If we flip x4, then we jump from 4 to 5 • If we flip x5, then we jump from 4 to 3 clauses

  10. 2-SAT • (x1∨¬x2)∧(x2∨¬x3)∧(x4∨x3)∧(x5∨x1)∧(x4∨¬x5) • Find an unsatisfied clause: none • We have a satisfying assignment! =) clauses

  11. Analysis • To do the analysis, assume we have a satisfying assignment in mind, call it solution • Of course, we do not know if a satisfying assignment exists when we run the algorithm • we do this for the analysis only • We compare the current assignment with the solution • And record the number of variables that are assigned to the same T/F value in both (current and solution) assignments

  12. 2-SAT • (x1∨¬x2)∧(x2∨¬x3)∧(x4∨x3)∧(x5∨x1)∧(x4∨¬x5) • Find an unsatisfied clause: (x4∨x3) • flipone of the value of x3 and x4 randomly • If we flip x3, then we jump from 2 to 3 • If we flip x4, then we jump from 2 to 3 clauses Number of xis that agrees with the solution (i.e. xi = T) with prob. 1 0 1 2 3 4 5

  13. 2-SAT • (x1∨¬x2)∧(x2∨¬x3)∧(x4∨x3)∧(x5∨x1)∧(x4∨¬x5) • Find an unsatisfied clause: (x1∨¬x2) • flipone of the value of x1 and x2 randomly • If we flip x1, then we jump from 3 to 4 • If we flip x2, then we jump from 3 to 2 clauses Number of xis that agrees with the solution (i.e. xi = T) with prob. 1/2 with prob. 1/2 0 1 2 3 4 5

  14. 2-SAT • (x1∨¬x2)∧(x2∨¬x3)∧(x4∨x3)∧(x5∨x1)∧(x4∨¬x5) • Find an unsatisfied clause: (x2∨¬x3) • flipone of the value of x2 and x3 randomly • If we flip x2, then we jump from 2 to 3 • If we flip x3, then we jump from 2 to 1 clauses Number of xis that agrees with the solution (i.e. xi = T) with prob. 1/2 with prob. 1/2 0 1 2 3 4 5

  15. 2-SAT • (x1∨¬x2)∧(x2∨¬x3)∧(x4∨x3)∧(x5∨x1)∧(x4∨¬x5) • Find an unsatisfied clause: (x1∨¬x2) • flipone of the value of x1 and x2 randomly • If we flip x1, then we jump from 3 to 4 • If we flip x2, then we jump from 3 to 2 clauses Number of xis that agrees with the solution (i.e. xi = T) with prob. 1/2 with prob. 1/2 0 1 2 3 4 5

  16. 2-SAT • (x1∨¬x2)∧(x2∨¬x3)∧(x4∨x3)∧(x5∨x1)∧(x4∨¬x5) • Find an unsatisfied clause: (x4∨¬x5) • flipone of the value of x4 and x5 randomly • If we flip x4, then we jump from 4 to 5 • If we flip x5, then we jump from 4 to 3 clauses Number of xis that agrees with the solution (i.e. xi = T) with prob. 1/2 with prob. 1/2 0 1 2 3 4 5

  17. 2-SAT • (x1∨¬x2)∧(x2∨¬x3)∧(x4∨x3)∧(x5∨x1)∧(x4∨¬x5) • Find an unsatisfied clause: none • We have a satisfying assignment! =) clauses Number of xis that agrees with the solution (i.e. xi = T) 0 1 2 3 4 5

  18. 2-SAT with prob. 1 0 1 • We always move to the right with probability at least 1/2 2 3 4 5 with prob. 1/2 with prob. 1/2 0 1 2 3 4 5 with prob. 1/2 with prob. 1/2 0 1 2 3 4 5 with prob. 1/2 with prob. 1/2 0 1 2 3 4 5 with prob. 1/2 with prob. 1/2 0 1 2 3 4 5 0 1 2 3 4 5

  19. 2-SAT • We always move forward with probably at least 1/2 • a satisfying assignment must satisfy every clause • When we find an unsatisfied clause, it must be bad • The values of the literals in a satisfying assignment must be one of the good ones • Hence, can always flip one to move to the right

  20. 2-SAT • We always move forward with probably at least 1/2 • When we reach n (i.e. 5 in the example), we have a satisfying assignment. • Sufficient condition, not necessary. • There may be other satisfying assignments • But that will only improve the running time • This is random walk on line • and so we expect O(n2) jumps to hit n (refer to lecture notes)

  21. 2-SAT Randomized algorithm: • Repeat O(n2) times, • if we hit 5 in the middle of these O(n2) flips, return there is an assignment • otherwise, return there is NO satisfying assignment

  22. Verifying Matrix Multiplication • Given 3 n x n matrices A, B and C, verify if AB = C • Naïve algorithm • Compute AB, check if it is equal to C • Runs in time O(n3), dominated by computing AB • How to do faster with high probability?

  23. Verifying Matrix Multiplication • Given 3 n x n matrices A, B and C, verify if AB = C • Consider AB – C • Want to see if AB – C is an all-zeros matrix • Lecture: how to check if two polynomials are identical? • Evaluate the polynomials at different points

  24. Verifying Matrix Multiplication • Given 3 n x n matrices A, B and C, verify if AB = C • Now, multiply AB – C by different random vectors • To avoid computing AB, we compute A(Bx) – Cx We have • Working over modulo 2, • If AB ≠ C, then Pr[(AB - C)x ≠ 0] ≥ 1/2

  25. String equality • Alice has an n-bit string (a1, a2, …, an) • Bob has an n-bit string (b1, b2, …, bn) • Alice can communicate with Bob • How to send as few bits as possible so that they know the two strings are equal?

  26. String equality • Alice has an n-bit string (a1, a2, …, an) • Bob has an n-bit string (b1, b2, …, bn) • Represent • (a1, a2, …, an) by a1 + a2x + … + anxn-1 • (b1, b2, …, bn) by b1 + b2x + … + bnxn-1 • Polynomial Identity Testing! • This idea can be extended to pattern matching

  27. Design Patterns • Pr[Correct] = 1 • possibly worst-case time • Example: randomized quick sort; 2-SAT • Pr[Correct] < 1 but not too small • Usually run the algorithm repeatedly to get a large success probability • Example min-cut • Analysis method: Probability / Concentration inequalities, etc.

  28. End • Questions?

More Related