JFLAP - Nondeterministic Finite State Automata

Steven Zeil

Last modified: Sep 21, 2016
Contents:

Abstract

Practice designing and working with NFAs.

  1. Review the Finite Automata section of the Tutorial, specifically the sections titled “Construct and Run”, “Manipulating Transitions”, and "“Add a Trap State to DFA”. Also read “Convert to DFA”.

  2. Look back at the example I gave of an NFA for the union of two languages.

    Here is the NFA for the union.

    Note: JFLAP marks instantaneous transitions with a $\lambda$ instead of the $\epsilon$ used in your textbook. Both conventions are quite common.

    Run this NFA on the following inputs, “Step” by step, observing how transitions take us to multiple states at once. Take note of which inputs are accepted.

  3. Use JFlap to convert this to a DFA. Compare the results and the steps with what we went through in the lecture notes.

  4. Run the same inputs as the previous step through this new DFA. Convince yourself that it does accept the inputs that the NFA did.

  5. Exercise 2.3.4 at the end of section 2.3 2 of your text suggests drawing a number of NFAs. Pick one or two of these and create them in JFLAP. Run a handful of inputs through each one to convince yourself that you have done so correctly.