cs 301
play

CS 301 Lecture 26 Conclusion Stephen Checkoway May 2, 2018 1 / 9 - PowerPoint PPT Presentation

CS 301 Lecture 26 Conclusion Stephen Checkoway May 2, 2018 1 / 9 Whats this class good for anyway? Thinking logically will help any time you want to make an argument 2 / 9 Whats this class good for anyway? Thinking logically


  1. CS 301 Lecture 26 – Conclusion Stephen Checkoway May 2, 2018 1 / 9

  2. What’s this class good for anyway? • Thinking logically will help any time you want to make an argument 2 / 9

  3. What’s this class good for anyway? • Thinking logically will help any time you want to make an argument • Regular expressions are incredibly useful; learn to use them in your favorite programming language (and when not to use them) 2 / 9

  4. What’s this class good for anyway? • Thinking logically will help any time you want to make an argument • Regular expressions are incredibly useful; learn to use them in your favorite programming language (and when not to use them) • Context-free grammars are important for programming languages and compilers 2 / 9

  5. What’s this class good for anyway? • Thinking logically will help any time you want to make an argument • Regular expressions are incredibly useful; learn to use them in your favorite programming language (and when not to use them) • Context-free grammars are important for programming languages and compilers • Decidability helps you think about what problems you cannot solve with computers 2 / 9

  6. What’s this class good for anyway? • Thinking logically will help any time you want to make an argument • Regular expressions are incredibly useful; learn to use them in your favorite programming language (and when not to use them) • Context-free grammars are important for programming languages and compilers • Decidability helps you think about what problems you cannot solve with computers • Complexity helps you think about what problems you can solve or verify quickly 2 / 9

  7. So what’s next? • Algorithms! It turns out models of computation really do matter; computers aren’t Turing machines; O ( n log n ) is great, O ( n 2 ) can be too slow to use 3 / 9

  8. So what’s next? • Algorithms! It turns out models of computation really do matter; computers aren’t Turing machines; O ( n log n ) is great, O ( n 2 ) can be too slow to use • Sometimes, O ( n 2 ) works great and an equivalent O ( n log n ) algorithm takes longer (small inputs) 3 / 9

  9. So what’s next? • Algorithms! It turns out models of computation really do matter; computers aren’t Turing machines; O ( n log n ) is great, O ( n 2 ) can be too slow to use • Sometimes, O ( n 2 ) works great and an equivalent O ( n log n ) algorithm takes longer (small inputs) • More computability! 3 / 9

  10. So what’s next? • Algorithms! It turns out models of computation really do matter; computers aren’t Turing machines; O ( n log n ) is great, O ( n 2 ) can be too slow to use • Sometimes, O ( n 2 ) works great and an equivalent O ( n log n ) algorithm takes longer (small inputs) • More computability! • More complexity! We’ve only scratched the surface 3 / 9

  11. More computability and complexity? • What if we give our TM access to an “oracle” that in a single step can decide a language like A TM , what languages can you decide with this new capability? 4 / 9

  12. More computability and complexity? • What if we give our TM access to an “oracle” that in a single step can decide a language like A TM , what languages can you decide with this new capability? • Time bounds aren’t the only option, we can consider space constraints too 4 / 9

  13. More computability and complexity? • What if we give our TM access to an “oracle” that in a single step can decide a language like A TM , what languages can you decide with this new capability? • Time bounds aren’t the only option, we can consider space constraints too • What languages can you decide if you use a polynomial amount of space? PSPACE 4 / 9

  14. More computability and complexity? • What if we give our TM access to an “oracle” that in a single step can decide a language like A TM , what languages can you decide with this new capability? • Time bounds aren’t the only option, we can consider space constraints too • What languages can you decide if you use a polynomial amount of space? PSPACE • What languages can you decide with a nondeterministic TM in a polynomial amount of space? NSPACE ( f ( n )) ⊆ SPACE ( f 2 ( n )) (Savitch’s theorem); compare to time where there’s an exponential blow up 4 / 9

  15. More computability and complexity? • What if we give our TM access to an “oracle” that in a single step can decide a language like A TM , what languages can you decide with this new capability? • Time bounds aren’t the only option, we can consider space constraints too • What languages can you decide if you use a polynomial amount of space? PSPACE • What languages can you decide with a nondeterministic TM in a polynomial amount of space? NSPACE ( f ( n )) ⊆ SPACE ( f 2 ( n )) (Savitch’s theorem); compare to time where there’s an exponential blow up • What if you have a read-only input and a logarithmic amount of space to work with? (Effectively, you have a constant number of pointers) L 4 / 9

  16. More computability and complexity? • What if we give our TM access to an “oracle” that in a single step can decide a language like A TM , what languages can you decide with this new capability? • Time bounds aren’t the only option, we can consider space constraints too • What languages can you decide if you use a polynomial amount of space? PSPACE • What languages can you decide with a nondeterministic TM in a polynomial amount of space? NSPACE ( f ( n )) ⊆ SPACE ( f 2 ( n )) (Savitch’s theorem); compare to time where there’s an exponential blow up • What if you have a read-only input and a logarithmic amount of space to work with? (Effectively, you have a constant number of pointers) L • Same thing but with nondeterminism. NL = co-NL (bizarre!) 4 / 9

  17. More computability and complexity? • What if we give our TM access to an “oracle” that in a single step can decide a language like A TM , what languages can you decide with this new capability? • Time bounds aren’t the only option, we can consider space constraints too • What languages can you decide if you use a polynomial amount of space? PSPACE • What languages can you decide with a nondeterministic TM in a polynomial amount of space? NSPACE ( f ( n )) ⊆ SPACE ( f 2 ( n )) (Savitch’s theorem); compare to time where there’s an exponential blow up • What if you have a read-only input and a logarithmic amount of space to work with? (Effectively, you have a constant number of pointers) L • Same thing but with nondeterminism. NL = co-NL (bizarre!) • What if you give the TM access to randomness and allow the TM to be wrong sometimes? 4 / 9

  18. More computability and complexity? • What if we give our TM access to an “oracle” that in a single step can decide a language like A TM , what languages can you decide with this new capability? • Time bounds aren’t the only option, we can consider space constraints too • What languages can you decide if you use a polynomial amount of space? PSPACE • What languages can you decide with a nondeterministic TM in a polynomial amount of space? NSPACE ( f ( n )) ⊆ SPACE ( f 2 ( n )) (Savitch’s theorem); compare to time where there’s an exponential blow up • What if you have a read-only input and a logarithmic amount of space to work with? (Effectively, you have a constant number of pointers) L • Same thing but with nondeterminism. NL = co-NL (bizarre!) • What if you give the TM access to randomness and allow the TM to be wrong sometimes? • What if you require it give the right answer and “on average” takes polynomial time but on some inputs can take more? 4 / 9

  19. More computability and complexity? • What if we give our TM access to an “oracle” that in a single step can decide a language like A TM , what languages can you decide with this new capability? • Time bounds aren’t the only option, we can consider space constraints too • What languages can you decide if you use a polynomial amount of space? PSPACE • What languages can you decide with a nondeterministic TM in a polynomial amount of space? NSPACE ( f ( n )) ⊆ SPACE ( f 2 ( n )) (Savitch’s theorem); compare to time where there’s an exponential blow up • What if you have a read-only input and a logarithmic amount of space to work with? (Effectively, you have a constant number of pointers) L • Same thing but with nondeterminism. NL = co-NL (bizarre!) • What if you give the TM access to randomness and allow the TM to be wrong sometimes? • What if you require it give the right answer and “on average” takes polynomial time but on some inputs can take more? • What if instead of TMs, you have circuits? 4 / 9

  20. Complexity “zoo” L 5 / 9

  21. Complexity “zoo” NL = co-NL L 5 / 9

  22. Complexity “zoo” P NL = co-NL L 5 / 9

  23. Complexity “zoo” RP P NL = co-NL L 5 / 9

  24. Complexity “zoo” RP co-RP P NL = co-NL L 5 / 9

  25. Complexity “zoo” RP co-RP ZPP P NL = co-NL L 5 / 9

  26. Complexity “zoo” BPP RP co-RP ZPP P NL = co-NL L 5 / 9

  27. Complexity “zoo” BPP NP RP co-RP ZPP P NL = co-NL L 5 / 9

  28. Complexity “zoo” BPP NP co-NP RP co-RP ZPP P NL = co-NL L 5 / 9

  29. Complexity “zoo” PSPACE = NPSPACE BPP NP co-NP RP co-RP ZPP P NL = co-NL L 5 / 9

  30. EXPTIME Complexity “zoo” PSPACE = NPSPACE BPP NP co-NP RP co-RP ZPP P NL = co-NL L 5 / 9

Recommend


More recommend