Introduction to Formal Languages, Automata and Computability p.1/51

Similar documents
Lecture 1: Finite State Automaton

Introduction to Finite-State Automata

Introduction to Formal Languages, Automata and Computability p.1/42

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

Finite Automata and Regular Languages

Parsing Regular Expressions and Regular Grammars

Extended transition function of a DFA

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

Formal Definition of a Finite Automaton. August 26, 2013

Automata and Languages

11-711: Algorithms for NLP Homework Assignment #1: Formal Language Theory Solutions

Nondeterministic Finite Automata

CS 208: Automata Theory and Logic

Finite Automata and Languages

Subset construction. We have defined for a DFA L(A) = {x Σ ˆδ(q 0, x) F } and for A NFA. For any NFA A we can build a DFA A D such that L(A) = L(A D )

Finite Automata and Regular Languages (part III)

Formal Models in NLP

2. Elements of the Theory of Computation, Lewis and Papadimitrou,

3515ICT: Theory of Computation. Regular languages

cse303 ELEMENTS OF THE THEORY OF COMPUTATION Professor Anita Wasilewska

Theory of Computation (I) Yijia Chen Fudan University

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

Nondeterministic Finite Automata. Nondeterminism Subset Construction

Formal Definition of Computation. August 28, 2013

COM364 Automata Theory Lecture Note 2 - Nondeterminism

Computability and Complexity

E.g. The set RE of regular expressions is given by the following rules:

Computability and Complexity

Algorithms for NLP

September 11, Second Part of Regular Expressions Equivalence with Finite Aut

Automata and Formal Languages - CM0081 Non-Deterministic Finite Automata

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

Finite Automata. Dr. Neil T. Dantam. Fall CSCI-561, Colorado School of Mines. Dantam (Mines CSCI-561) Finite Automata Fall / 35

Chapter Five: Nondeterministic Finite Automata

Uses of finite automata

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

Finite Automata and Regular languages

Finite Automata. Theorems - Unit I SUSAN ELIAS. Professor Department of Computer Science & Engineering Sri Venkateswara College of Engineering

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,

Chapter 3. Regular grammars

Introduction to Theory of Computing

FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY

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

CS 455/555: Finite automata

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

Computability and Complexity

Introduction to Kleene Algebras

More on Finite Automata and Regular Languages. (NTU EE) Regular Languages Fall / 41

Einführung in die Computerlinguistik

Lecture 3: Nondeterministic Finite Automata

Inf2A: The Pumping Lemma

Deterministic (DFA) There is a fixed number of states and we can only be in one state at a time

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

CSE 135: Introduction to Theory of Computation Nondeterministic Finite Automata (cont )

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

COMP4141 Theory of Computation

C2.1 Regular Grammars

Theory of Computation

C2.1 Regular Grammars

Closure under the Regular Operations

Formal Languages. We ll use the English language as a running example.

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

Automata: a short introduction

CS21 Decidability and Tractability

Equivalence of Regular Expressions and FSMs

Sri vidya college of engineering and technology

Discrete Mathematics. CS204: Spring, Jong C. Park Computer Science Department KAIST

Clarifications from last time. This Lecture. Last Lecture. CMSC 330: Organization of Programming Languages. Finite Automata.

Introduction to Theoretical Computer Science. Motivation. Automata = abstract computing devices

UNIT-III REGULAR LANGUAGES

CS 154. Finite Automata, Nondeterminism, Regular Expressions

Takeaway Notes: Finite State Automata

Theory of Computation (II) Yijia Chen Fudan University

Computational Theory

REGular and Context-Free Grammars

NPDA, CFG equivalence

Recitation 2 - Non Deterministic Finite Automata (NFA) and Regular OctoberExpressions

CS 133 : Automata Theory and Computability

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

Finite Automata. Finite Automata

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

Pushdown Automata. Notes on Automata and Theory of Computation. Chia-Ping Chen

Finite Automata. Seungjin Choi

Theory of Languages and Automata

Lecture 4 Nondeterministic Finite Accepters

September 7, Formal Definition of a Nondeterministic Finite Automaton

Decision, Computation and Language

Finite Automata. Dr. Neil T. Dantam. Fall CSCI-561, Colorado School of Mines. Dantam (Mines CSCI-561) Finite Automata Fall / 43

Foundations of Informatics: a Bridging Course

Nondeterministic Finite Automata

Lecture 23 : Nondeterministic Finite Automata DRAFT Connection between Regular Expressions and Finite Automata

CS243, Logic and Computation Nondeterministic finite automata

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

Computational Models - Lecture 1 1

Chap. 1.2 NonDeterministic Finite Automata (NFA)

Course 4 Finite Automata/Finite State Machines

Closure under the Regular Operations

Finite Automata. BİL405 - Automata Theory and Formal Languages 1

Finite-state machines (FSMs)

Formal Languages and Automata

Transcription:

Introduction to Formal Languages, Automata and Computability Finite State Automata K. Krithivasan and R. Rama Introduction to Formal Languages, Automata and Computability p.1/51

Introduction As another example consider a binary serial adder. At any time it gets two binary inputs x 1 and x 2. The adder can be in any one of the states carry or no carry. The four possibilities for the inputs x 1 x 2 are 00, 01, 10, 11. Initially the adder is in the no carry state. The working of the serial adder can be represented by the following diagram. 01/1 00/0 11/0 01/0 no carry carry 11/1 10/1 00/1 10/0 Introduction to Formal Languages, Automata and Computability p.2/51

. p x x /x 1 2 3 q denotes that when the adder is in state p and gets input x 1 x 2, it goes to state q and outputs x 3. The input and output on a transition from p to q is denoted by i/o. It can be seen that suppose the two binary numbers to be added are 100101 and 100111. Time 6 5 4 3 2 1 1 0 0 1 0 1 1 0 0 1 1 1 The input at time t = 1 is 11 and the output is 0 and the Introduction to Formal Languages, Automata and Computability p.3/51

machine goes to carry state. The output is 0. Here at time t = 2, the input is 01; the output is 0 and the machine remains in carry state. At time t = 3, it gets 11 and output 1 and remains in carry state. At time t = 4, the input is 00; the machine outputs 1 and goes to no carry state. At time t = 5, the input is 00; the output is 0 and the machine remains in no carry state. At time t = 6, the input is 11; the machine outputs 0 and goes to carry state. The input stops here. At time t = 7, no input is there (and this is taken as 00) and the output is 1. It should be noted that at time t = 1, 3, 6 input is 11, but the output is 0 at t = 1, 6 and is 1 at time t = 3. At time t = 4, 5, the input is 00, but the output is 1 at time t = 4 and 0 at t = 5. Introduction to Formal Languages, Automata and Computability p.4/51

. So it is seen that the output depends both on the input and the state. The diagrams we have seen are called state diagrams. q i/o The above diagram indicates that in state q when the machine gets input i, it goes to state p and outputs 0. Let us consider one more example of a state diagram given in p Introduction to Formal Languages, Automata and Computability p.5/51

0/0 1/0 q 0 0/1 The input and output alphabet are {0, 1}. For the input 011010011, the output is 00110100 and machine is in state q 1. It can be seen that the first is 0 and afterwards, the output is the symbol read at the previous instant. It can also be noted that the machine goes to q 1 after reading a 1 and goes to q 0 after reading a 0. q 1 1/1 Introduction to Formal Languages, Automata and Computability p.6/51

It should also be noted that when it goes from state q 0 it outputs a 0 and when it goes from state q 1, it outputs a 1. This machine is called a one moment delay machine. Introduction to Formal Languages, Automata and Computability p.7/51

Deterministic Finite State Automaton Definition A Deterministic Finite State Automaton (DFSA) is a 5-tuple M = (K, Σ, δ, q 0, F ) where K is a finite set of states Σ is a finite set of input symbols q 0 in K is the start state or initial state F K is set of final states δ, the transition function is a mapping from K Σ K. δ(q, a) = p means, if the automaton is in state q and reading a symbol a, it goes to state p in the next Introduction to Formal Languages, Automata and Computability p.8/51

instant, moving the pointer one cell to the right. ˆδ is an extension of δ and ˆδ : K Σ K as follows: ˆδ(q, ɛ) = q for all q in K ˆδ(q, xa) = δ(ˆδ(q, x), a) x Σ, q K, a Σ. Since ˆδ(q, a) = δ(q, a), without any confusion we can use δ for ˆδ also. The language accepted by the automaton is defined as T (M) = {w/w T, δ(q 0, w) F }. Introduction to Formal Languages, Automata and Computability p.9/51

Example Let a DFSA have state set {q 0, q 1, q 2, D}; q 0 is the initial state; q 2 is the only final state. The state diagram of the DFSA is given in the following figure. q 0 a a q b 1 q 2 b b a D a,b Introduction to Formal Languages, Automata and Computability p.10/51

a a a b q 0 a a a b q 1 a a a b q 1 a a a b q 1 a a a b q 2 Introduction to Formal Languages, Automata and Computability p.11/51

After reading aaabb, the automaton reaches a final state. It is easy to see that T (M) = {a n b m /n, m 1} There is a reason for naming the fourth state as D. Once the control goes to D, it cannot accept the string, as from D the automaton cannot go to a final state. On further reading any symbol the state remains as D. Such a state is called a dead state or a sink state. Introduction to Formal Languages, Automata and Computability p.12/51

Nondeterministic Finite State Automaton Consider the following state diagram of a nondeterministic FSA. a b q 0 a q b 1 q 2 On a string aaabb the transition can be looked at as follows. a a a b b q q q 0 0 0 q 0 q 1 q 1 q 1 q 1 q 1 q 2 q 2 Introduction to Formal Languages, Automata and Computability p.13/51

Definition A Nondeterministic Finite State Automaton (NFSA) is a 5-tuple M = (K, Σ, δ, q o, F ) where K, Σ, δ, q 0, F are as given for DFSA and δ, the transition function is a mapping from K Σ into finite subsets of K. The mappings are of the form δ(q, a) = {p 1,..., p r } which means if the automaton is in state q and reads a then it can go to any one of the states p 1,..., p r. δ is extended as ˆδ to K Σ as follows: ˆδ(q, ɛ) = {q} for all q in K. Introduction to Formal Languages, Automata and Computability p.14/51

If P is a subset of K δ(p, a) = p P δ(p, a) ˆδ(q, xa) = δ(ˆδ(q, x), a) ˆδ(P, x) = p P ˆδ(p, x) Since δ(q, a) and ˆδ(q, a) are equal for a Σ, we can use the same symbol δ for ˆδ also. The set of strings accepted by the automaton is denoted by T (M). Introduction to Formal Languages, Automata and Computability p.15/51

T (M) = {w/w T, δ(q 0, w) contains a state from F } The automaton can be represented by a state table also. For example the state diagram given in the figure can be represented as the state table given below q q 1 0 q 2 a {q,q } 0 1 φ φ b φ {q,q } 0 1 φ Introduction to Formal Languages, Automata and Computability p.16/51

Example The state diagram of an NFSA which accepts binary strings which have at least one pair 00 or one pair 11 is 0,1 0,1 q 0 0 q 0 1 q 2 1 q 3 1 q 4 0,1 Introduction to Formal Languages, Automata and Computability p.17/51

Theorem If L is accepted by a NFSA then L is accepted by a DFSA. Let L be accepted by a NFSA M = (K, Σ, δ, q 0, F ). Then we construct a DFSA M = (K, Σ, δ, q 0, F ) as follows: K = P(K), power set of K. Corresponding to each subset of K, we have a state in K. q 0 corresponds to the subset containing q 0 alone. F consists of states corresponding to subsets having at least one state from F. We define δ as follows: δ ([q 1,..., q k ], a) = [r 1, r 2,..., r s ] if and only if δ({q 1,..., q k }, a) = {r 1, r 2,..., r s }. We show that T (M) = T (M ). Introduction to Formal Languages, Automata and Computability p.18/51

We prove this by induction on the length of the string. We show that δ (q 0, x) = [p 1,..., p r ] if and only if δ(q 0, x) = {p 1,..., p r } Basis x = 0 i.e., x = ɛ δ (q 0, ɛ) = q 0 = [q 0 ] δ(q 0, ɛ) = {q 0 } Induction Assume that the result is true for strings x of length upto m. We have to prove for string of length m + 1. By induction hypothesis Introduction to Formal Languages, Automata and Computability p.19/51

δ (q 0, x) = [p 1,..., p r ] if and only if δ(q 0, x) = {p 1,..., p r }. δ (q 0, xa) = δ ([p 1,..., p r ], a), δ(q 0, xa) = δ(p, a), p P where P = {p 1,..., p r }. Suppose δ(p, a) = {s 1,..., s m } p P δ({p 1,..., p r }, a) = {s 1,..., s m }. By our construction δ ([p 1,..., p r ], a) = [s 1,..., s m ] and hence δ (q 0, xa) = δ ([p 1,..., p r ], a) = [s 1,..., s m ]. Introduction to Formal Languages, Automata and Computability p.20/51

In M, any state representing a subset having a state from F is in F. So if a string w is accepted in M, there is a sequence of states which takes M to a final state f and M simulating M will be in a state representing a subset containing f. Thus L(M) = L(M ). Introduction to Formal Languages, Automata and Computability p.21/51

Example Let us construct the DFSA for the NFSA given by the table in previous figure. We construct the table for DFSA. a b [q 0 ] [q 0, q 1 ] [φ] [q 0, q 1 ] [q 0, q 1 ] [q 1, q 2 ] [q 1, q 2 ] [φ] [q 1, q 2 ] [φ] [φ] [φ] δ ([q 0, q 1 ], a) = [δ(q 0, a) δ(q 1, a)] (1) = [{q 0, q 1 } φ] (2) = [q 0, q 1 ] (3) Introduction to Formal Languages, Automata and Computability p.22/51

δ ([q 0, q 1 ], b) = [δ(q 0, b) δ(q 1, b)] (4) = [φ {q 1, q 2 }] (5) = [q 1, q 2 ] (6) The state diagram is given a b [q ] 0 [q,q ] [q,q ] 0 1 a 1 2 b b a [φ] a,b Introduction to Formal Languages, Automata and Computability p.23/51

Nondeterministic Finite State Automaton with ɛ-transitions q a q 0 1 2 b b Definition An NFSA with ɛ-transition is a 5-tuple M = (K, Σ, δ, q 0, F ). where K, Σ, δ, q 0, F are as defined for NFSA and δ is a mapping from K (Σ {ɛ}) into finite subsets of K. δ can be extended as ˆδ to K Σ as follows. First we define the ɛ-closure of a state q. It is the set of states which can be reached from q by reading ɛ only. Of course, ɛ-closure of a state includes itself. ˆδ(q, ɛ) = ɛ-closure(q). Introduction to Formal Languages, Automata and Computability p.24/51 q c q 3 d

For w in Σ and a in Σ, ˆδ(q, wa) = ɛ-closure(p ), where P = {p for some r in ˆδ(q, w), p is in δ(r, a)} Extending δ and ˆδ to a set of states, we get δ(q, a) = q in Q δ(q, a) δ(q, w) = q in Q δ(q, w) The language accepted is defined as T (M) = {w ˆδ(q, w) contains a state in F }. Theorem Let L be accepted by a NFSA with ɛ-moves. Then L can be accepted by a NFSA without ɛ-moves. Let L be accepted by a NFSA with ɛ-moves M = (K, Σ, δ, q 0, F ). Then we construct a NFSA Introduction to Formal Languages, Automata and Computability p.25/51

M = (K, Σ, δ, q 0, F ) without ɛ-moves for accepting L as follows. F = F {q 0 } if ɛ-closure of q 0 contains a state from F. = F otherwise. δ (q, a) = ˆδ(q, a). We should show T (M) = T (M ). We wish to show by induction on the length of the string x accepted that δ (q 0, x) = ˆδ(q 0, x). We start the basis with x = 1 because for x = 0, i.e., x = ɛ this may not hold. We may have δ (q 0, ɛ) = {q 0 } and ˆδ(q 0, ɛ) = ɛ-closure of q 0 which may include other states. Introduction to Formal Languages, Automata and Computability p.26/51

Basis x = 1. Then x is a symbol of Σ say a, and δ (q 0, a) = ˆδ(q 0, a) by our definition of δ. Induction x > 1. Then x = ya for some y Σ and a Σ. Then δ (q 0, ya) = δ (δ (q 0, y), a). By the inductive hypothesis δ (q 0, y) = ˆδ(q 0, y). Let ˆδ(q 0, y) = P. Introduction to Formal Languages, Automata and Computability p.27/51

δ (P, a) = ˆδ(p, a) = ˆδ(q 0, ya) p P Therefore δ (q 0, ya) = ˆδ(q 0, ya) δ (p, a) = ˆδ(p, a) p P p P It should be noted that δ (q 0, x) contains a state in F if and only if ˆδ(q 0, x) contains a state in F. Introduction to Formal Languages, Automata and Computability p.28/51

Example Consider the ɛ-nfsa of previous example. By our construction we get the NFSA without ɛ-moves given in the following figure b a b c d q a q b q c b d b 0 1 2 q 3 b Introduction to Formal Languages, Automata and Computability p.29/51

ɛ-closure of (q 0 ) = {q 0, q 1 } ɛ-closure of (q 1 ) = {q 1 } ɛ-closure of (q 2 ) = {q 2, q 3 } ɛ-closure of (q 3 ) = {q 3 } It is not difficult to see that the language accepted by the above NF SA = {a n b m c p d q /m 1, n, p, q 0}. Introduction to Formal Languages, Automata and Computability p.30/51

Regular Expressions Definition Let Σ be an alphabet. For each a in Σ, a is a regular expression representing the regular set {a}. φ is a regular expression representing the empty set. ɛ is a regular expression representing the set {ɛ}. If r 1 and r 2 are regular expressions representing the regular sets R 1 and R 2 respectively, then r 1 + r 2 is a regular expression representing R 1 R 2. r 1 r 2 is a regular expression representing R 1 R 2. r 1 is a regular expression representing R1. Any expression obtained from φ, ɛ, a(a Σ) using the above operations and parentheses where required is a regular expression. Example (ab) abcd represent the regular set {(ab) n cd/n 1} Introduction to Formal Languages, Automata and Computability p.31/51

Theorem If r is a regular expression representing a regular set, we can construct an NFSA with ɛ-moves to accept r. r is obtained from a, (a Σ), ɛ, φ by finite number of applications of +,. and (. is usually left out). For ɛ, φ, a we can construct NFSA with ɛ-moves are. q 0 {ε} is accepted q 0 q f φ is accepted q 0 a q f a is accepted Introduction to Formal Languages, Automata and Computability p.32/51

Let r 1 represent the regular set R 1 and R 1 is accepted by the NFSA M 1 with ɛ-transitions. M 1 q 01 q f1 Without loss of generality we can assume that each such NFSA with ɛ-moves has only one final state. R 2 is similarly accepted by an NFSA M 2 with ɛ-transition. M 2 q 02 q f2 Introduction to Formal Languages, Automata and Computability p.33/51

Now we can easily see that R 1 R 2 (represented by r 1 + r 2 ) is accepted by the NFSA given in next figure M 1 q 01 q f1 q 0 q f q 02 q f2 Introduction to Formal Languages, Automata and Computability p.34/51

For this NFSA q 0 is the start state and q f is the final state. R 1 R 2 represented by r 1 r 2 is accepted by the NFSA with ɛ-moves given as q 01 q f1 q 02 q f2 M 1 M 2 For this NFSA with ɛ-moves q 01 is the initial state and q f2 is the final state. R 1 = R 0 1 R 1 1 R 2 1 R k 1... R 0 = {ɛ} and R = R 1. Introduction to Formal Languages, Automata and Computability p.35/51

R 1 represented by r 1 is accepted by the NFSA with ɛ-moves given as q 0 q 01 q f1 q f For this NFSA with ɛ-moves q 0 is the initial state and q f is the final state. It can be seen that R1 contains strings of the form x 1, x 2,..., x k each x i R 1. To accept Introduction to Formal Languages, Automata and Computability p.36/51

this string, the control goes from q 0 to q 01 and then after reading x 1 and reaching q f1, it goes to q 01, by an ɛ-transition. From q 01, it again reads x 2 and goes to q f1. This can be repeated a number (k) of times and finally the control goes to q f from q f1 by an ɛ-transition. R 0 1 = {ɛ} is accepted by going to q f from q 0 by an ɛ-transition. Thus we have seen that given a regular expression one can construct an equivalent NFSA with ɛ-transitions. Regular expression NFSA with transitions NFSA without transitions DFSA Introduction to Formal Languages, Automata and Computability p.37/51

Example Consider a regular expression aa bb. a and b are accepted by NFSA with ɛ-moves given in the following figure q q 2 1 a q q 4 3 b Introduction to Formal Languages, Automata and Computability p.38/51

aa bb will be accepted by NFSA with ɛ-moves given in next figure. q q q q 11 21 31 41 a b q 1 a q q 2 5 q q q q 6 3 4 7 b But we have already seen that a simple NFSA can be drawn easily for this as in next figure. q 8 a b q q 0 1 2 a b q Introduction to Formal Languages, Automata and Computability p.39/51

Definition Let L Σ be a language and x be a string in Σ. Then the derivative of L with respect to x is defined as L x = {y Σ /xy L}. It is some times denoted as x L. Theorem If L is a regular set L x is regular for any x. Consider a DFSA accepting L. Let this FSA be M = (K, Σ, δ, q 0, F ). Start from q 0 and read x to go to state q x K. Then M = (K, Σ, δ, q x, F ) accepts L x. This can be seen easily as below. Introduction to Formal Languages, Automata and Computability p.40/51

δ(q 0, x) = q x, δ(q 0, xy) F xy L, δ(q 0, xy) = δ(q x, y), δ(q x, y) F y L x, M accepts L x. lemma Let Σ be an alphabet. The equation X = AX B where A, B Σ has a unique solution A B if ɛ / A. Introduction to Formal Languages, Automata and Computability p.41/51

Let X = AX B = A(AX B) B = A 2 X AB B = A 2 (AX B) AB B = A 3 X A 2 B AB B. = A n+1 X A n B A n 1 B AB B(7) Since ɛ / A, any string in A k will have minimum length k. To show X = A B. Introduction to Formal Languages, Automata and Computability p.42/51

Let w X and w = n. We have X = A n+1 X A n B AB B (8) Since any string in A n+1 X will have minimum length n + 1, w will belong to one of A k B, k n. Hence w A B. On the other hand let w A B. To prove w X. Since w = n, w A k B for some k n. Therefore from (8) w X. Hence we find that the unique solution for X = AX + B is X = A B. Note If ɛ A, the solution will not be unique. Any A C, where C B, will be a solution. Introduction to Formal Languages, Automata and Computability p.43/51

Next we give an algorithm to find the regular expression corresponding to a DFSA. Algorithm Let M = (K, Σ, δ, q 0, F ) be the DFSA. Σ = {a 1, a 2,..., a k }, K = {q 0, q 1,..., q n 1 }. Step 1 Write an equation for each state in K. q = a 1 q i1 + a 2 q i2 + + a k q ik if q is not a final state and δ(q, a j ) = q ij 1 j k. q = a 1 q i1 + a 2 q i2 + + a k q ik + λ if q is a final state and δ(q, a j ) = q ij 1 j k. Step 2 Take the n equations with n variables q i, 1 i n, and solve for q 0 using the above lemma and substitution. Introduction to Formal Languages, Automata and Computability p.44/51

Step 3 Solution for q 0 gives the desired regular expression. Let us execute this algorithm for the following DFSA given in the figure. q 0 a a q b 1 q 2 b b a D a,b Introduction to Formal Languages, Automata and Computability p.45/51

Step 1 q 0 = aq 1 + bd (9) q 1 = aq 1 + bq 2 (10) q 2 = ad + bq 2 + λ (11) Step 2 Solve for q 0. From (12) D = ad + bd (12) D = (a + b)d + φ Introduction to Formal Languages, Automata and Computability p.46/51

Using previouus lemma D = (a + b) φ = φ. (13) Using them we get q 0 = aq 1 (14) q 1 = aq 1 + bq 2 (15) q 2 = bq 2 + λ (16) Note that we have got rid of one equation and one variable. Introduction to Formal Languages, Automata and Computability p.47/51

In 16 using the lemma we get Now using 17 and 15 q 2 = b (17) q 1 = aq 1 + bb (18) We now have 14 and 18. Again we eliminated one equation and one variable. Using the above lemma in (18) q 1 = a bb (19) Introduction to Formal Languages, Automata and Computability p.48/51

Using 19 in 14 q 0 = aa bb (20) This is the regular expression corresponding to the given FSA. Next, we see, how we are justified in writing the equations. Let q be the state of the DFSA for which we are writing the equation, q = a 1 q i1 + a 2 q i2 + + a k q ik + Y. (21) Y = λ or φ. Introduction to Formal Languages, Automata and Computability p.49/51

Let L be the regular set accepted by the given DFSA. Let x be a string such that starting from q 0, after reading x, state q is reached. Therefore q represents L x, the derivative of L with respect to x. From q after reading a j, the state q ij is reached. L x = q = a 1 L xa1 + a 2 L xa2 + + a k L xak + Y. (22) a j L xaj represents the set of strings in L x beginning with a j. Hence equation (22) represents the partition of L x into strings beginning with a 1, beginning with a 2 and so on. If L x contains ɛ, then Y = ɛ otherwise Y = φ. Introduction to Formal Languages, Automata and Computability p.50/51

It should be noted that when L x contains ɛ, q is a final state and so x L. It should also be noted that considering each state as a variable q j, we have n equation in n variables. Using the above lemma, and substitution, each time one equation is removed while one variable is eliminated. The solution for q 0 is L ɛ = L. This gives the required regular expression. Introduction to Formal Languages, Automata and Computability p.51/51