← Learn
Converter · step by step

ε-NFA to NFA: removing ε-transitions

ε-moves make an NFA easy to design and harder to trace. This construction keeps the same states and removes every ε-move, by asking one question per state: where could I be without reading anything?

Watch it — a*b*c*

Three loops joined by ε-moves. Each step lights up the ε-closure of one state and lists the transitions that replace the ε-moves.

Remove ε1/5
The ε-NFA
aaεεbbεεccq0q1q2
NFA without ε · being built
aaaba,babca,b,cq0q1q2
ε-closure of q0
Without reading anything q0 can be in {q0, q1, q2}. New transitions: a → {q0, q1, q2}, b → {q1, q2}, c → {q2}.
How it works
1

Compute the ε-closure of every state

The ε-closure of p is p itself plus everything reachable from it through ε-moves alone.

2

Rebuild the transitions through the closures

From p, reading a, go to every state the original machine could reach: ε-moves first, then a, then ε-moves again.

3

Fix the accepting states

p becomes accepting if its ε-closure contains an accepting state — it could have slipped there without reading anything.

4

Delete the ε-moves and anything left unreachable

A state that could only be entered through an ε-move is no longer reachable and is dropped.

Questions

Is the result a DFA?

No. It has no ε-moves, but a state can still have several transitions on the same symbol. Convert to a DFA afterwards if you need determinism.

Do I need this before converting to a DFA?

Not in AutomataVerse — the NFA to DFA converter handles ε-moves directly. It is mostly useful for understanding, and for courses that teach the two steps separately.

Does the number of states change?

It never grows. It shrinks when a state was only reachable through ε-moves.

More step-by-step tools