Presentation is loading. Please wait.

Presentation is loading. Please wait.

Nondeterministic Finite Automata CS 130: Theory of Computation HMU textbook, Chapter 2 (Sec 2.3 & 2.5)

Similar presentations


Presentation on theme: "Nondeterministic Finite Automata CS 130: Theory of Computation HMU textbook, Chapter 2 (Sec 2.3 & 2.5)"— Presentation transcript:

1 Nondeterministic Finite Automata CS 130: Theory of Computation HMU textbook, Chapter 2 (Sec 2.3 & 2.5)

2 NFAs: Nondeterministic Finite Automata Same as a DFA, except: On input a, state q may have more than one transition out, implying the possibility of multiple choices when processing an input symbol On input a, state q may have no transition out, implying the possibility of “being stuck” A string w is acceptable as long as there exists an admissible state sequence for w

3 NFAs A nondeterministic finite automaton M is a five-tuple M = (Q, , , q 0, F), where: Q is a finite set of states of M  is the finite input alphabet of M  : Q    power set of Q, is the state transition function mapping a state-symbol pair to a subset of Q q 0 is the start state of M F  Q is the set of accepting states or final states of M

4 Example NFA NFA that recognizes the language of strings that end in 01 q0q0 q2q2 0,1 0 1 q1q1 note:  (q 0,0) = {q 0,q 1 }  (q 1,0) = {} Exercise: draw the complete transition table for this NFA

5  ^ definition for an NFA  ^: Q X  *  power set of Q  ^(q,  ) = {q}  ^(q, w), w = xa (where x is a string and a is a symbol) is defined as follows: Let  ^(q, x) = {p 1,p 2,…p k } Then,  ^(q, w) =   (p i, a)

6 Language recognized by an NFA A string w is accepted by an NFA M if  ^(q 0, w)  F is non-empty Note that  ^(q 0, w) represents a subset of states since the automaton is nondeterministic Equivalent definition: there exists an admissible state sequence for w in M The language L(M) recognized by an NFA is the set of strings accepted by M L(M) ={ w |  ^(q 0, w)  F is non-empty }

7 Converting NFAs to DFAs Given a NFA, M = (Q, , , q 0, F), build a DFA, M’ = (Q’, ,  ’, {q 0 }, F’) as follows. Q’ contains all subsets S of states in Q. The initial state of M’ is the set containing q 0 F’ is the set of all subsets of Q that contain at least one element in F (equivalently, the subset contains at least one final state)

8 Converting NFAs to DFAs  ’ is determined by putting together, for each state in the subset and each symbol, all states that may result from a transition:  ’(S, a) =   (q, a) q  S May remove “unreachable” states in Q’

9 Example conversion NFA DFA q0q0 q2q2 0,1 0 1 q1q1 {q 0 } 1 0 1 {q 0,q 1 } {q 0,q 2 } 0 0 1

10 NFA with  -transitions NFA that allows the transition of an empty string from a state Jumping to a state is possible even without input Revision on NFA definition simply allows the  “symbol” for 

11 NFA with  -transitions A nondeterministic finite automaton with  - transitions (or  -NFA) is a five-tuple M = (Q, , , q 0, F), where: Q is a finite set of states of M  is the finite input alphabet of M  : Q  (  +  )  power set of Q, is the state transition function mapping a state-symbol pair to a subset of Q q 0 is the start state of M F  Q is the set of accepting states or final states of M

12 Converting  -NFAs to NFAs Task: Given an  -NFA M = (Q, , , q 0, F), build a NFA M’ = (Q, ,  ’, q 0, F’) Need to eliminate  -transitions Need epsilon closure concept Add transitions to enable transitions previously allowed by the  -transitions Note: the conversion process in the textbook instead builds a DFA from an  -NFA The conversion described in these slides is simpler

13 Epsilon closure In an NFA M, let q  Q ECLOSE(q) represents all states r that can be reached from q using only  -transitions Recursive definition for ECLOSE If  (q,  ) is empty, ECLOSE(q) = {q} Else, Let  (q,  ) = {r 1, r 2,…, r n }. ECLOSE(q) =  ECLOSE(r i )  {q} Note: check out constructive definition in the textbook

14 Additional transitions Suppose ECLOSE(q) = {r 1, r 2,…, r n }. For each transition from state r i to state s j on (non-epsilon) symbol a, add a transition from q to s j on symbol a That is,  ’(q, s) =  (q, s)  states resulting from the additional transitions Initially set F’ = F. If  (q,  ) includes a state in F’, add q to F’

15 Equivalence of Finite Automata Conversion processes between DFAs, NFAs, and  -NFAs show that no additional expressive capacity (except convenience) is introduced by non- determinism or  -transitions All models represent regular languages Note: possible exponential explosion of states when converting from NFA to DFA

16 Closure of Regular Languages under certain operations UnionL1  L2 ComplementationL1 IntersectionL1  L2 ConcatenationL1L2 Goal: ensure a FA can be produced from the FAs of the “operand” languages

17 Finite Automata with Output Moore Machines Output symbol for each state encountered Mealy Machines Output symbol for each transition encountered Exercise: formally define Moore and Mealy machines

18 Next: Regular Expressions Defines languages in terms of symbols and operations Example (01)* + (10)* defines all even-length strings of alternating 0s and 1s Regular expressions also model regular languages and we will demonstrate equivalence with finite automata


Download ppt "Nondeterministic Finite Automata CS 130: Theory of Computation HMU textbook, Chapter 2 (Sec 2.3 & 2.5)"

Similar presentations


Ads by Google