COMS W3261
Computer Science Theory
Lecture 4: September 17, 2012
Equivalence of Regular Expressions and Finite Automata

Overview

1. Review

2. ε-NFA: NFA with Epsilon-Transitions

3. Epsilon-Closures

4. McNaughton-Yamada-Thompson Algorithm: Converts an RE to an equivalent ε-NFA

5. Converting an ε-NFA to an equivalent DFA

6. Kleene's Algorithm: Converting a DFA to an Equivalent Regular Expression

7. Converting a DFA to an equivalent RE by Eliminating States

8. Practice Problems

  1. Use the MYT algorithm to construct an equivalent ε-NFA for the regular expression a+b*a.
  2. Show the behavior of your ε-NFA on the input string bba.
  3. Use the subset construction to convert your ε-NFA into a DFA.
  4. Show the behavior of your DFA on the input string bba.
  5. Consider the DFA D with:
    1. Q = {1, 2, 3}
    2. Σ = {a, b}
    3. δ:

    4.  State  Input Symbol
       a   b 
      1 2 1
      2 3 1
      3 3 2

    5. Start state: 1
    6. F = {3}

    a) Use Kleene's algorithm to construct a regular expression for L(D). Simplify your expressions as much as possible at each stage.
    b) Construct a regular expression for L(D) by eliminating state 2.

9. Reading Assignment



aho@cs.columbia.edu