Intro to Theory of Computation

Slides:



Advertisements
Similar presentations
Complexity Classes: P and NP
Advertisements

CS 345: Chapter 9 Algorithmic Universality and Its Robustness
8/27/2009 Sofya Raskhodnikova Intro to Theory of Computation L ECTURE 2 Theory of Computation Finite Automata Operations on languages Nondeterminism L2.1.
8/25/2009 Sofya Raskhodnikova Intro to Theory of Computation L ECTURE 1 Theory of Computation Course information Overview of the area Finite Automata Sofya.
Recap CS605: The Mathematics and Theory of Computer Science.
January 5, 2015CS21 Lecture 11 CS21 Decidability and Tractability Lecture 1 January 5, 2015.
CS21 Decidability and Tractability
CS 310 – Fall 2006 Pacific University CS310 Turing Machines Section 3.1 November 6, 2006.
Quantum Automata Formalism. These are general questions related to complexity of quantum algorithms, combinational and sequential.
CS 454 Theory of Computation Sonoma State University, Fall 2011 Instructor: B. (Ravi) Ravikumar Office: 116 I Darwin Hall Original slides by Vahid and.
INHERENT LIMITATIONS OF COMPUTER PROGRAMS CSci 4011.
Final Exam Review Cummulative Chapters 0, 1, 2, 3, 4, 5 and 7.
Complexity and Computability Theory I Lecture #13 Instructor: Rina Zviel-Girshin Lea Epstein Yael Moses.
Introduction to the Theory of Computation
1 Theory of Computation 計算理論 2 Instructor: 顏嗣鈞 Web: Time: 9:10-12:10 PM, Monday Place: BL 103.
Theory of Computing Lecture 15 MAS 714 Hartmut Klauck.
CS/IT 138 THEORY OF COMPUTATION Chapter 1 Introduction to the Theory of Computation.
1 Unit 1: Automata Theory and Formal Languages Readings 1, 2.2, 2.3.
Introduction to CS Theory Lecture 15 –Turing Machines Piotr Faliszewski
1 Theory of Computation 計算理論 2 Instructor: 顏嗣鈞 Web: Time: 9:10-12:10 PM, Monday Place: BL.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
Automata & Formal Languages, Feodor F. Dragan, Kent State University 1 CHAPTER 3 The Church-Turing Thesis Contents Turing Machines definitions, examples,
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
D E C I D A B I L I T Y 1. 2 Objectives To investigate the power of algorithms to solve problems. To explore the limits of algorithmic solvability. To.
Donghyun (David) Kim Department of Mathematics and Physics North Carolina Central University 1 Chapter 1 Regular Languages Some slides are in courtesy.
Chapter 11 Introduction to Computational Complexity Copyright © 2011 The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1.
CS 461 – Oct. 28 TM applications –Recognize a language √ –Arithmetic √ –Enumerate a set –Encode a data structure or problem to solve Two kinds of TMs –Decider:
Finite-State Machines Fundamental Data Structures and Algorithms Peter Lee March 11, 2003.
Modeling Arithmetic, Computation, and Languages Mathematical Structures for Computer Science Chapter 8 Copyright © 2006 W.H. Freeman & Co.MSCS SlidesTuring.
Theory of Computation. Introduction We study this course in order to answer the following questions: What are the fundamental capabilities and limitations.
CIS 262 Automata, Computability, and Complexity Fall Instructor: Aaron Roth
Finite Automata.
The Acceptance Problem for TMs
Formal Foundations-II [Theory of Automata]
Welcome to Automata Theory Course
Part VI NP-Hardness.
CSE 105 theory of computation
G. Pullaiah College of Engineering and Technology
Regular Expressions: Review
Pushdown Automata.
Pushdown Automata.
(Universal Turing Machine)
CSE 105 theory of computation
CSE 105 theory of computation
Intro to Theory of Computation
Intro to Theory of Computation
Summary.
Intro to Theory of Computation
Intro to Theory of Computation
Intro to Theory of Computation
Decidable Languages Costas Busch - LSU.
Finite Automata.
CS21 Decidability and Tractability
CS 583 Fall 2006 Analysis of Algorithms
CS21 Decidability and Tractability
Data Structures and Algorithms CSE 465
Intro to Theory of Computation
CSE 105 theory of computation
Theory of Computability
Instructor: Aaron Roth
Instructor: Aaron Roth
CSE 105 theory of computation
Lecture One: Automata Theory Amjad Ali
Instructor: Aaron Roth
Theory of Computability
Sofya Raskhodnikova; Intro Theory of Computation
Automata theory and formal languages COS 3112 – AUTOMATA THEORY PRELIM PERIOD WEEK 1 AND 2.
Intro to Theory of Computation
CSE 105 theory of computation
Presentation transcript:

Intro to Theory of Computation LECTURE 1 Theory of Computation Course information Overview of the area Finite Automata CS 464 Sofya Raskhodnikova 11/12/2018 Sofya Raskhodnikova; Intro Theory of Computation

Sofya Raskhodnikova; Intro Theory of Computation Course information Course staff Course website(s) Piazza bonus Prerequisites Textbook(s) Syllabus Clicker points Homework logistics Collaboration policy Exams and grading Honors credit Disability adjustments 11/12/2018 Sofya Raskhodnikova; Intro Theory of Computation

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. 11/12/2018

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 2-3 hours thinking about it on your own before your group meeting. 11/12/2018

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. 11/12/2018

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. 11/12/2018

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!!! 11/12/2018

Could they ask me questions about CMPSC 464 material on job interviews? You bet. 11/12/2018

What is Theory of Computation? You’ve learned about computers and programming Much of this knowledge is specific to particular computing environment 11/12/2018

What is Theory of Computation? 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) 11/12/2018

This course Theory basics Not covered: 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: Parallel machines Distributed systems Quantum computation Real-time systems Mobile computing Embedded systems … 11/12/2018

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 11/12/2018

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” 11/12/2018

Problems solved by machines What is a problem? What does it mean for a machine to “solve” a problem? In this course, problem is a language. A language is a set of strings over some “alphabet” 11/12/2018

Examples of languages L1= {binary representations of natural numbers divisible by 2} L2= {binary representations of primes} L3= {sequences of decimal numbers, separated by commas, that can be divided into 2 groups with the same sum} (5,3,1,3)  L3, (15,7,5,9,1) L3. L4= {C programs that loop forever on some input} L5= {representations of graphs containing a Hamiltonian cycle} {(1,2,3,4,5); (1,2),(1,3),(2,3),…} alphabet = {0,1} alphabet = {0,1,…,9,comma} visits each node exactly once 1 2 3 4 5 vertices edges alphabet = all symbols: digits, commas, parens 11/12/2018

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) 11/12/2018

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!!! 11/12/2018

Is it useful for programmers? 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. 11/12/2018 Sofya Raskhodnikova; cartoon by Garey & Johnson, 1979

Parts of the course Automata Theory Computability Theory Complexity Theory 11/12/2018

Finite automata (FA) 0111 -- accepted 0111 1 01110 -- rejected 0,1 1 0111 0111 0111 0111 1 Each string is either accepted or rejected by the automaton depending on whether it is in an accept state at the end. 11/12/2018

Anatomy of finite automaton accept states (F) states q1 1 0,1 1 q0 q2 q3 1 start state (q0) 11/12/2018

A finite automaton is a 5-tuple M = (Q, Σ, , q0, F) Formal Definition A finite automaton is a 5-tuple M = (Q, Σ, , q0, F) Q is the set of states Σ is the alphabet  : Q  Σ → Q is the transition function q0  Q is the start state F  Q is the set of accept states L(M) = the language of machine M = set of all strings machine M accepts M recognizes the language L(M) 11/12/2018

{w | w is a string of 0s and 1s} Examples of FAs q0 0,1 {w | w is a string of 0s and 1s}  L(M) = 0,1 q0 q1 0,1 L(M) = {ε} where ε denotes the empty string 11/12/2018

{w | w has an even number of 1s} Examples of FAs 1 q0 q1 1 L(M) = {w | w has an even number of 1s} 11/12/2018

Examples of FAs Build an automaton that accepts all (and only those) strings that contain 001 0,1 1 q q00 q0 q001 1 1 11/12/2018

JFLAP http://www.cs.duke.edu/csed/jflap/ aaa aaa aaa aaa 11/12/2018 Sofya Raskhodnikova; based on slides by Nick Hopper