170 likes | 182 Views
This text discusses the equivalence of regular expressions (RE) and deterministic finite automata (DFA). It explores the process of converting DFAs into Generalized Non-deterministic Finite Automata (GNFA) using epsilon transitions and then converting GNFAs into regular expressions.
E N D
CSCI 2670Introduction to Theory of Computing September 12, 2007
Agenda • Last class • Further exploration of equivalence of DFA’s and NFA’s • Closure of regular languages under regular operators • Regular expressions • Today • Equivalence of RE’s and regular languages • Tomorrow • Another method for describing regular languages
Abuse of notation. These should be sets! RE inductive definition R is a regular expression if R is • a for some a • ε • • R1R2 where R1 and R2 are both regular expressions • R1R2 where R1 and R2 are both regular expressions • (R1*) where R1 is a regular expression
RE’s and regular languages Theorem: A language is regular if and only if some regular expression describes it. • i.e., every regular expression has a corresponding DFA and vice versa
RE’s and regular languages Lemma: If a language is described by a regular expression, then it is regular. • find an NFA corresponding to any regular expression • use inductive definition of RE’s • Proved yesterday
Equivalence of RE’s and DFA’s • We have seen that every RE has a corresponding NFA • Therefore, every RE has a corresponding DFA • I.e, every RE describes a regular language • We need to show that every regular language can be described by a RE • Begin by converting all DFA’s into GNFA’s • Generalized Non-deterministic Finite Automata
GNFA’s • A GNFA is an NFA with the following properties: • The start state has transition arrows going to every other state, but no arrows coming in from any other state • There is exactly one accept state and there is an arrow from every other state to this state, but no arrows to any other state from the accept state • The start state is not the accept state
GNFA’s (continued) • Except for the start and accept states, one arrow goes from every state to every other state and also from each state to itself • Instead of being labeled with symbols from the alphabet, transitions are labeled with regular expressions
01 0 1 0 10 Example GNFA
Equivalence of DFA’s and RE’s • First show every DFA can be converted into a GNFA that accepts the same language • Then show that any GNFA has a corresponding RE that accepts the same language
Converting a DFA into a GNFA • Add two new states • New start state with an ε jump to the original DFA’s start state • New accept state with an ε jump from each of the original DFA’s accept states • This new state will be the only accept state • All transition labels with multiple labels are relabeled with the union of the previous labels • All pairs of states without transitions get a transition labeled
0 q2 1 qs qt q1 1 ε ε 0 q3 q4 0,1 0,1 Converting a DFA to a GNFA Add two new states
qs qt ε ε Converting a DFA to a GNFA • All transition labels with multiple labels are relabeled with the union of the previous labels 0 q2 1 q1 1 0 q3 q4 0,1 01 0,1 01
qs qt ε ε Converting a DFA to a GNFA • All pairs of states without transitions get a transition labeled 0 q2 1 q1 1 0 q3 q4 01 01
qs qt ε ε Converting a DFA to a GNFA • The resulting state diagram is a GNFA • All GNFA properties are satisfied 0 q2 1 q1 1 0 q3 q4 01 01
qs qt ε ε Converting a DFA to a GNFA • No step changed the strings accepted by the machine 0 q2 1 q1 1 0 q3 q4 01 01
Converting a GNFA to a RE • If the GNFA has two states, then the label connecting the states is the RE • Otherwise, remove one state at a time without changing the language accepted by the machine until the GNFA has two states