Why do we study Theory of Computation ?

Slides:



Advertisements
Similar presentations
Formal Languages Languages: English, Spanish,... PASCAL, C,... Problem: How do we define a language? i.e. what sentences belong to a language? e.g.Large.
Advertisements

Natural Language Processing - Formal Language - (formal) Language (formal) Grammar.
YES-NO machines Finite State Automata as language recognizers.
1 Languages. 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”, “house”, … Defined over an alphabet: Languages.
CS21 Decidability and Tractability
1 CSCI-2400 Models of Computation. 2 Computation CPU memory.
Regular Languages Sequential Machine Theory Prof. K. J. Hintz Department of Electrical and Computer Engineering Lecture 3 Comments, additions and modifications.
1 Languages and Finite Automata or how to talk to machines...
Topics Automata Theory Grammars and Languages Complexities
Fall 2006Costas Busch - RPI1 Languages. Fall 2006Costas Busch - RPI2 Language: a set of strings String: a sequence of symbols from some alphabet Example:
Lecture 1 String and Language. String string is a finite sequence of symbols. For example, string ( s, t, r, i, n, g) CS4384 ( C, S, 4, 3, 8) (1,
Introduction to CS Theory Lecture 1 – Introduction Piotr Faliszewski
By: Er. Sukhwinder kaur.  Computation Computation  Algorithm Algorithm  Objectives Objectives  What do we study in Theory of Computation ? What do.
Introduction to the Theory of Computation
1 Introduction to Automata Theory Reading: Chapter 1.
Introduction Chapter 0. Three Central Areas 1.Automata 2.Computability 3.Complexity.
UofH - COSC Dr. Verma COSC 3340: Introduction to Theory of Computation Rakesh Verma Computer Science Department University of Houston URL:
Welcome to Honors Intro to CS Theory Introduction to CS Theory (Honors & Traditional): - formalization of computation - various models of computation (increasing.
CS/IT 138 THEORY OF COMPUTATION Chapter 1 Introduction to the Theory of Computation.
Costas Busch - LSU1 Languages. Costas Busch - LSU2 Language: a set of strings String: a sequence of symbols from some alphabet Example: Strings: cat,
1 Chapter 1 Automata: the Methods & the Madness Angkor Wat, Cambodia.
By: Er. Sukhwinder kaur.  What is Automata Theory? What is Automata Theory?  Alphabet and Strings Alphabet and Strings  Empty String Empty String 
Introduction to CS Theory Lecture 3 – Regular Languages Piotr Faliszewski
1 INFO 2950 Prof. Carla Gomes Module Modeling Computation: Language Recognition Rosen, Chapter 12.4.
1 Chapter 1 Introduction to the Theory of Computation.
Lecture 1 Computation and Languages CS311 Fall 2012.
Welcome to Honors Intro to CS Theory Introduction to CS Theory (Honors & Traditional): - formalization of computation - various models of computation (increasing.
Complexity & Computability. Limitations of computer science  Major reasons useful calculations cannot be done:  execution time of program is too long.
Strings Basic data type in computational biology A string is an ordered succession of characters or symbols from a finite set called an alphabet Sequence.
Donghyun (David) Kim Department of Mathematics and Physics North Carolina Central University 1 Chapter 0 Introduction Some slides are in courtesy of Prof.
Theory of computation Introduction theory of computation: It comprises the fundamental mathematical properties of computer hardware, software,
Introduction Why do we study Theory of Computation ?
Introduction Why do we study Theory of Computation ?
BİL711 Natural Language Processing1 Regular Expressions & FSAs Any regular expression can be realized as a finite state automaton (FSA) There are two kinds.
C Sc 132 Computing Theory Professor Meiliu Lu Computer Science Department.
Set, Alphabets, Strings, and Languages. The regular languages. Clouser properties of regular sets. Finite State Automata. Types of Finite State Automata.
CS 154 Formal Languages and Computability May 12 Class Meeting Department of Computer Science San Jose State University Spring 2016 Instructor: Ron Mak.
Theory of Computation. Introduction to The Course Lectures: Room ( Sun. & Tue.: 8 am – 9:30 am) Instructor: Dr. Ayman Srour (Ph.D. in Computer Science).
Introduction Why do we study Theory of Computation ?
Introduction to Automata Theory
Topic 3: Automata Theory 1. OutlineOutline Finite state machine, Regular expressions, DFA, NDFA, and their equivalence, Grammars and Chomsky hierarchy.
Alphabet, String, Language. 2 Alphabet and Strings An alphabet is a finite, non-empty set of symbols. –Denoted by  –{ 0, 1 } is a binary alphabet. –{
Welcome to Automata Theory Course
Foundations of Computing Science
Introduction to the Theory of Computation
Languages.
Lecture 1 Theory of Automata
CIS Automata and Formal Languages – Pei Wang
Course 1 Introduction to Formal Languages and Automata Theory (part 1)
Welcome to Automata Theory Course
Languages Prof. Busch - LSU.
Languages Costas Busch - LSU.
Deterministic FA/ PDA Sequential Machine Theory Prof. K. J. Hintz
PROPERTIES OF REGULAR LANGUAGES
Theory of Computation Theory of computation is mainly concerned with the study of how problems can be solved using algorithms.  Therefore, we can infer.
Natural Language Processing - Formal Language -
CSE 105 theory of computation
Jaya Krishna, M.Tech, Assistant Professor
Introduction to Automata Theory
Why do we study Theory of Computation ?
CSE322 CONSTRUCTION OF FINITE AUTOMATA EQUIVALENT TO REGULAR EXPRESSION Lecture #9.
4. Properties of Regular Languages
Closure Properties of Regular Languages
Chapter 1 Introduction to the Theory of Computation
CSE 105 theory of computation
CSE 105 theory of computation
COSC 3340: Introduction to Theory of Computation
Languages Fall 2018.
CSE 105 theory of computation
CSE 105 theory of computation
Presentation transcript:

Why do we study Theory of Computation ? Introduction Why do we study Theory of Computation ?

SNS College of Technology Outline Importance of Theory of Computation Languages Languages and Problems SNS College of Technology

SNS College of Technology What is Computation ? Sequence of mathematical operations ? What are, and are not, mathematical operations? Sequence of well-defined operations How many operations ? The fewer, the better. Which operations ? The simpler, the better. SNS College of Technology

What do we study in Theory of Computation ? What is computable, and what is not ? What a computer can and cannot do Are you trying to write a non-existing program? Can you make your program more efficient? Basis of Algorithm analysis Complexity theory SNS College of Technology

What do we study in Complexity Theory ? What is easy, and what is difficult, to compute ? What is easy, and what is hard for computers to do? Is your cryptographic scheme safe? Applications in Computer Science Analysis of algorithms Complexity Theory Cryptography Compilers Circuit design SNS College of Technology

History of Theory of Computation 1936 Alan Turing invented the Turing machine, and proved that there exists an unsolvable problem. 1940’s Stored-program computers were built. 1943 McCulloch and Pitts invented finite automata. 1956 Kleene invented regular expressions and proved the equivalence of regular expression and finite automata. 1956 Chomsky defined Chomsky hierarchy, which organized languages recognized by different automata into hierarchical classes. 1959 Rabin and Scott introduced nondeterministic finite automata and proved its equivalence to (deterministic) finite automata. 1950’s-1960’s More works on languages, grammars, and compilers SNS College of Technology

History of Theory of Computation 1965 Hartmantis and Stearns defined time complexity, and Lewis, Hartmantis and Stearns defined space complexity. 1971 Cook showed the first NP-complete problem, the satisfiability prooblem. 1972 Karp Showed many other NP-complete problems 1976 Diffie and Helllman defined Modern Cryptography based on NP-complete problems. 1978 Rivest, Shamir and Adelman proposed a public-key encryption scheme, RSA. SNS College of Technology

Central Concepts of Automata Theory SNS College of Technology

SNS College of Technology Alphabet and Strings An alphabet is a finite, non-empty set of symbols. {0,1 } is a binary alphabet. { A, B, …, Z, a, b, …, z } is an English alphabet. A string over an alphabet  is a sequence of any number of symbols from . 0, 1, 11, 00, and 01101 are strings over {0, 1 }. Cat, CAT, and compute are strings over the English alphabet. An empty string, denoted by є, is a string containing no symbol. є is a string over any alphabet. SNS College of Technology

SNS College of Technology Length The length of a string x, denoted by length(x), is the number of positions of symbols in the string. Let Σ = {a, b, …, z} length(automata) = 8 length(computation) = 11 length(ε) = 0 x(i), denotes the symbol in the ith position of a string x, for 1 i  length(x). String Operations Concatenation Substring Reversal SNS College of Technology

SNS College of Technology Concatenation The concatenation of strings x and y, denoted by xy or x y, is a string z such that: z(i) = x(i) for 1  i  length(x)‏ z(i) = y(i) for length(x)<ilength(x)+length(y)‏ Example automatacomputation = automatacomputation The concatenation of string x for n times, where n0, is denoted by xn x0 =  x1 = x x2 = x x x3 = x x x … SNS College of Technology

SNS College of Technology Substring Let x and y be strings over an alphabet Σ The string x is a substring of y if there exist strings w and z over Σ such that y = w x z. ε is a substring of every string. For every string x, x is a substring of x itself. Example ε, comput and computation are substrings of computation. SNS College of Technology

SNS College of Technology Reversal Let x be a string over an alphabet Σ The reversal of the string x, denoted by x r, is a string such that if x is ε, then xr is ε. If a is in Σ, y is in Σ* and x = a y, then xr = yr a. SNS College of Technology

SNS College of Technology Σ* The set of strings created from any number (0 or 1 or …) of symbols in an alphabet Σ is denoted by Σ *. That is, Σ * = Σ i= Σ 0 Σ i Let Σ = {0, 1}. Σ * = {є , 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, … }. SNS College of Technology

SNS College of Technology Σ+ The set of strings created from at least one symbol (1 or 2 or …) in an alphabet Σ is denoted by Σ +. That is, Σ + = Σ i=1 Σ i = Σ i=0.. Σ i - Σ 0 = Σ i=0.. Σ Σ i - {Σ} Let Σ = {0, 1}. Σ + = {0, 1, 00, 01, 10, 11, 000, 001, 010, 011, … }. Σ * and Σ + are infinite sets. SNS College of Technology

SNS College of Technology Languages A language over an alphabet Σ is a set of strings over Σ. Let Σ = {0, 1} be the alphabet. Le = {Σ* | the number of 1’s in  is even}. , 0, 00, 11, 000, 110, 101, 011, 0000, 1100, 1010, 1001, 0110, 0101, 0011, … are in Le SNS College of Technology

Operations on Languages Complementation Union Intersection Concatenation Reversal Closure SNS College of Technology

Languages and Problems Example: What are prime numbers > 20? Decision problem Problem with a YES/NO answer Example: Given a positive integer n, is n a prime number > 20? Language Example: {n | n is a prime number > 20} = {23, 29, 31, 37, …} SNS College of Technology

Language Recognition and Problem A problem is represented by a set of strings of the input whose answer for the corresponding problem is “YES”. a string is in a language = the answer of the corresponding problem for the string is “YES” Let “Given a positive integer n, is n a prime number > 20?” be the problem P. If a string represents an integer i in {m | m is a prime number > 20} , then the answer for the problem P for n = i is true. SNS College of Technology