Theory of Computation LECTURE 1 Theory of Computation
![Theory of Computation LECTURE 1 Theory of Computation • Course information • Overview of Theory of Computation LECTURE 1 Theory of Computation • Course information • Overview of](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-1.jpg)
![Course information 1. 2. 3. 4. 5. 2/24/2021 Course staff Course website(s) Piazza bonus Course information 1. 2. 3. 4. 5. 2/24/2021 Course staff Course website(s) Piazza bonus](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-2.jpg)
![Tips for the course • Concepts in this course take some time to sink Tips for the course • Concepts in this course take some time to sink](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-3.jpg)
![Tips for the course: HW • Start working on HW early. • Spread your Tips for the course: HW • Start working on HW early. • Spread your](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-4.jpg)
![Tips: learning problem solving To learn problem solving, you have to do it: • Tips: learning problem solving To learn problem solving, you have to do it: •](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-5.jpg)
![Tips: how to read a math text • Not like reading a mystery novel. Tips: how to read a math text • Not like reading a mystery novel.](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-6.jpg)
![Skills we will work on • Mathematical reasoning • Expressing your ideas – abstractly Skills we will work on • Mathematical reasoning • Expressing your ideas – abstractly](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-7.jpg)
![Could they ask me questions about CS 332 material on job interviews? § You Could they ask me questions about CS 332 material on job interviews? § You](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-8.jpg)
![What is Theory of Computation? • You’ve learned about computers and programming • Much What is Theory of Computation? • You’ve learned about computers and programming • Much](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-9.jpg)
![What is Theory of Computation? • Theory – General ideas that apply to many What is Theory of Computation? • Theory – General ideas that apply to many](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-10.jpg)
![This course • Theory basics – Models for machines – Models for the problems This course • Theory basics – Models for machines – Models for the problems](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-11.jpg)
![Machine models • Finite Automata (FAs): machines with fixed amount of unstructured memory – Machine models • Finite Automata (FAs): machines with fixed amount of unstructured memory –](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-12.jpg)
![Machine models • Resource-bounded TMs (time and space bounded): – “not that different” on Machine models • Resource-bounded TMs (time and space bounded): – “not that different” on](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-13.jpg)
![Problems solved by machines 1. What is a problem? In this course, problem is Problems solved by machines 1. What is a problem? In this course, problem is](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-14.jpg)
![Examples of languages • L 1= {binary representations of natural numbers divisible by 2} Examples of languages • L 1= {binary representations of natural numbers divisible by 2}](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-15.jpg)
![Theorems about classes of languages We will define classes of languages and prove theorems Theorems about classes of languages We will define classes of languages and prove theorems](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-16.jpg)
![Why study theory of computation? • a language for talking about program behavior • Why study theory of computation? • a language for talking about program behavior •](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-17.jpg)
![Is it useful for developers? Boss, I can’t find an efficient algorithm. I guess Is it useful for developers? Boss, I can’t find an efficient algorithm. I guess](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-18.jpg)
![Parts of the course I. Automata Theory II. Computability Theory III. Complexity Theory 2/24/2021 Parts of the course I. Automata Theory II. Computability Theory III. Complexity Theory 2/24/2021](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-19.jpg)
![Finite automata (FA) 0111 -- accepted 01110 -- rejected 1 0111 0 0, 1 Finite automata (FA) 0111 -- accepted 01110 -- rejected 1 0111 0 0, 1](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-20.jpg)
![Anatomy of finite automaton states q 1 0 accept states 1 (F) 0, 1 Anatomy of finite automaton states q 1 0 accept states 1 (F) 0, 1](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-21.jpg)
![Formal Definition A finite automaton is a 5 -tuple M = (Q, Σ, , Formal Definition A finite automaton is a 5 -tuple M = (Q, Σ, ,](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-22.jpg)
![Examples of FAs q 0 0, 1 L(M) = {w | w is a Examples of FAs q 0 0, 1 L(M) = {w | w is a](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-23.jpg)
![Examples of FAs 0 0 1 q 0 L(M) = 2/24/2021 1 q 1 Examples of FAs 0 0 1 q 0 L(M) = 2/24/2021 1 q 1](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-24.jpg)
![Examples of FAs Build an automaton that accepts all (and only those) strings that Examples of FAs Build an automaton that accepts all (and only those) strings that](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-25.jpg)
![Formal definition of FA M = (Q, Σ, , q 0, F) where q Formal definition of FA M = (Q, Σ, , q 0, F) where q](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-26.jpg)
![Language of FA L(M) = the language of machine M = set of all Language of FA L(M) = the language of machine M = set of all](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-27.jpg)
- Slides: 27
![Theory of Computation LECTURE 1 Theory of Computation Course information Overview of Theory of Computation LECTURE 1 Theory of Computation • Course information • Overview of](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-1.jpg)
Theory of Computation LECTURE 1 Theory of Computation • Course information • Overview of the area • Finite Automata Sofya Raskhodnikova 2/24/2021 Sofya Raskhodnikova; Intro Theory of Computation
![Course information 1 2 3 4 5 2242021 Course staff Course websites Piazza bonus Course information 1. 2. 3. 4. 5. 2/24/2021 Course staff Course website(s) Piazza bonus](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-2.jpg)
Course information 1. 2. 3. 4. 5. 2/24/2021 Course staff Course website(s) Piazza bonus Prerequisites Textbook(s) 6. 7. 8. 9. Syllabus Homework logistics Collaboration policy Exams and grading Sofya Raskhodnikova; Intro Theory of Computation L 1. 2
![Tips for the course Concepts in this course take some time to sink Tips for the course • Concepts in this course take some time to sink](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-3.jpg)
Tips for the course • Concepts in this course take some time to sink in: be careful not to fall behind. • Do the assigned reading on each topic before the corresponding lecture. • Take advantage of office hours. • Be active in lectures/recitations and on piazza. • Allocate lots of time for the course: comparable to a project course, but spread more evenly. 2/24/2021 L 1. 3
![Tips for the course HW Start working on HW early Spread your Tips for the course: HW • Start working on HW early. • Spread your](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-4.jpg)
Tips for the course: HW • Start working on HW early. • Spread your HW time over multiple days. • You can work in groups (up to 4 people), but spend 1 -2 hours thinking about it on your own before your group meeting. 2/24/2021 L 1. 4
![Tips learning problem solving To learn problem solving you have to do it Tips: learning problem solving To learn problem solving, you have to do it: •](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-5.jpg)
Tips: learning problem solving To learn problem solving, you have to do it: • Try to think how you would solve any presented problem before you read/hear the answer. • Do exercises in addition to HW. 2/24/2021 L 1. 5
![Tips how to read a math text Not like reading a mystery novel Tips: how to read a math text • Not like reading a mystery novel.](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-6.jpg)
Tips: how to read a math text • Not like reading a mystery novel. • The goal is not to get the answers, but to learn the techniques. • Always try to foresee what is coming next. • Always think how you would approach a problem before reading the solution. • This applies to things that are not explicitly labeled as problems. 2/24/2021 L 1. 6
![Skills we will work on Mathematical reasoning Expressing your ideas abstractly Skills we will work on • Mathematical reasoning • Expressing your ideas – abstractly](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-7.jpg)
Skills we will work on • Mathematical reasoning • Expressing your ideas – abstractly (suppress inessential details) – precisely (rigorously) • • Mathematical modeling Algorithmic thinking Problem solving Having FUN with all of the above!!! 2/24/2021 L 1. 7
![Could they ask me questions about CS 332 material on job interviews You Could they ask me questions about CS 332 material on job interviews? § You](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-8.jpg)
Could they ask me questions about CS 332 material on job interviews? § You bet. 2/24/2021 L 1. 8
![What is Theory of Computation Youve learned about computers and programming Much What is Theory of Computation? • You’ve learned about computers and programming • Much](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-9.jpg)
What is Theory of Computation? • You’ve learned about computers and programming • Much of this knowledge is specific to particular computing environment 2/24/2021 L 1. 10
![What is Theory of Computation Theory General ideas that apply to many What is Theory of Computation? • Theory – General ideas that apply to many](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-10.jpg)
What is Theory of Computation? • Theory – General ideas that apply to many systems – Expressed simply, abstractly, precisely • Abstraction suppresses inessential details • Precision enables rigorous analysis – Correctness proofs for algorithms and system designs – Formal analysis of complexity • Proof that there is no algorithm to solve some problem in some setting (with certain cost) 2/24/2021 L 1. 11
![This course Theory basics Models for machines Models for the problems This course • Theory basics – Models for machines – Models for the problems](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-11.jpg)
This course • Theory basics – Models for machines – Models for the problems machines can be used to solve – Theorems about what kinds of machines can solve what kinds of problems, and at what cost – Theory needed for sequential single-processor computing • Not covered: – – 2/24/2021 Parallel machines Distributed systems Quantum computation Sublinear computation – – Real-time systems Mobile computing Embedded systems … L 1. 12
![Machine models Finite Automata FAs machines with fixed amount of unstructured memory Machine models • Finite Automata (FAs): machines with fixed amount of unstructured memory –](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-12.jpg)
Machine models • Finite Automata (FAs): machines with fixed amount of unstructured memory – useful for modeling chips, communication protocols, adventure games, some control systems, … • Pushdown Automata (PDAs): FAs with unbounded structured memory in the form of a pushdown stack – useful for modeling parsing, compilers, some calculations • Turing Machines (TMs): FAs with unbounded tape – Model for general sequential computation (real computer). – Equivalent to RAMs, various programming languages models – Suggest general notion of computability 2/24/2021 L 1. 13
![Machine models Resourcebounded TMs time and space bounded not that different on Machine models • Resource-bounded TMs (time and space bounded): – “not that different” on](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-13.jpg)
Machine models • Resource-bounded TMs (time and space bounded): – “not that different” on different models: “within a polynomial factor” • Probabilistic TMs: extension of TMs that allows random choices Most of these models have nondeterministic variants: can make nondeterministic “guesses” 2/24/2021 L 1. 14
![Problems solved by machines 1 What is a problem In this course problem is Problems solved by machines 1. What is a problem? In this course, problem is](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-14.jpg)
Problems solved by machines 1. What is a problem? In this course, problem is a language. A language is a set of strings over some “alphabet” 2. What does it mean for a machine to “solve” a problem? 2/24/2021 L 1. 15
![Examples of languages L 1 binary representations of natural numbers divisible by 2 Examples of languages • L 1= {binary representations of natural numbers divisible by 2}](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-15.jpg)
Examples of languages • L 1= {binary representations of natural numbers divisible by 2} • L 2= {binary representations of primes} alphabet = {0, 1} • L 3= {sequences of decimal numbers, separated by commas, that can be divided into 2 groups with the same sum} – (5, 3, 1, 3) L 3, (15, 7, 5, 9, 1) L 3. alphabet = {0, 1, …, 9, comma} • L 4= {C programs that loop forever on some input} • L 5= {representations of graphs containing a Hamiltonian cycle} 2 visits each node exactly once – {(1, 2, 3, 4, 5); (1, 2), (1, 3), (2, 3), …} vertices edges alphabet = all symbols: digits, commas, parens 2/24/2021 1 5 3 4 L 1. 16
![Theorems about classes of languages We will define classes of languages and prove theorems Theorems about classes of languages We will define classes of languages and prove theorems](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-16.jpg)
Theorems about classes of languages We will define classes of languages and prove theorems about them: • inclusion: Every language recognizable (i. e. , solvable) by a FA is also recognizable by a TM. • non-inclusion: Not every language recognizable by a TM is also recognizable by a FA. • completeness: “Hardest” language in a class • robustness: alternative characterizations of classes – e. g. , FA-recognizable languages by regular expressions (UNIX) 2/24/2021 L 1. 17
![Why study theory of computation a language for talking about program behavior Why study theory of computation? • a language for talking about program behavior •](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-17.jpg)
Why study theory of computation? • a language for talking about program behavior • feasibility (what can and cannot be done) – halting problem, NP-completeness • analyzing correctness and resource usage • computationally hard problems are essential for cryptography • computation is fundamental to understanding the world – cells, brains, social networks, physical systems all can be viewed as computational devices • IT IS FUN!!! 2/24/2021 L 1. 18
![Is it useful for developers Boss I cant find an efficient algorithm I guess Is it useful for developers? Boss, I can’t find an efficient algorithm. I guess](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-18.jpg)
Is it useful for developers? Boss, I can’t find an efficient algorithm. I guess I ‘m just too dumb. Boss, I can’t find an efficient algorithm, because no such algorithm is possible. 2/24/2021 Sofya Raskhodnikova; based on cartoon by Garey & Johnson, 1979 L 1. 20
![Parts of the course I Automata Theory II Computability Theory III Complexity Theory 2242021 Parts of the course I. Automata Theory II. Computability Theory III. Complexity Theory 2/24/2021](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-19.jpg)
Parts of the course I. Automata Theory II. Computability Theory III. Complexity Theory 2/24/2021 L 1. 21
![Finite automata FA 0111 accepted 01110 rejected 1 0111 0 0 1 Finite automata (FA) 0111 -- accepted 01110 -- rejected 1 0111 0 0, 1](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-20.jpg)
Finite automata (FA) 0111 -- accepted 01110 -- rejected 1 0111 0 0, 1 1 0111 0 1 Each string is either accepted or rejected by the automaton depending on whether it is in an accept state at the end. 2/24/2021 L 1. 22
![Anatomy of finite automaton states q 1 0 accept states 1 F 0 1 Anatomy of finite automaton states q 1 0 accept states 1 (F) 0, 1](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-21.jpg)
Anatomy of finite automaton states q 1 0 accept states 1 (F) 0, 1 1 q 0 0 0 q 3 start state (q 0) 2/24/2021 q 2 1 states L 1. 23
![Formal Definition A finite automaton is a 5 tuple M Q Σ Formal Definition A finite automaton is a 5 -tuple M = (Q, Σ, ,](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-22.jpg)
Formal Definition A finite automaton is a 5 -tuple M = (Q, Σ, , q 0, F) Q is the set of states Σ is the alphabet : Q Σ → Q is the transition function q 0 Q is the start state F Q is the set of accept states L(M) = the language of machine M = set of all (finite) strings machine M accepts M recognizes the language L(M) 2/24/2021 L 1. 24
![Examples of FAs q 0 0 1 LM w w is a Examples of FAs q 0 0, 1 L(M) = {w | w is a](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-23.jpg)
Examples of FAs q 0 0, 1 L(M) = {w | w is a string of 0 s and 1 s} q 0 0, 1 q 1 0, 1 L(M) = {ε} where ε denotes the empty string 2/24/2021 L 1. 25
![Examples of FAs 0 0 1 q 0 LM 2242021 1 q 1 Examples of FAs 0 0 1 q 0 L(M) = 2/24/2021 1 q 1](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-24.jpg)
Examples of FAs 0 0 1 q 0 L(M) = 2/24/2021 1 q 1 {w | w has an even number of 1 s} L 1. 26
![Examples of FAs Build an automaton that accepts all and only those strings that Examples of FAs Build an automaton that accepts all (and only those) strings that](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-25.jpg)
Examples of FAs Build an automaton that accepts all (and only those) strings that contain 001 1 q 2/24/2021 0, 1 0 0 1 q 0 0 q 00 1 q 001 L 1. 27
![Formal definition of FA M Q Σ q 0 F where q Formal definition of FA M = (Q, Σ, , q 0, F) where q](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-26.jpg)
Formal definition of FA M = (Q, Σ, , q 0, F) where q 1 0 1 q 0 M 0 q 3 2/24/2021 0, 1 Q = {q 0, q 1, q 2, q 3} Σ = {0, 1} : Q Σ → Q transition function q 0 Q is start state F = {q 1, q 2} Q accept states 1 0 1 q 0 q 1 * q 2 0 1 q 2 q 2 q 3 q 0 q 2 Sofya Raskhodnikova; based on slides by Nick Hopper L 2. 29 *
![Language of FA LM the language of machine M set of all Language of FA L(M) = the language of machine M = set of all](https://slidetodoc.com/presentation_image_h/0e3aae217f09d02baabe2029d3b69bf9/image-27.jpg)
Language of FA L(M) = the language of machine M = set of all strings machine M accepts M recognizes the language L(M) 2/24/2021 Sofya Raskhodnikova; based on slides by Nick Hopper L 2. 30
01:640:244 lecture notes - lecture 15: plat, idah, farad
Union set operation
Theory of computation
What is a transition graph
Theory of machines
Theory of computation
Ambiguity
Theory of computation
Introduction to the theory of computation
Time hierarchy theorem proof
Anbn pda
Theory of computation quiz
Theory of computation
Nfa theory of computation
The theory of computation
Uva lookup computing id
Natural language processing
Bayesian decision theory lecture notes
Sargur srihari
Natural language processing nlp - theory lecture
Tax due formula
Expanded withholding tax computation
Expanded withholding tax computation
Job order tax
Fertilizer computation philrice
Eecs 1019
Mcit computation
Income tax computation format