Finite Automata & Regular Languages

Download Report

Transcript Finite Automata & Regular Languages

Nondeterministic Finite Automata

Hopcroft, Motawi, Ullman, Chap 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 is w acceptable as long as there exists an admissible state sequence for w

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 of Q    power set of Q, is the state transition function mapping a state-symbol pair to a subset   q 0 F  is the start state of M of M Q is the set of accepting states or final states

Example NFA

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

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)

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’

Example conversion

 NFA 0,1 0 1 q 0 q 1  DFA 1 {q 0 } 0 0 {q 0 ,q 1 } 1 0 1 q 2 {q 0 ,q 2 }

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 

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 

(

+

 a subset of Q

)

 power set of Q, is the state transition function mapping a state-symbol pair to q 0 F  is the start state of M of M Q is the set of accepting states or final states

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

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

Closure of Regular Languages under certain operations     Union Complementation Intersection Concatenation L1  L1 L1  L1L2 L2 L2  Goal: ensure a FA can be produced from the FAs of the “operand” languages

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

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