CSC173 Workshop: 13 Sept. Notes

Similar documents
FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

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

T (s, xa) = T (T (s, x), a). The language recognized by M, denoted L(M), is the set of strings accepted by M. That is,

CS 154. Finite Automata, Nondeterminism, Regular Expressions

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

3515ICT: Theory of Computation. Regular languages

COM364 Automata Theory Lecture Note 2 - Nondeterminism

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

Nondeterministic Finite Automata

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

Decision, Computation and Language

Equivalence of DFAs and NFAs

CS243, Logic and Computation Nondeterministic finite automata

Theory of Computation (I) Yijia Chen Fudan University

Theory of Computation Lecture 1. Dr. Nahla Belal

CS 154 Introduction to Automata and Complexity Theory

CS 455/555: Finite automata

CPS 220 Theory of Computation REGULAR LANGUAGES

Lecture 3: Nondeterministic Finite Automata

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

Nondeterministic finite automata

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

UNIT-III REGULAR LANGUAGES

Languages. Non deterministic finite automata with ε transitions. First there was the DFA. Finite Automata. Non-Deterministic Finite Automata (NFA)

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

September 7, Formal Definition of a Nondeterministic Finite Automaton

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

Finite Automata and Regular languages

Closure Properties of Regular Languages. Union, Intersection, Difference, Concatenation, Kleene Closure, Reversal, Homomorphism, Inverse Homomorphism

Chapter Five: Nondeterministic Finite Automata

Closure under the Regular Operations

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

Languages, regular languages, finite automata

Theory of Computation p.1/?? Theory of Computation p.2/?? Unknown: Implicitly a Boolean variable: true if a word is

CPSC 421: Tutorial #1

Computational Models - Lecture 1 1

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

Computational Models Lecture 2 1

CS 154, Lecture 3: DFA NFA, Regular Expressions

Computational Models Lecture 2 1

Course 4 Finite Automata/Finite State Machines

Deterministic Finite Automata. Non deterministic finite automata. Non-Deterministic Finite Automata (NFA) Non-Deterministic Finite Automata (NFA)

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

Nondeterminism. September 7, Nondeterminism

Computational Models #1

Incorrect reasoning about RL. Equivalence of NFA, DFA. Epsilon Closure. Proving equivalence. One direction is easy:

Final exam study sheet for CS3719 Turing machines and decidability.

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

DM17. Beregnelighed. Jacob Aae Mikkelsen

Theory of Computation

Non-deterministic Finite Automata (NFAs)

Non-Deterministic Finite Automata

Fooling Sets and. Lecture 5

HKN CS/ECE 374 Midterm 1 Review. Nathan Bleier and Mahir Morshed

Lecture 17: Language Recognition

Outline. Nondetermistic Finite Automata. Transition diagrams. A finite automaton is a 5-tuple (Q, Σ,δ,q 0,F)

Computer Sciences Department

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

Deterministic Finite Automata (DFAs)

Constructions on Finite Automata

CMPSCI 250: Introduction to Computation. Lecture #22: From λ-nfa s to NFA s to DFA s David Mix Barrington 22 April 2013

Deterministic Finite Automata (DFAs)

Automata & languages. A primer on the Theory of Computation. Laurent Vanbever. ETH Zürich (D-ITET) September,

Theory of computation: initial remarks (Chapter 11)

CSE 105 THEORY OF COMPUTATION

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

2017/08/29 Chapter 1.2 in Sipser Ø Announcement:

CS 301. Lecture 18 Decidable languages. Stephen Checkoway. April 2, 2018

UNIT-VIII COMPUTABILITY THEORY

Finite Automata (contd)

Automata: a short introduction

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

Sri vidya college of engineering and technology

CSC236 Week 11. Larry Zhang

CSE 105 THEORY OF COMPUTATION

Theory of computation: initial remarks (Chapter 11)

What we have done so far

Let us first give some intuitive idea about a state of a system and state transitions before describing finite automata.

Introduction to Languages and Computation

What languages are Turing-decidable? What languages are not Turing-decidable? Is there a language that isn t even Turingrecognizable?

Lecture Notes On THEORY OF COMPUTATION MODULE -1 UNIT - 2

CISC 4090 Theory of Computation

CMSC 330: Organization of Programming Languages. Theory of Regular Expressions Finite Automata

CSE 105 THEORY OF COMPUTATION

Finite Automata and Languages

Automata and Formal Languages - CM0081 Non-Deterministic Finite Automata

Finite Automata Part One

Introduction to Turing Machines. Reading: Chapters 8 & 9

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

Lecture 1: Finite State Automaton

Finite Automata Part One

Theory of Languages and Automata

Concatenation. The concatenation of two languages L 1 and L 2

Closure under the Regular Operations

Deterministic Finite Automaton (DFA)

Foundations of

Computational Theory

Proofs, Strings, and Finite Automata. CS154 Chris Pollett Feb 5, 2007.

CS21 Decidability and Tractability

Intro to Theory of Computation

Transcription:

CSC173 Workshop: 13 Sept. Notes Frank Ferraro Department of Computer Science University of Rochester September 14, 2010 1 Regular Languages and Equivalent Forms A language can be thought of a set L of strings w, where each w is some sequence (possibly empty and possibly with repetition) of letters in an alphabet. Generally, we donote that alphabet by the symbol Σ. It is VERY IMPORTANT to remember that languages are simply sets. You can create new languages from existing languages by the union/alternation operator (e.g. L 1 L 2 = {w w L 1 L 2 }), the intersection operator (e.g. L 1 L 2 = {w w L 1 L 2 }), concatenation (e.g. L 1 L 2 = {xy x L 1,y L 2 }), the Kleene closure/star operator (e.g. L 1 = {w 1w 2... w k k 0,w i L 1,1 i k}), and complement (e.g. L 1 = {w w L 1 }). However, not all languages are created equal; some are harder than others 1. One of the main goals of automata theory is to classify, group and compare these languages. The Chomsky hierarchy provides four classifications, in ascending order of complexity: regular languages, context-free languages, context-sensitive languages, and recursively enumerable languages. In this class you will only study in depth regular languages and context-free languages. A note before proceeding: Many of these definitions can be found in Introduction to the Theory of Computation by Michael Sipser Introduction to Automata Theory, Languages, and Computation by J.E. Hopcroft and Jeffrey D. Ullman. 2nd edition. 1979. (NOTE: There is a more 3rd edition, with A. Aho added as a co-author. If possible go to the 2nd edition. There are some copies in Carlson.) You may want to look at one (or both) of these books. There are also countless tutorials online. Some of the examples come from those sources, some I made up, some I found online. In the Chomsky hierarchy, regular languages can be thought of as very simple pattern matchers. It can be shown that a language is regular if and only if there is some regular expression to describe it. Despite their simplicity, regular expressions can be extremely useful: anyone who has used Perl, or the command line program grep knows this 2. 1 In fact, some languages are not even decidable! 2 Technically, the regular expressions provided by many common/modern utilities, such as Perl and grep, are slightly more powerful than actual regular expressions. We ll gloss over this fact though. 1

Briefly, a regular expression can be defined inductively: Definition 1. A string R is called a regular expression if R is a Σ, (the empty string), (the empty language), R 1 R 2, where R 1 and R 2 are regular expressions (union/alternation), R 1 R 2, where R 1 and R 2 are regular expressions (concatenation), R 1 where R 1 is a regular expression. Concatenation is normally shown by juxtaposition and alternation is normally shown with a vertical pipe ( ). You may think of regular expressions as sets. There is a difference between and. What is it? Examples of regular expressions include: (0 1 ),Σ,(0 1011 )\(1 001(000) ) (where \ is the difference of sets operator). There can be an issue with the precedence rules. However, the simplest thing is just to remember order of operations of arithmetic (PEMDAS). You can think of alternation ( ) as being like addition; concatenation (juxtaposition) as being like multiplication, and Kleene star as being like exponentiation. For instance, how would you read x 2 y 3 + x(y + z) 4? Now, try the same thing with the regular expression Example 1. Some practice problems. a b a(b c). (1) 1. All words over Σ whose length is a multiple of three. (ΣΣΣ) 2. (01 + ) The set of all words w where every 0 in w is followed by at least one 1. 3. Simplify: 1 4. Simplify: (This can be tricky! What happens if you put together 0 strings?) {} 5. Over Σ = [0,9] Z, write a regular expression for valid IPv4 addresses. 6. Write a regular expression for valid email addresses. 2

Example 2. Come up with a regular expression to describe all even binary, non-negative integers. An even number is any which can be divided (without remainder) by 2. Any binary nonnegative integer x of n bits can be represented as x = 0 i=n 1 where a i {0,1}. But for all i > 0, 2 i is even. The even integers form an additive group (that is, even plus even yields even), so we only must be concerned with the least significant bit that is, when i = 0, 2 i = 2 0 = 1. The only way to get an odd binary positive integer is for a 0 = 1. So, we want to accept only those strings that end in 0 (remember, strings are read left-to-right). a i 2 i, Let Σ = {0,1}. Then the regular expression R = Σ 0 will do. Having regular expressions is nice, but it would be really nice if there were some way to recognize them. We would really like some machine that could have some sort of internal state and accept or reject a regular expression. Definition 2. A (deterministic) finite automaton is a 5-tuple Q,Σ,δ,q 0,F where Q is a finite set, called states, Σ is a finite set, called the alphabet, δ : Q Σ Q is the transition function, q 0 Q is a special start state, and F Q is a set of accepting states. Formally, acceptance can be defined in terms of a graph, but we can think of it more informally as whether the current state q e is an accepting state once all the input has been processed; that is, if when the input has been read once (and only one), q e F. If so, we accept and if not we reject. Further, δ should be a total function (that is, it should be defined for every element in its domain). Note that in many cases, it will not be easy to write δ in a succinct expression; rather, the transitions will have to be enumerated. To make describing FAs easier, a diagram may also suffice. Though δ is a total function, it can generally also be assumed that any input tokens not explicitly defined for a given state result in automatic failure. Generally, the language generated by a FA M is defined as L(M) = {w M accepts w}. Note that DFAs are equivalent to regular expressions. That is, given a regular expression R, there exists some DFA M that recognizes R (that is, x L(M) x R, where R is the regular language represented by R). Example 3. Given the DFA M = Q,Σ,δ,q 0,F, what can you say about L(M) if (i) q 0 F? In such a case, we know that M accepts at least one string: the empty string. However, that is all we can say without more information. 3

(ii) F = Q? Every state is an accepting state. Since δ is a total function, then L(M) = Σ. (iii) F =? In such a case, no state is accepting, so L(M) =. (iv) Q = 1? Since we must define an initial state q 0, then we know that Q = {q 0 }. F Q, so either F = or F = Q. If F =, then no strings are accepted, so L(M) = ; on the other hand, if F = Q, then L(M) = Σ (since δ is a total function). 1. Give the state diagram of a DFA M which recognizes L. 0 0 0 q 1 0 q 1 1 q 2 1 Figure 1: DFA for Ex3.1 2. Give a regular expression which represents L. 0 (0 10 10 10 ) Example 4. Consider the language L = {s the number of 1s in s is a multiple of 3}. See Figure 1. Example 5. Describe a machine that accepts even binary non-negative integers. Assume our alphabet is Σ = {0,1}. We can describe the language that is required by L = {w Σ w 0 mod 2, w Z 0 }. However, that may not help when trying to come up with a machine to recognize L. However, we already came up with a regular expression R from Example 2: R = Σ 0. See Figure 2 for the machine. 1 0 q 0 0 q 1 1 Figure 2: DFA to accept even binary non-negative integers. Example 6. Describe a machine that accepts even binary non-negative integers with an even number of 1s. 4

Example 7. (This may be very tricky. Read only if you feel confident with DFAs; attempt only if you feel very confident with DFAs. The question is from Sipser, the answer is my own.) Let B = {1 k y y {0,1} and y contains at least k 1s, for k 1}. Show that B is regular; that is, give some (N)DFA accepting B. Let B be as described, and let A = {1y y Σ,y has at least one 1}. Note that if x B, then there is some positive integer k such that x = 1 k y where y is over Σ and has at least k 1s. So x = 1 k (0 1) k Σ x = 11 k 1 (0 1) k Σ x = 1z where z over Σ has at least 2k 1 1s x = 1z where z has at least one 1 x A. So let M = Q,Σ,δ,q 0 Q,F. Let Q = {q 0,q 1,q 2,q 3 }, where q 0 is the initial state and F = {q 2 }. For δ, consider the following figure (note that q 3 is the fail state ). 0 0,1 0,1 q 1 0 q 1 1 q 2 q 3 0 As proven above, if x B x A, which happens if and only if x begins with a 1 and then, prior to being accepted, has a suffix z over Σ with at least one 1. However, the only path from q 0 to q 2 (the only accepting state) is (q 0,q 1,q 2 ), which requires an initial 1 and a second 1, following an arbitrary number of 0s. So L(M) = B. We may define a similar type of machine, called a non-deterministic finite automaton: Definition 3. A non-deterministic finite automaton is a 5-tuple Q,Σ,δ,q 0,F where Q is a finite set, called states, Σ is a finite set, called the alphabet, δ : Q Σ P(Q) is the transition function, q 0 Q is a special start state, and F Q is a set of accepting states. Here P( ) represents the power set. You may think of NFAs as for every state in δ(q, σ), an exact copy of the input and current state of machine is generated, where the current state corresponds to the state in δ(q,σ). These multiple/alternative paths are traversed simulatenously. We may think of each possible path as a branch. Then, we may informally define acceptance as whether there exists some path/branch such that the ending state (the state once all input has been processed once and only once) of that branch is an accepting state. Example 8. Describe an NFA that accepts even binary non-negative integers. Assume our alphabet is Σ = {0,1}. Recall that we already came up with a regular expression R from Example 2: R = Σ 0. See Figure 3 for the machine. 5

0,1 q 0 0 q 1 Figure 3: NFA to accept even binary non-negative integers. On input w = 100, the machine from Figure 3 would yield the execution: 1. Reading w = 100, there is only one option: to be in q 0. 2. Reading w = 100, there are two options: either q 0 q 0 or q 0 q 1. 3. Reading w = 100, there are three options (use X to mark auto-reject): q 0 q 0 q 0 (failure), q 0 q 1 X (failure), q 0 q 0 q 1 (accept). It may initially seem that NFAs are more powerful than DFAs. However, the subset construction algorithm creates a DFA M 2 that is equivalent to any NFA M 1 ; that is, L(M 1 ) = L(M 2 ). If there are n states in an NFA N, what is the supremum on the number of states possible in an equivalent DFA M? 2 n. Do you see how/why? (Hint: Power set) Example 9. Using the subset construction algorithm, construct a DFA equivalent to the NFA in Figure 3. Try it, and then compare what you get to Figure 2. In this case, they should be identical. We may extend the definition of the NFA to include instantenous jumps: Definition 4. A non-deterministic finite automaton with -transitions is a 5- tuple Q,Σ,δ,q 0,F where Q is a finite set, called states, Σ = Σ {} is a finite set, called the alphabet with appended, δ : Q Σ P(Q) is the transition function, q 0 Q is a special start state, and F Q is a set of accepting states. By using the alphabet Σ, we are giving ourselves the option of simulatenously transitioning from one state to another. Acceptance is defined similarly as above. Example 10. Construct an NFA that is equivalent to the regular expression given in (1). Recall that to be R = a b a(b c). See the following figure for the machine and its construction. 6

a,b b,c q 0 q a 1 q 2 (a) FA for a b (b) FA for a(b c) a,b q 0 q s q 1 a q 2 q e b,c (c) FA for regular expression R Figure 4: Construction stages of an NFA from a regular expression. Note that you can probably can come up with a much simpler NFA (or possibly DFA) that will do the job. This is just a very simple example to show how you can build an NFA from a regular expression. Example 11. Construct a DFA equivalent to the NFA in Figure 4. Now, it really seems as though an NFA with -transitions has to be more power than either a DFA or a regular NFA. But that isn t so! NFAs with -transitions are no more powerful than regular NFAs. However, that means that they re equivalent. We therefore have a very beautiful picture coming together, which we may sum up in a main point: Main Point: A language L is regular iff there is some regular expression R generating L, iff there is some NFA- recognizing L, iff there is some NFA recognizing L, iff there is some DFA recognizing L. Example 12. Is every finite language regular? Why or why not? 7