Convert an NFA to a DFA (Subset Construction) and Describe the Accepted Language
We will determinize the given -free NFA using Powerset/Subset Construction. After building the DFA transition table, we will Accepting State (DFA) characterization to informally describe the language.
We are given NFA states with start state and accept state . Transitions (from the table):
- From : on input , go to ; on input , go to .
- From : on input , go to ; on input , go to .
- From : on input , go to ; on input , go to .
- From : on both and , go to .
- From : on both and , go to .
Key terms we will use:
- DFA
- NFA
- Transition Function
- Language
- Accepting State
A compact way to keep track is the DFA transition rule: If the current DFA state is a set of NFA states, then on symbol the next DFA state is
This is the core of Subset Construction.
NFA to DFA (Subset Construction) - Powerset Method
Step-by-step determinization (NFA to DFA)
- 1Step 1
The DFA start state is the set containing the NFA start state: .
- 2Step 2
Use . For example, from , we get . Continue for every new subset you find.
- 3Step 3
Use . For example, from , we get . Continue until no new subsets appear.
- 4Step 4
When a transition yields , include as a DFA state. It is a dead state because any move from stays .
- 5Step 5
Because is the only accepting NFA state, any DFA subset that contains is accepting.
1) Enumerate DFA states (subsets) reachable from the start
Start subset: .
Now compute systematically.
From
- On : , so .
- On : , so .
So we discover .
From
- On :
- from on gives
- from on gives
- union: Hence .
- On :
- from on gives
- from on gives
- union: Hence .
So we discover and .
From
- On : and , union .
- On : and , union .
So and .
From
- On :
- union: Hence it loops: .
- On :
- union: Hence .
So far, we have subsets:
, , , .
Transitions that produce
We still should include if any transition ever yields it. Note:
- From any subset we computed, the union always included at least one non-empty target set, so is not reachable from the start under these transitions.
- Still, for completeness, we can define it as a dead DFA state in the construction.
Accepting DFA states
Since is accepting in the NFA, any DFA subset containing is accepting. Only contains . So the DFA accepting state set is: .
2) Final DFA transition table
Let the DFA states be:
- (optional) (dead)
| DFA state | on 0 | on 1 | Accepting? |
|---|---|---|---|
| No | |||
| No | |||
| Yes | |||
| No | |||
| No |
This DFA is equivalent to the given NFA with respect to the accepted Language.
How to spot accepting DFA states quickly
Because the NFA accepts exactly when it is in state , in the DFA you just check whether the current subset contains . Here that happens only for the subset .
Avoid a common mistake with unioning transitions
When determinizing, you must union transitions from all NFA states in the subset. Do not pick just one state (e.g., do not track only once you have —you must also account for ’s transitions).
3) Informal description of the accepted language
Recall: the NFA accepts a string iff at the end there is at least one computation path that places the automaton in state .
From the transition structure:
- The only way to reach is from on input : .
- Therefore, acceptance requires that at some point (sometime before the end), the NFA simulation can be in state , and the next symbol must be (so that one branch moves into ).
- Once is reached, it must survive until the end of the input. But from , on both and , the NFA transitions go to . That means if you ever consume any further input after first entering , that computation branch dies.
- Hence, for the string to be accepted, you must enter exactly at the final symbol consumption (i.e., the last symbol must be a that is taken on a transition out of ).
Now observe how appears:
- introduces when the machine reads a while a -branch exists.
- In this NFA, there is always a -branch available at many times (e.g., loops on input , and also remains available via transitions from and ).
A simple informal characterization consistent with the DFA:
- The DFA reaches the accepting subset only after reading a prefix that ends with a while the machine still has an active -branch.
- From the accepting subset, reading another symbol drops you back to non-accepting subsets because cannot persist (it goes to after consuming any further input).
Informal language statement:
The language consists of those binary strings whose last symbol is a , such that just before that last there is a reachable configuration containing state (equivalently, the subset construction reaches exactly after consuming the final symbol).
In terms of the DFA we built:
- You accept exactly when the DFA ends in .
- Since transitions on stay in , and on move to , acceptance depends on whether the input ends in a position where is created by a - move and no further symbols are read.
Determinization workflow for this specific NFA
Initial DFA state
StartUse ."
Apply union-of-NFA-moves
Read next symbolCompute targets on and from the current subset."
Repeat until closed
Discover new subsetsKeep adding any newly reached subsets to the DFA state set."
Use subset membership
Mark acceptingAccept if subset contains → here only ."
Quick checks for NFA→DFA (subset construction)
Knowledge Check
In the subset construction, the DFA transition from subset on input symbol is computed as:
Explore Related Topics
Constructing an LALR(1) Parsing Table for a Given Grammar (and Proving It Is Not SLR(1))
Minimization of Automata
Which Automaton Accepts Regular Languages? The Correct Answer Is DFA
The deterministic finite automaton (DFA) is the canonical model that exactly accepts regular languages, whereas PDA, LBA, and Turing machines recognize strictly larger language families.
- A language is regular iff some DFA accepts it: .
- DFA ↔ regular languages; PDA ↔ context‑free; LBA ↔ context‑sensitive; Turing machine ↔ recursively enumerable.
- Regular languages form the base of the hierarchy: .
- DFA’s finite memory limits it to patterns like “ends with 01” or “even number of 1’s”, but it cannot handle unbounded counting such as .