Great Theoretical Ideas In Computer Science John LaffertyCS 15-251 Fall 2006 Lecture 22 November 9, 2006Carnegie Mellon University b b a b a a a b a b.

Slides:



Advertisements
Similar presentations
CS 3240: Languages and Computation
Advertisements

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.
Lecture 24 MAS 714 Hartmut Klauck
Deterministic Finite Automata (DFA)
Finite Automata CPSC 388 Ellen Walker Hiram College.
Finite Automata Course: Theory of Computation Date: Nov 16 th, 2011 Lin Liu lliu AT cs.kent.edu.
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
Finite Automata Great Theoretical Ideas In Computer Science Anupam Gupta Danny Sleator CS Fall 2010 Lecture 20Oct 28, 2010Carnegie Mellon University.
Intro to DFAs Readings: Sipser 1.1 (pages 31-44) With basic background from Sipser 0.
Intro to DFAs Readings: Sipser 1.1 (pages 31-44) With basic background from Sipser 0.
Nonregular languages Sipser 1.4 (pages 77-82). CS 311 Fall Nonregular languages? We now know: –Regular languages may be specified either by regular.
Lecture 3UofH - COSC Dr. Verma 1 COSC 3340: Introduction to Theory of Computation University of Houston Dr. Verma Lecture 3.
CS5371 Theory of Computation
Courtesy Costas Busch - RPI1 Non Deterministic Automata.
COMMONWEALTH OF AUSTRALIA Copyright Regulations 1969 WARNING This material has been reproduced and communicated to you by or on behalf of Monash University.
1 Finite Automata. 2 Finite Automaton Input “Accept” or “Reject” String Finite Automaton Output.
1 Languages and Finite Automata or how to talk to machines...
Lecture 3 Goals: Formal definition of NFA, acceptance of a string by an NFA, computation tree associated with a string. Algorithm to convert an NFA to.
Foundations of (Theoretical) Computer Science Chapter 1 Lecture Notes (Section 1.1: DFA’s) David Martin With some modifications.
1 Regular Languages Finite Automata eg. Supermarket automatic door: exit or entrance.
Topics Automata Theory Grammars and Languages Complexities
Theory of Computing Lecture 22 MAS 714 Hartmut Klauck.
Finite State Machines Data Structures and Algorithms for Information Processing 1.
Great Theoretical Ideas in Computer Science.
Regular Languages A language is regular over  if it can be built from ;, {  }, and { a } for every a 2 , using operators union ( [ ), concatenation.
Lecture 23: Finite State Machines with no Outputs Acceptors & Recognizers.
Introduction to CS Theory Lecture 3 – Regular Languages Piotr Faliszewski
Great Theoretical Ideas in Computer Science.
Languages Given an alphabet , we can make a word or string by concatenating the letters of . Concatenation of “x” and “y” is “xy” Typical example: 
Regular Grammars Chapter 7. Regular Grammars A regular grammar G is a quadruple (V, , R, S), where: ● V is the rule alphabet, which contains nonterminals.
CMSC 330: Organization of Programming Languages Finite Automata NFAs  DFAs.
CMSC 330: Organization of Programming Languages Theory of Regular Expressions Finite Automata.
CS 203: Introduction to Formal Languages and Automata
Chapter 3 Regular Expressions, Nondeterminism, and Kleene’s Theorem Copyright © 2011 The McGraw-Hill Companies, Inc. Permission required for reproduction.
Recognising Languages We will tackle the problem of defining languages by considering how we could recognise them. Problem: Is there a method of recognising.
Deterministic Finite Automata COMPSCI 102 Lecture 2.
CS 208: Computing Theory Assoc. Prof. Dr. Brahim Hnich Faculty of Computer Sciences Izmir University of Economics.
MA/CSSE 474 Theory of Computation Minimizing DFSMs.
Machines That Can’t Count CS Lecture 15 b b a b a a a b a b.
Great Theoretical Ideas In Computer Science John LaffertyCS Fall 2005 Lecture 10Sept Carnegie Mellon University b b a b a a a b a b One.
Lecture Notes 
Mathematical Foundations of Computer Science Chapter 3: Regular Languages and Regular Grammars.
Transparency No. 2-1 Formal Language and Automata Theory Homework 2.
Great Theoretical Ideas in Computer Science for Some.
Finite Automata Great Theoretical Ideas In Computer Science Victor Adamchik Danny Sleator CS Spring 2010 Lecture 20Mar 30, 2010Carnegie Mellon.
CSCI 4325 / 6339 Theory of Computation Zhixiang Chen.
1 Section 11.2 Finite Automata Can a machine(i.e., algorithm) recognize a regular language? Yes! Deterministic Finite Automata A deterministic finite automaton.
1 Chapter Pushdown Automata. 2 Section 12.2 Pushdown Automata A pushdown automaton (PDA) is a finite automaton with a stack that has stack operations.
Set, Alphabets, Strings, and Languages. The regular languages. Clouser properties of regular sets. Finite State Automata. Types of Finite State Automata.
Great Theoretical Ideas In Computer Science Steven RudichCS Spring 2005 Lecture 9Feb Carnegie Mellon University b b a b a a a b a b One Minute.
1 Advanced Theory of Computation Finite Automata with output Pumping Lemma Theorem.
Fall 2004COMP 3351 Finite Automata. Fall 2004COMP 3352 Finite Automaton Input String Output String Finite Automaton.
Languages.
Non Deterministic Automata
Pushdown Automata.
Non-Deterministic Finite Automata
CS 154, Lecture 3: DFANFA, Regular Expressions.
COSC 3340: Introduction to Theory of Computation
Non Deterministic Automata
CSE322 Minimization of finite Automaton & REGULAR LANGUAGES
FORMAL LANGUAGES, AUTOMATA, AND COMPUTABILITY
Great Theoretical Ideas in Computer Science
CS21 Decidability and Tractability
One Minute To Learn Programming: Finite Automata
CSC312 Automata Theory Transition Graphs Lecture # 9
Recap lecture 18 NFA corresponding to union of FAs,example, NFA corresponding to concatenation of FAs,examples, NFA corresponding to closure of an FA,examples.
NFAs and Transition Graphs
LECTURE # 07.
Non Deterministic Automata
Presentation transcript:

Great Theoretical Ideas In Computer Science John LaffertyCS Fall 2006 Lecture 22 November 9, 2006Carnegie Mellon University b b a b a a a b a b One Minute To Learn Programming: Finite Automata

Steven Rudich: rudich Today we’ll talk about a programming language so simple that you can learn it in less than a minute.

Steven Rudich: rudich Meet “ABA” The Automaton! b b a b a a a b a b Input StringResult abaAccept aabbReject aabbaAccept 

Steven Rudich: rudich The Simplest Interesting Machine: Finite State Machine OR Finite Automaton

Steven Rudich: rudich Finite set of states A start state A set of accepting states A finite alphabet a b # x 1 State transition instructions Finite Automaton

Steven Rudich: rudich How Machine M operates. M “reads” one letter at a time from the input string (going from left to right) M starts in state q 0. If M is in state q i reads the letter a then If  (q i. a) is undefined then CRASH. Otherwise M moves to state  (q i,a)

Steven Rudich: rudich M accepts the string x if when M reads x it ends in an accepting state. M rejects the string x if when M reads x it ends in a non- accepting state. M crashes on x if M crashes while reading x. Let M=(Q, ,F,  ) be a finite automaton.

Steven Rudich: rudich The set (or language) accepted by M is: Notice that this is 

Steven Rudich: rudich Back to “ABA” The Automaton b b a b a a a b a b Input StringResult abaAccept aabbReject aabbaAccept 

Steven Rudich: rudich What is the language accepted by this machine? L = {a,b}* = all finite strings of a’s and b’s a,b

Steven Rudich: rudich What is the language accepted by this machine? a,b

Steven Rudich: rudich What is the language accepted by this machine? L = all even length strings of a’s and b’s a,b

Steven Rudich: rudich What machine accepts this language? L = all strings in {a,b}* that contain at least one a a a,b b

Steven Rudich: rudich What machine accepts this language? L = strings with an odd number of b’s and any number of a’s b a a b

Steven Rudich: rudich What is the language accepted by this machine? L = any string ending with a b b b a a

Steven Rudich: rudich What is the language accepted by this machine? b b a,b a a

Steven Rudich: rudich What is the language accepted by this machine? L = any string with at least two a’s b b a,b a a

Steven Rudich: rudich What machine accepts this language? L = any string with an a and a b

Steven Rudich: rudich What machine accepts this language? L = any string with an a and a b b b a,b a a b a

Steven Rudich: rudich What machine accepts this language? L = strings with an even number of ab pairs a b b a a b a b

Steven Rudich: rudich L = all strings containing ababb as a consecutive substring

Steven Rudich: rudich L = all strings containing ababb as a consecutive substring b a,b a a b b b b a a a a ab aba abab  Invariant: I am state s exactly when s is the longest suffix of the input (so far) that forms a prefix of ababb.

Steven Rudich: rudich Problem: Does the string S appear inside the text T ? The “grep” Problem Input: text T of length t string S of length n Cost: O(nt) comparisons Naïve method:

Steven Rudich: rudich Automata Solution Build a machine M that accepts any string with S as a consecutive substring. Feed the text to M. Cost: t comparisons + time to build M. As luck would have it, the Knuth, Morris, Pratt algorithm builds M quickly.

Steven Rudich: rudich Real-life uses of finite state machines grep coke machines thermostats (fridge) elevators train track switches lexical analyzers for parsers

Steven Rudich: rudich Any L    is defined to be a language. L is just a set of strings. It is called a language for historical reasons.

Steven Rudich: rudich Let L    be a language. L is called a regular language if there is some finite automaton that accepts L. In this lecture we have seen many regular languages.   even length strings strings containing ababb

Steven Rudich: rudich Theorem: Any finite langage is regular. Proof: Make a machine with a “path” for each string in the language, sharing prefixes Example: L = {a, bcd, ac, bb} b d a c b c

Steven Rudich: rudich Are all languages regular?

Steven Rudich: rudich Consider the language i.e., a bunch of a’s followed by an equal number of b’s No finite automaton accepts this language. Can you prove this?

Steven Rudich: rudich a n b n is not regular. No machine has enough states to keep track of the number of a’s it might encounter.

Steven Rudich: rudich That is a fairly weak argument. Consider the following example…

Steven Rudich: rudich L = strings where the # of occurrences of the pattern ab is equal to the number of occurrences of the pattern ba Can’t be regular. No machine has enough states to keep track of the number of occurrences of ab.

Steven Rudich: rudich Remember “ABA”? b b a b a a a b a b ABA accepts only the strings with an equal number of ab’s and ba’s!

Steven Rudich: rudich Let me show you a professional strength proof that a n b n is not regular….

Steven Rudich: rudich Pigeonhole principle: Given n boxes and m > n objects, at least one box must contain more than one object. Letterbox principle: If the average number of letters per box is a, then some box will have at least a letters. (Similarly, some box has at most a.)

Steven Rudich: rudich Theorem: a n b n is not regular. Proof: Assume that it is. Then  M with k states that accepts it. For each 0  i  k, let S i be the state M is in after reading a i.  i,j  k s.t. S i = S j, but i  j M will do the same thing on a i b i and a j b i. But a valid M must reject a j b i and accept a i b i. 

Steven Rudich: rudich MORAL: Finite automata can’t count.

Steven Rudich: rudich Advertisement You can learn much more about these creatures in the FLAC course. Formal Languages, Automata, and Computation There is a unique smallest automaton for any regular language It can be found by a fast algorithm.