Intermediate Topic 20 of 51 Theory & Discrete Math
Nondeterministic Finite Automata
Machines allowing multiple or empty transitions.
How it works
A nondeterministic finite automaton may have several transitions for the same state and symbol, or none, and may include epsilon transitions that consume no input. It accepts a string if at least one possible path leads to an accepting state. NFAs recognize exactly the regular languages, like DFAs, but are often smaller and easier to design. The subset construction converts an NFA into an equivalent DFA, potentially with exponentially more states.
Step-by-step walkthrough
- An NFA may have several moves for one symbol.
- It can also move on an empty input, called epsilon.
- It accepts if any path leads to an accept state.
- Think of it as exploring all paths at once.
- NFAs and DFAs recognize the same languages, the subset construction converts one to the other.
Where it is used
Regular expressions compile naturally to NFAs by Thompson's construction, and NFAs are used in pattern matching, model checking and compiler design.
Common pitfall
Nondeterminism is not randomness or parallel hardware; it is a mathematical model of accepting if any choice works. Simulating naively with backtracking can take exponential time, whereas tracking the set of current states runs in linear time. Forgetting epsilon-closures when simulating gives wrong results. Be careful when complementing, which requires determinizing first.
Where it fits in the course
Nondeterministic Finite Automata is topic 20 of 51 in Theory & Discrete Math, rated Intermediate. It follows Deterministic Finite Automata. The next topic is Regular Languages.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Theory & Discrete Math quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Theory & Discrete Math quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Nondeterministic Finite Automata?
Where do people use Nondeterministic Finite Automata?
What is the most common mistake with Nondeterministic Finite Automata?
What should I learn before this topic?
How can I practice it?
Is Nondeterministic Finite Automata hard to learn?
How long does it take to learn Nondeterministic Finite Automata?
Which topics are related to Nondeterministic Finite Automata?
What should I study after Nondeterministic Finite Automata?
Related topics
- Deterministic Finite Automata (Theory & Discrete Math)
- Regular Languages (Theory & Discrete Math)
- Finite Automata (Theory & Discrete Math)
- Regular Expressions in Theory (Theory & Discrete Math)
- Finite State Machines in Hardware (Computer Architecture & Logic)
- Cellular Automata (Emerging & Frontier Topics)