15 251 great theoretical ideas in computer science
play

15-251 Great Theoretical Ideas in Computer Science Lecture 9: - PowerPoint PPT Presentation

15-251 Great Theoretical Ideas in Computer Science Lecture 9: Boolean Circuits September 29th, 2015 Where we are, where we are going Computer science is no more about computers than astronomy is about telescopes. ? P = NP P vs NP is on the


  1. 15-251 Great Theoretical Ideas in Computer Science Lecture 9: Boolean Circuits September 29th, 2015

  2. Where we are, where we are going Computer science is no more about computers than astronomy is about telescopes.

  3. ? P = NP

  4. P vs NP is on the horizon 1 million dollar question (or maybe 6 million dollar question) P = NP ???

  5. Computational complexity of an algorithm Recall: Definition: The running time of an algorithm A is defined as worst-case T A ( n ) = max { # steps A takes on I } instances I of size n

  6. Computational complexity of a problem The intrinsic complexity of a problem: Complexity of the best algorithm computing the problem. How to show an upper bound on the intrinsic complexity? > Give an algorithm that solves the problem. How to show a lower bound on the intrinsic complexity? > Argue against all possible algorithms that solve the problem. The dream : Get a matching upper and lower bound.

  7. What is P ? P The set of languages that can be decided in steps for some constant . O ( n k ) k The theoretical divide between efficient and inefficient: efficiently solvable. L ∈ P not efficiently solvable. L 62 P

  8. What is P ? In practice: Awesome! Like really awesome! O ( n ) Great! O ( n log n ) Kind of efficient. O ( n 2 ) Barely efficient. (???) O ( n 3 ) Would not call it efficient. O ( n 5 ) O ( n 10 ) Definitely not efficient! O ( n 100 ) WTF?

  9. Why P ? - P is not meant to mean “efficient in practice” - It means “You have done something extraordinarily better than brute force (exhaustive) search.” - So P is about mathematical insight into a problem’s structure. - Robust to notion of what is an elementary step, what model we use, reasonable encoding of input, implementation details. - Wouldn’t make sense to cut it off at some specific exponent. - Plus, big exponents don’t really arise. - If it does arise, usually can be brought down.

  10. Why P ? Summary : Being in P vs not being in P is a qualitative difference, not a quantitative one.

  11. What is NP ? EXP The set of languages that can be decided in steps for some constant . O ( k n ) k > 1 DECIDABLE LANGUAGES EXP NP : NP A class between P and . P EXP

  12. What is NP ? NP ? P = NP P asks whether these two sets are equal. How would you show ? P = NP Show that every problem in NP You have to argue against can be solved in poly-time. all possible poly-time TMs. How would you show ? P 6 = NP Show that there is a problem in NP which cannot be solved in poly-time.

  13. Boolean Circuits

  14. Some preliminary questions What is a Boolean circuit? - It is a computational model for computing decision problems (or computational problems). We already have TMs. Why Boolean circuits? - The definition is simpler. - Easier to understand, usually easier to reason about. - Boolean circuits can efficiently simulate TMs. (efficient decider TM efficient/small circuits.) ⇒ = - Circuits are good models to study parallel computation . - Real computers are built with digital circuits.

  15. Sounds awesome! So why didn’t we just learn about circuits first? There is a small catch. An algorithm is a finite answer to infinite number of questions. Stephen Kleene (1909 - 1994)

  16. Sounds awesome! So why didn’t we just learn about circuits first? There is a small catch. Circuits are an infinite answer to infinite number of questions. Anil Ada (???? - 2077)

  17. Dividing a problem according to length of input Σ = { 0 , 1 } f : { 0 , 1 } ∗ → { 0 , 1 } L ⊆ { 0 , 1 } ∗ { 0 , 1 } n = all strings of length n f n : { 0 , 1 } n → { 0 , 1 } L n = { w ∈ L : | w | = n } for x ∈ { 0 , 1 } n , f n ( x ) = f ( x ) f = ( f 0 , f 1 , f 2 , . . . ) L = L 0 ∪ L 1 ∪ L 2 ∪ · · ·

  18. Dividing a problem according to length of input A TM is a finite object (finite number of states) but can handle any input length. TM input output computes L Imagine a model where we allow the TM to grow with input length. … TM0 TM1 TM2 TM3 … L 3 L 1 L 2 L 0

  19. Dividing a problem according to length of input So one machine does not compute . L You use a family of machines: ( M 0 , M 1 , M 2 , . . . ) (Imagine having a different Python function for each input length.) Is this a reasonable/realistic model of computation? Boolean circuits work this way. Need a separate circuit for each input length.

  20. Picture of a circuit ∨ ∧ ∧ ∨ ¬ ¬ … x 1 x 2 x n x 3

  21. Picture of a circuit gates ∨ ∧ ∧ ∨ ¬ ¬ … x 1 x 2 x n x 3

  22. Picture of a circuit binary OR gate ∨ ∨ binary AND gate ∧ ∧ ∧ unary NOT gate ¬ ∨ ¬ ¬ input gate x i … x 1 x 2 x n x 3 output gate

  23. Picture of a circuit binary OR gate ∨ wires ∨ binary AND gate ∧ ∧ ∧ unary NOT gate ¬ ∨ ¬ ¬ input gate x i … x 1 x 2 x n x 3 output gate

  24. Picture of a circuit ∨ ∧ ∧ No feedback loops ∨ ¬ ¬ allowed! … x 1 x 2 x n x 3 Information flows from input gates to the output gate.

  25. Picture of a circuit binary OR gate ∨ ∨ binary AND gate ∧ ∧ ∧ unary NOT gate ¬ ∨ ¬ ¬ input gate x i … x 1 x 2 x n x 3 output gate 0 1 1 0 Computes a function . f : { 0 , 1 } n → { 0 , 1 } So how does it compute ? f ( x 1 , x 2 , . . . , x n )

  26. Picture of a circuit binary OR gate ∨ ∨ binary AND gate ∧ ∧ ∧ unary NOT gate ¬ ∨ ¬ ¬ input gate x i 0 … x 1 x 2 x n x 3 output gate 0 1 1 0 Computes a function . f : { 0 , 1 } n → { 0 , 1 } So how does it compute ? f ( x 1 , x 2 , . . . , x n )

  27. Picture of a circuit binary OR gate ∨ ∨ binary AND gate ∧ ∧ ∧ unary NOT gate ¬ ∨ ¬ ¬ input gate x i 0 1 1 … x 1 x 2 x n x 3 output gate 0 1 1 0 Computes a function . f : { 0 , 1 } n → { 0 , 1 } So how does it compute ? f ( x 1 , x 2 , . . . , x n )

  28. Picture of a circuit binary OR gate ∨ ∨ binary AND gate ∧ ∧ ∧ unary NOT gate ¬ ∨ ¬ ¬ input gate x i 0 1 1 1 … x 1 x 2 x n x 3 output gate 0 1 1 0 Computes a function . f : { 0 , 1 } n → { 0 , 1 } So how does it compute ? f ( x 1 , x 2 , . . . , x n )

  29. Picture of a circuit binary OR gate ∨ ∨ binary AND gate ∧ ∧ ∧ 1 unary NOT gate ¬ ∨ ¬ ¬ input gate x i 0 1 1 1 … x 1 x 2 x n x 3 output gate 0 1 1 0 Computes a function . f : { 0 , 1 } n → { 0 , 1 } So how does it compute ? f ( x 1 , x 2 , . . . , x n )

  30. Picture of a circuit binary OR gate ∨ ∨ binary AND gate ∧ ∧ ∧ 1 0 0 unary NOT gate ¬ ∨ ¬ ¬ input gate x i 0 1 1 1 … x 1 x 2 x n x 3 output gate 0 1 1 0 Computes a function . f : { 0 , 1 } n → { 0 , 1 } So how does it compute ? f ( x 1 , x 2 , . . . , x n )

  31. Picture of a circuit binary OR gate ∨ ∨ binary AND gate ∧ ∧ ∧ 1 0 0 1 unary NOT gate ¬ ∨ ¬ ¬ input gate x i 0 1 1 1 … x 1 x 2 x n x 3 output gate 0 1 1 0 Computes a function . f : { 0 , 1 } n → { 0 , 1 } So how does it compute ? f ( x 1 , x 2 , . . . , x n )

  32. Picture of a circuit binary OR gate ∨ ∨ 0 binary AND gate ∧ ∧ ∧ 1 0 0 1 unary NOT gate ¬ ∨ ¬ ¬ input gate x i 0 1 1 1 … x 1 x 2 x n x 3 output gate 0 1 1 0 Computes a function . f : { 0 , 1 } n → { 0 , 1 } So how does it compute ? f ( x 1 , x 2 , . . . , x n )

  33. Picture of a circuit binary OR gate ∨ ∨ 0 0 binary AND gate ∧ ∧ ∧ 1 0 0 1 unary NOT gate ¬ ∨ ¬ ¬ input gate x i 0 1 1 1 … x 1 x 2 x n x 3 output gate 0 1 1 0 Computes a function . f : { 0 , 1 } n → { 0 , 1 } So how does it compute ? f ( x 1 , x 2 , . . . , x n )

  34. Picture of a circuit 0 binary OR gate ∨ ∨ 0 0 binary AND gate ∧ ∧ ∧ 1 0 0 1 unary NOT gate ¬ ∨ ¬ ¬ input gate x i 0 1 1 1 … x 1 x 2 x n x 3 output gate 0 1 1 0 Computes a function . f : { 0 , 1 } n → { 0 , 1 } So how does it compute ? f ( x 1 , x 2 , . . . , x n )

  35. Poll: What does this circuit compute ? (sometimes circuits are drawn upside down) ¬ ¬ ¬ ¬ ∧ ∧ ∧ ∧ ∨ ∨ ¬ ¬ ∧ ∧ ∨

  36. Poll: What does this circuit compute ? (sometimes circuits are drawn upside down) ¬ ¬ ¬ ¬ ∧ ∧ ∧ ∧ ∨ ∨ ¬ ¬ ∧ ∧ ∨

  37. Poll: What does this circuit compute ? (sometimes circuits are drawn upside down) ¬ ¬ ¬ ¬ parity of parity of x + x x + x 1 2 3 4 ∧ ∧ ∧ ∧ x 1 ⊕ x 2 x 3 ⊕ x 4 ∨ ∨ ¬ ¬ ∧ ∧ ∨ x 1 ⊕ x 2 ⊕ x 3 ⊕ x 4

  38. How does a circuit decide/compute a language? How do we measure the complexity of a circuit?

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend