Why do we study Theory of Computation ?

Slides:



Advertisements
Similar presentations
CS 3240: Languages and Computation
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...
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,
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.
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.
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.
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. –{
Foundations of Computing Science
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 -
Formal Language & Automata Theory
CSE 105 theory of computation
Jaya Krishna, M.Tech, Assistant Professor
Course 2 Introduction to Formal Languages and Automata Theory (part 2)
Introduction to Automata Theory
THEORY OF COMPUTATION UNIT 1
CSE322 CONSTRUCTION OF FINITE AUTOMATA EQUIVALENT TO REGULAR EXPRESSION Lecture #9.
Closure Properties of Regular Languages
Chapter 4 Properties of Regular Languages
Regular Languages ภาษาปกติ.
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:

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

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

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 2301379 Chapter 1 Introduction

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 2301379 Chapter 1 Introduction

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 2301379 Chapter 1 Introduction

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

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

History of Theory of Computation 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 Jaruloj Chongstitvatana 2301379 Chapter 1 Introduction

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

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

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

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

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). Jaruloj Chongstitvatana 2301379 Chapter 1 Introduction

String Operations Concatenation Substring Reversal Jaruloj Chongstitvatana 2301379 Chapter 1 Introduction

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 2301379 Chapter 1 Introduction

Concatenation 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 … Jaruloj Chongstitvatana 2301379 Chapter 1 Introduction

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 2301379 Chapter 1 Introduction

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

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 2301379 Chapter 1 Introduction

Σ* 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 2301379 Chapter 1 Introduction

Σ+ 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 2301379 Chapter 1 Introduction

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

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

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. Le = {Σ* | the number of 1’s in  is even}. Le= {Σ* | the number of 1’s in  is not even}. Le= {Σ* | the number of 1’s in  is odd}. Jaruloj Chongstitvatana 2301379 Chapter 1 Introduction

Union Let L1 and L2 be languages over an alphabet Σ. The union of L1 and L2, denoted by L1L2, is {x | x is in L1 or L2}. 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 2301379 Chapter 1 Introduction

Intersection Let L1 and L2 be languages over an alphabet Σ. The intersection of L1 and L2, denoted by L1L2, is { x | x is in L1 and L2}. 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 2301379 Chapter 1 Introduction

Concatenation Let L1 and L2 be languages over an alphabet Σ. The concatenation of L1 and L2, denoted by L1L2, is {w1w2| w1 is in L1 and w2 is in L2}. 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 2301379 Chapter 1 Introduction

Reversal Let L be a language over an alphabet Σ. The reversal of L, denoted by Lr, is {wr| 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 2301379 Chapter 1 Introduction

Kleene’s closure Le* = {Σ* | the number of 1’s in  is even} 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 = x1 x2 … xn and x1, x2 , …, xn are in L}. That is, L* = i= 0 Li Example: Let Σ = {0,1} and Le = {Σ* | the number of 1’s in  is even} Le* = {Σ* | the number of 1’s in  is even} (Le)* = {Σ*| the number of 1’s in  is odd}* = {Σ*| the number of 1’s in  > 0} Jaruloj Chongstitvatana 2301379 Chapter 1 Introduction

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

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

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, …} Jaruloj Chongstitvatana 2301379 Chapter 1 Introduction

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

Common misconception Beware

A language is a set. 1 01 001 0001 00001 1 10 100 1000 10000 L1 L2 Jaruloj Chongstitvatana 2301379 Chapter 1 Introduction

And, there is also a set of languages. A class of language 1 01 001 0001 00001 L1 1 10 100 1000 10000 L2 L2 L1 Jaruloj Chongstitvatana 2301379 Chapter 1 Introduction