theory of computation
play

Theory of computation B. Srivathsan Chennai Mathematical Institute - PowerPoint PPT Presentation

Theory of computation B. Srivathsan Chennai Mathematical Institute 1/31 http://www.cmi.ac.in/~sri/Courses/TOC2013 2/31 Why do this course? 3/31 Credits Contents of this talk are picked from / inspired by: Wikipedia Sipser:


  1. Theory of computation B. Srivathsan Chennai Mathematical Institute 1/31

  2. http://www.cmi.ac.in/~sri/Courses/TOC2013 2/31

  3. Why do this course? 3/31

  4. Credits Contents of this talk are picked from / inspired by: ◮ Wikipedia ◮ Sipser: Introduction to the theory of computation ◮ Kleene: Introduction to metamathematics ◮ Emerson: The beginning of model-checking: A personal perspective ◮ Scott Aaronson’s course at MIT: Great ideas in theoretical CS 4/31

  5. 1900 - 1940 5/31

  6. (Illustrations from Logicomix. Published by Bloomsbury) 6/31

  7. “ Those who don’t shave themselves are shaved by the barber ” 7/31

  8. “ Those who don’t shave themselves are shaved by the barber ” Who will shave the barber ? 7/31

  9. “ Those who don’t shave themselves are shaved by the barber ” Who will shave the barber ? Russell’s paradox (1901) questioned Cantor’s set theory Bertrand Russell (1872 - 1970) 7/31

  10. Foundational crisis of mathematics New schools of thought emerged in early 20 th century Intuitionist: Brouwer Formalist: Russell, Whitehead, Hilbert 8/31

  11. Hilbert’s programme David Hilbert (1862 - 1943) Goal: convert Mathematics to mechanical manipulation of symbols 9/31

  12. ∀ : for all ∃ : there exists ∧ : and ◮ There are infinitely many primes ∀ q ∃ p ∀ x , y [ p > q ∧ ( x , y > 1 → xy � = p ) ] ◮ Fermat’s last theorem ∀ a , b , c , n [ ( a , b , c > 0 ∧ n > 2 ) → a n + b n � = c n ] ◮ Twin prime conjecture ∀ q ∃ p ∀ x , y [ p > q ∧ ( x , y > 1 → ( xy � = p ∧ xy � = p + 2 ) ) ] 10/31

  13. ∀ : for all ∃ : there exists ∧ : and ◮ There are infinitely many primes ∀ q ∃ p ∀ x , y [ p > q ∧ ( x , y > 1 → xy � = p ) ] ◮ Fermat’s last theorem ∀ a , b , c , n [ ( a , b , c > 0 ∧ n > 2 ) → a n + b n � = c n ] ◮ Twin prime conjecture ∀ q ∃ p ∀ x , y [ p > q ∧ ( x , y > 1 → ( xy � = p ∧ xy � = p + 2 ) ) ] Hilbert’s Entscheidungsproblem (1928) Is there an “algorithm” that can take such a mathematical statement as input and say if it is true or false? 10/31

  14. Turing machines λ -calculus Alonzo Church (1903 - 1995) Alan Turing (1912 - 1954) Answer to Entscheidungsproblem is No (1935 - 1936) 11/31

  15. Intuitively, an algorithm meant “a process that determines the solution in a finite number of operations” 12/31

  16. Intuitively, an algorithm meant “a process that determines the solution in a finite number of operations” Intuitive notion not adequate to show that an algorithm does not exist for a problem! 12/31

  17. Church-Turing thesis Intuitive notion of algorithms ≡ Turing machine algorithms 13/31

  18. Church-Turing thesis Intuitive notion of algorithms ≡ Turing machine algorithms A prototype for a computing machine! 13/31

  19. Church-Turing thesis Intuitive notion of algorithms ≡ Turing machine algorithms A prototype for a computing machine! Advent of digital computers in the 40’s 13/31

  20. 1900 - 1940 Precise notion of algorithm 14/31

  21. 1940 - 1975 15/31

  22. How “ efficient ” is an algorithm? What is the “ optimal ” way of solving a problem? Can we do better than just “ brute-force ”? 16/31

  23. Computational complexity Juris Hartmanis ( Born: 1928 ) Richard Stearns ( Born: 1936 ) Classification of algorithms based on time and space (1965) 17/31

  24. NP-completeness (1971 - 1973) Stephen Cook ( Born: 1939 ) Leonid Levin ( Born: 1948 ) Richard Karp ( Born: 1935 ) Identified an important class of intrinsically difficult problems An easy solution to one would give an easy solution to the other! 18/31

  25. Some examples... ◮ Easy problems: sorting, finding shortest path in a graph ◮ Hard problems: scheduling classes for university Computationally hard problems very important for cryptographers ! 19/31

  26. 1900 - 1940 Precise notion of algorithm 1940 - 1975 Hardness of problems 20/31

  27. 1975 - present 21/31

  28. Computer programs (esp. large ones) are prone to ERRORS 22/31

  29. Computer programs (esp. large ones) are prone to ERRORS Is there a way to specify formally what a program is intended to do, and verify automatically if the program satisfies the specification 22/31

  30. Temporal logic Amir Pnueli ( 1941 - 2009 ) Introduced a formalism to specify intended behaviours of programs (1977) 23/31

  31. Model-checking Edmund Clarke ( Born: 1945 ) Allen Emerson ( Born: 1954 ) Joseph Sifakis ( Born: 1946 ) Automatically verify a program against its specification (1981) 24/31

  32. 1900 - 1940 Precise notion of algorithm 1940 - 1975 Hardness of problems 1975 - present Correctness of programs 25/31

  33. 1900 - 1940 Precise notion of algorithm (Theory of computation) 1940 - 1975 Hardness of problems (Computational complexity theory) 1975 - present Correctness of programs (Formal verification) 25/31

  34. 1900 - 1940 Precise notion of algorithm (Theory of computation) 1940 - 1975 Hardness of problems (Computational complexity theory) 1975 - present Correctness of programs (Formal verification) This course: Theory of computation + bit of Computational complexity 25/31

  35. Problems → languages 26/31

  36. Decision problems Questions for which the answer is either Yes or No ◮ Is the sum of 5 and 8 equal to 12? ◮ Is 19 a prime number? ◮ Is the graph G 1 connected? Figure: G 1 27/31

  37. Is the sum of 5 and 8 equal to 12 ? 28/31

  38. Is the sum of 5 and 8 equal to 12 ? L add = { ( a , b , c ) ∈ N × N × N | a + b = c } { ( 1 , 3 , 4 ) , ( 5 , 9 , 14 ) , ( 0 , 2 , 2 ) , . . . } 28/31

  39. Is the sum of 5 and 8 equal to 12 ? L add = { ( a , b , c ) ∈ N × N × N | a + b = c } { ( 1 , 3 , 4 ) , ( 5 , 9 , 14 ) , ( 0 , 2 , 2 ) , . . . } Is ( 5 , 8 , 12 ) ∈ L add ? 28/31

  40. Is the sum of 5 and 8 equal to 12 ? L add = { ( a , b , c ) ∈ N × N × N | a + b = c } { ( 1 , 3 , 4 ) , ( 5 , 9 , 14 ) , ( 0 , 2 , 2 ) , . . . } Is ( 5 , 8 , 12 ) ∈ L add ? Is 19 a prime number ? L prime = { x ∈ N | x is prime } { 1 , 2 , 3 , 5 , 7 , 11 , . . . } Is 19 ∈ L prime ? 28/31

  41. Encoding graphs � graph � := no. of vertices $ edge relation 1 � � 3 $ ( 0 , 1 )( 1 , 2 )( 0 , 2 ) 0 2 1 3 � � 4 $ ( 0 , 1 )( 1 , 2 )( 0 , 2 ) 0 2 29/31

  42. 1 0 2 Is graph G 1 connected? 30/31

  43. 1 0 2 Is graph G 1 connected? L conn = { � G � | G is connected } Is � G 1 � ∈ L conn ? 30/31

  44. 1 0 2 Is graph G 1 connected? L conn = { � G � | G is connected } Is � G 1 � ∈ L conn ? ≡ Is 3 $ ( 0 , 1 )( 1 , 2 )( 0 , 2 ) ∈ L conn ? 30/31

  45. Decision problem P Language L w ∈ L ? Yes? Input Input instance word w No? w / ∈ L ? 31/31

  46. Decision problem P Language L w ∈ L ? Yes? Input Input ALGORITHM instance word w No? w / ∈ L ? 31/31

  47. Decision problem P Language L w ∈ L ? Yes? Input Input ?? ALGORITHM instance word w No? w / ∈ L ? 31/31

  48. Decision problem P Language L w ∈ L ? Yes? Input Input ?? ALGORITHM instance word w No? w / ∈ L ? We answer “ ?? ” in this course 31/31

  49. Decision problem P Language L w ∈ L ? Yes? Input Input ?? ALGORITHM instance word w No? w / ∈ L ? We answer “ ?? ” in this course Main challenge: How to get a finite representation for languages? 31/31

Recommend


More recommend