Theory of Computation Lecture 1. Dr. Nahla Belal

Similar documents
Introduction to the Theory of Computation. Automata 1VO + 1PS. Lecturer: Dr. Ana Sokolova.

CS 154, Lecture 2: Finite Automata, Closure Properties Nondeterminism,

Introduction to the Theory of Computation. Automata 1VO + 1PS. Lecturer: Dr. Ana Sokolova.

COM364 Automata Theory Lecture Note 2 - Nondeterminism

CS 154 Introduction to Automata and Complexity Theory

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

CS 154, Lecture 3: DFA NFA, Regular Expressions

CS 154. Finite Automata, Nondeterminism, Regular Expressions

Automata Theory. Lecture on Discussion Course of CS120. Runzhe SJTU ACM CLASS

Theory of Computation (I) Yijia Chen Fudan University

CSCI 2200 Foundations of Computer Science Spring 2018 Quiz 3 (May 2, 2018) SOLUTIONS

Closure under the Regular Operations

Sri vidya college of engineering and technology

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

CSE 2001: Introduction to Theory of Computation Fall Suprakash Datta

Computer Sciences Department

CS243, Logic and Computation Nondeterministic finite automata

CSC173 Workshop: 13 Sept. Notes

INF Introduction and Regular Languages. Daniel Lupp. 18th January University of Oslo. Department of Informatics. Universitetet i Oslo

What we have done so far

CS:4330 Theory of Computation Spring Regular Languages. Finite Automata and Regular Expressions. Haniel Barbosa

CSE 2001: Introduction to Theory of Computation Fall Suprakash Datta

CS 154. Finite Automata vs Regular Expressions, Non-Regular Languages

CSE 105 THEORY OF COMPUTATION

Nondeterministic Finite Automata

Computational Models - Lecture 1 1

Automata Theory, Computability and Complexity

UNIT-II. NONDETERMINISTIC FINITE AUTOMATA WITH ε TRANSITIONS: SIGNIFICANCE. Use of ε-transitions. s t a r t. ε r. e g u l a r

CPS 220 Theory of Computation REGULAR LANGUAGES

Computational Models #1

Theory of Computation

CS 455/555: Finite automata

Automata: a short introduction

CSCI 2670 Introduction to Theory of Computing

Final exam study sheet for CS3719 Turing machines and decidability.

Computational Models Lecture 2 1

Computational Models Lecture 2 1

CS Lecture 29 P, NP, and NP-Completeness. k ) for all k. Fall The class P. The class NP

Equivalence of DFAs and NFAs

Lecture 3: Nondeterministic Finite Automata

Finite Automata and Regular languages

Deterministic Finite Automata (DFAs)

CS 581: Introduction to the Theory of Computation! Lecture 1!

jflap demo Regular expressions Pumping lemma Turing Machines Sections 12.4 and 12.5 in the text

Deterministic Finite Automata (DFAs)

Chapter 3: The Church-Turing Thesis

Midterm Exam 2 CS 341: Foundations of Computer Science II Fall 2018, face-to-face day section Prof. Marvin K. Nakayama

Chapter 0 Introduction. Fourth Academic Year/ Elective Course Electrical Engineering Department College of Engineering University of Salahaddin

Theory of Computation

Theory of Languages and Automata

CISC 4090: Theory of Computation Chapter 1 Regular Languages. Section 1.1: Finite Automata. What is a computer? Finite automata

Lecture 17: Language Recognition

Computability and Complexity

Theory of computation: initial remarks (Chapter 11)

INF210 Datamaskinteori (Models of Computation)

What s a computer? Language Theory and Computation. A small suan pan (Chinese abacus) Photo courtesy of the Computer History Museum

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

Mapping Reducibility. Human-aware Robotics. 2017/11/16 Chapter 5.3 in Sipser Ø Announcement:

Unit 6. Non Regular Languages The Pumping Lemma. Reading: Sipser, chapter 1

CSE 105 THEORY OF COMPUTATION

CS 530: Theory of Computation Based on Sipser (second edition): Notes on regular languages(version 1.1)

CHAPTER 1 Regular Languages. Contents

CMP 309: Automata Theory, Computability and Formal Languages. Adapted from the work of Andrej Bogdanov

Closure under the Regular Operations

1 More finite deterministic automata

Deterministic Finite Automata (DFAs)

Peter Wood. Department of Computer Science and Information Systems Birkbeck, University of London Automata and Formal Languages


cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

Finite Automata. Wen-Guey Tzeng Computer Science Department National Chiao Tung University

CS 208: Automata Theory and Logic

Clarifications from last time. This Lecture. Last Lecture. CMSC 330: Organization of Programming Languages. Finite Automata.

3515ICT: Theory of Computation. Regular languages

Great Theoretical Ideas in Computer Science. Lecture 4: Deterministic Finite Automaton (DFA), Part 2

Harvard CS 121 and CSCI E-207 Lecture 4: NFAs vs. DFAs, Closure Properties

Computational Models - Lecture 4

Chapter Five: Nondeterministic Finite Automata

Pushdown automata. Twan van Laarhoven. Institute for Computing and Information Sciences Intelligent Systems Radboud University Nijmegen

Theory of Computation (II) Yijia Chen Fudan University

CSE 311: Foundations of Computing. Lecture 23: Finite State Machine Minimization & NFAs

UNIT-VIII COMPUTABILITY THEORY

COMP/MATH 300 Topics for Spring 2017 June 5, Review and Regular Languages

GEETANJALI INSTITUTE OF TECHNICAL STUDIES, UDAIPUR I

SYLLABUS. Introduction to Finite Automata, Central Concepts of Automata Theory. CHAPTER - 3 : REGULAR EXPRESSIONS AND LANGUAGES

Introduction to Automata

Computational Models - Lecture 5 1

Recap DFA,NFA, DTM. Slides by Prof. Debasis Mitra, FIT.

Lecture 7 Properties of regular languages

Solutions to Old Final Exams (For Fall 2007)

Intro to Theory of Computation

Finite Automata and Languages

CSE 105 Homework 1 Due: Monday October 9, Instructions. should be on each page of the submission.

Models of Computation. by Costas Busch, LSU

FORMAL LANGUAGES, AUTOMATA AND COMPUTATION

Nondeterminism and Epsilon Transitions

Theory of computation: initial remarks (Chapter 11)

Decidability. Human-aware Robotics. 2017/10/31 Chapter 4.1 in Sipser Ø Announcement:

CSC236 Week 10. Larry Zhang

Finite Automata. Seungjin Choi

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

Transcription:

Theory of Computation Lecture 1 Dr. Nahla Belal

Book The primary textbook is: Introduction to the Theory of Computation by Michael Sipser.

Grading 10%: Weekly Homework. 30%: Two quizzes and one exam. 20%: One quiz and one exam. 40%: Final Exam.

Syllabus Automata and Languages Finite Automata DFAs and NFAs Regular Expressions Non-regular Languages Context-Free Languages (Grammars, Pushdown Automata, non-context-free languages) Computatbility Theory Turing Machines Complexity Theory

Theory of Computation Theory of computation is the branch that deals with how efficiently problems can be solved on a model of computation, using an algorithm. In order to perform a rigorous study of computation, computer scientists work with a mathematical abstraction of computers called a model of computation. There are several models in use, but the most commonly examined is the Turing machine. Alan Turing in 1937 proposed that all computation could be performed by a special kind of a machine called a Turing machine. He based the model on the actions that people perform when involved in computation. He abstracted these actions into a model for a computational machine that has really changed the world. 5

About the Course Fundamental mathematical properties of hw, sw, and applications. Determine what can and can not be computed, how much memory, which computational models. Theory expands your mind, gives you the ability to think, solve problems. Know the capabilities and limitations of computers.

Automata, Computability and Complexity What are the fundamental capabilities and limitations of computers? Three interpretations. Complexity Theory What makes some problems computationally hard and others easy? Classifying problems according to their computational difficulty. Computability Theory Which problems are solvable and which are not. Automata Theory Definitions and properties of mathematical models of computation.

Complexity of Algorithms If an algorithm runs in time O(log(n)), O(n), or O(n 4 ), then faster machines may make a big difference If an algorithm runs in time O(2 n ), or O(n log(n) ), then faster machines may not make a big difference

Problem Classes PARTIALLY COMPUTABLE COMPUTABLE PSPACE NEXP EXP NP P

Mathematical Notation Sets, power sets, cartesian product Sequences and Tuples Functions and Relations Graphs Strings and Languages Types of Proofs(construction, contradiction, induction, )

Computational Model Theory of computation begins with a question: What is a computer? Idealized computer. A computational model is a mathematical model in computer science to study the behavior of a system by computer simulation. A Turing machine is a mathematical model of a hypothetical computing machine with infinite memory. Simplest model is the finite state machine or finite automaton.

Finite Automata One pass through the input No capability to write Turing Machines with constant amount of memory What can we do with such a small memory?

Example

Deterministic Finite Automata DFA definition A finite automaton is a 5-tuple (Q,,, q 0, F) Q is a set of states is an alphabet over which input strings are defined Q x Q is a transition function between states q 0 is the start state F is a set of accept states

Alphabets, Any set of distinct symbols, for example: {0,1} {a,b,c,d z} {a,b,c,d, z, A, B, Z, 0,1,2 9} ASCII

A String over an Alphabet A sequence of letters (with replacement) from that alphabet: 000111000 SOS

Examples of Finite Automata: 1

Examples of Finite Automata: 1

Examples of Finite Automata: 2

Languages A language L is a subset of S *. A binary language is a subset of {0,1} *. The language accepted (computed) by a DFA M= L(M) is the set of all strings w such that M ends in an accept state on input w. L is a regular language if there is a DFA that accepts it.

Designing Finite Automata: Odd 1s

Designing Finite Automata: 2 Accept strings that contain the substring 001

The Regular Operations Union Concatenation Star The class of regular languages is closed under the union and concatenation operations.

Reading Materials Chapter 0 Chapter 1: Section 1.1 Finite Automata