Introduction 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.
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.
FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY
CS 310 – Fall 2006 Pacific University CS310 Strings, String Operators, and Languages Sections: August 30, 2006.
1 Languages and Finite Automata or how to talk to machines...
Normal forms for Context-Free Grammars
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:
Fall 2004COMP 3351 Languages. Fall 2004COMP 3352 A language is a set of strings String: A sequence of letters/symbols Examples: “cat”, “dog”, “house”,
Regular Languages A language is regular over  if it can be built from ;, {  }, and { a } for every a 2 , using operators union ( [ ), concatenation.
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.
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.
1 Strings and Languages. 2 Review Sets and sequences Functions and relations Graphs Boolean logic:      Proof techniques: – Construction, Contradiction,
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.
1 Languages. 2 A language is a set of strings String: A sequence of letters Examples: “cat”, “dog”, “house”, … Defined over an alphabet:
Welcome to Honors Intro to CS Theory Introduction to CS Theory (Honors & Traditional): - formalization of computation - various models of computation (increasing.
Strings and Languages CS 130: Theory of Computation HMU textbook, Chapter 1 (Sec 1.5)
نظام المحاضرات الالكترونينظام المحاضرات الالكتروني Theory of Automata We will arrive at what we may believe to be the most powerful machine possible. When.
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.
Regular Languages ภาษาปกติ. Jaruloj Chongstitvatana Outline Regular expressions Regular languages Equivalence between languages accepted by.
UNIT - I Formal Language and Regular Expressions: Languages Definition regular expressions Regular sets identity rules. Finite Automata: DFA NFA NFA with.
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 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. –{
Introduction to the Theory of Computation
Languages.
Why do we study Theory of Computation ?
Lecture 1 Theory of Automata
CIS Automata and Formal Languages – Pei Wang
Course 1 Introduction to Formal Languages and Automata Theory (part 1)
Languages Prof. Busch - LSU.
Languages Costas Busch - LSU.
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
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.
Chapter 1 Introduction to the Theory of Computation
CSE 105 theory of computation
COSC 3340: Introduction to Theory of Computation
Languages Fall 2018.
CSE 105 theory of computation
Presentation transcript:

Introduction Why do we study Theory of Computation ?

Jaruloj Chongstitvatana Chapter 1 Introduction2 Outline Importance of Theory of Computation Languages Languages and Problems

Jaruloj Chongstitvatana Chapter 1 Introduction3 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.

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

Jaruloj Chongstitvatana Chapter 1 Introduction5 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 cryptograpic scheme safe?

Jaruloj Chongstitvatana Chapter 1 Introduction6 Applications in Computer Science Analysis of algorithms Complexity Theory Cryptography Compilers Circuit design

Jaruloj Chongstitvatana Chapter 1 Introduction7 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 McCulloch and Pitts invented finite automata Kleene invented regular expressions and proved the equivalence of regular expression and finite automata.

Jaruloj Chongstitvatana Chapter 1 Introduction8 History of Theory of Computation 1956 Chomsky defined Chomsky hierarchy, which organized languages recognized by different automata into hierarchical classes 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

Jaruloj Chongstitvatana Chapter 1 Introduction9 History of Theory of Computation 1965 Hartmantis and Stearns defined time complexity, and Lewis, Hartmantis and Stearns defined space complexity Cook showed the first NP-complete problem, the satisfiability prooblem Karp Showed many other NP-complete problems.

Jaruloj Chongstitvatana Chapter 1 Introduction10 History of Theory of Computation 1976 Diffie and Helllman defined Modern Cryptography based on NP-complete problems Rivest, Shamir and Adelman proposed a public-key encryption scheme, RSA.

Jaruloj Chongstitvatana Chapter 1 Introduction11 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 are strings over { 0, 1 }. –Cat, CAT, and compute are strings over the English alphabet.

Jaruloj Chongstitvatana Chapter 1 Introduction12 Empty String An empty string, denoted by , is a string containing no symbol. –  is a string over any alphabet.

Jaruloj Chongstitvatana Chapter 1 Introduction13 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 i th position of a string x, for 1  i  length(x).

Jaruloj Chongstitvatana Chapter 1 Introduction14 String Operations Concatenation Substring Reversal

Jaruloj Chongstitvatana Chapter 1 Introduction15 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

Jaruloj Chongstitvatana Chapter 1 Introduction16 Concatenation The concatenation of string x for n times, where n  0, is denoted by x n –x 0 =  –x 1 = x –x 2 = x x –x 3 = x x x – …– …

Jaruloj Chongstitvatana Chapter 1 Introduction17 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.

Jaruloj Chongstitvatana Chapter 1 Introduction18 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 x r is ε. –If a is in Σ, y is in Σ * and x = a y, then x r = y r a.

Jaruloj Chongstitvatana Chapter 1 Introduction19 Example of Reversal (automata) r = (utomata) r a = (tomata) r ua = (omata) r tua = (mata) r otua = (ata) r motua = (ta) r amotua = (a) r tamotua = (  ) r atamotua = atamotua

Jaruloj Chongstitvatana Chapter 1 Introduction20 Σ*Σ* 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, … }.

Jaruloj Chongstitvatana Chapter 1 Introduction21 Σ+Σ+ 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.

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

Jaruloj Chongstitvatana Chapter 1 Introduction23 Operations on Languages Complementation Union Intersection Concatenation Reversal Closure

Jaruloj Chongstitvatana Chapter 1 Introduction24 Complementation Let L be a language over an alphabet Σ. The complementation of L, denoted by  L, is Σ *– L. Example: Let Σ = {0, 1} be the alphabet. L e = {  Σ * | the number of 1 ’ s in  is even}.  L e = {  Σ * | the number of 1 ’ s in  is not even}.  L e = {  Σ * | the number of 1 ’ s in  is odd}.

Jaruloj Chongstitvatana Chapter 1 Introduction25 Union Let L 1 and L 2 be languages over an alphabet Σ. The union of L 1 and L 2, denoted by L 1  L 2, is { x | x is in L 1 or L 2 }. Example: { x  {0,1}*| x begins with 0}  { x  {0,1}*| x ends with 0} = { x  {0,1}*| x begins or ends with 0}

Jaruloj Chongstitvatana Chapter 1 Introduction26 Intersection Let L 1 and L 2 be languages over an alphabet Σ. The intersection of L 1 and L 2, denoted by L 1  L 2, is { x | x is in L 1 and L 2 }. Example: { x  {0,1}*| x begins with 0}  { x  {0,1}*| x ends with 0} = { x  {0,1}*| x begins and ends with 0}

Jaruloj Chongstitvatana Chapter 1 Introduction27 Concatenation Let L 1 and L 2 be languages over an alphabet Σ. The concatenation of L 1 and L 2, denoted by L 1  L 2, is { w 1  w 2 | w 1 is in L 1 and w 2 is in L 2 }. Example { x  {0,1}*| x begins with 0}  { x  {0,1}*| x ends with 0} = { x  {0,1}*| x begins and ends with 0 and length(x)  2} { x  {0,1}*| x ends with 0}  { x  {0,1}*| x begins with 0} = { x  {0,1}*| x has 00 as a substring}

Jaruloj Chongstitvatana Chapter 1 Introduction28 Reversal Let L be a language over an alphabet Σ. The reversal of L, denoted by L r, is { w r | w is in L }. Example { x  {0,1}*| x begins with 0} r = { x  {0,1}*| x ends with 0} { x  {0,1}*| x has 00 as a substring} r = { x  {0,1}*| x has 00 as a substring}

Jaruloj Chongstitvatana Chapter 1 Introduction29 Kleene’s closure Let L be a language over an alphabet Σ. The Kleene ’ s closure of L, denoted by L*, is { x | for an integer n  0 x = x 1 x 2 … x n and x 1, x 2, …, x n are in L }. That is, L* =  i  = 0 L i Example: Let Σ = {0,1} and L e = {  Σ * | the number of 1 ’ s in  is even} L e * = {  Σ * | the number of 1 ’ s in  is even} (  L e )* = {  Σ *| the number of 1 ’ s in  is odd}* = {  Σ *| the number of 1 ’ s in  > 0}

Jaruloj Chongstitvatana Chapter 1 Introduction30 Closure Let L be a language over an alphabet Σ. The closure of L, denoted by L +, is { x |for an integer n  1, x = x 1 x 2 …x n and x 1, x 2, …, x n are in L } That is, L + =  i  = 1 L i Example: Let Σ = { 0, 1 } be the alphabet. L e = {  Σ * | the number of 1 ’ s in  is even} L e + = {  Σ * | the number of 1 ’ s in  is even} = L e *

Jaruloj Chongstitvatana Chapter 1 Introduction31 Observation about Closure L + = L *  { ε } ? Example: L = {  Σ * | the number of 1 ’ s in  is even} L + = {  Σ * | the number of 1 ’ s in  is even} = L e * Why? L * = L +  { ε } ?

Jaruloj Chongstitvatana Chapter 1 Introduction32 Languages and Problems Problem –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, …}

Jaruloj Chongstitvatana Chapter 1 Introduction33 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.

Common misconception Beware

Jaruloj Chongstitvatana Chapter 1 Introduction35 A language is a set L1L1 L2L2

Jaruloj Chongstitvatana Chapter 1 Introduction36 And, there is also a set of languages L1L L2L2 L1L1 L2L2 A class of language