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