Line 3: | Line 3: | ||
* <nowiki>((ε|a)b)*</nowiki> | * <nowiki>((ε|a)b)*</nowiki> | ||
− | + | == NFA == | |
− | |||
− | |||
The following is the result of applying Thompson's algorithm. | The following is the result of applying Thompson's algorithm. | ||
Line 29: | Line 27: | ||
</graph> | </graph> | ||
− | + | == DFA == | |
Determination table for the above NFA: | Determination table for the above NFA: |
Use Thompson's algorithm to build the NFA for the following regular expression. Build the corresponding DFA and minimize it.
The following is the result of applying Thompson's algorithm.
Determination table for the above NFA:
In | α∈Σ | move(In, α) | ε-closure(move(In, α)) | In+1 = ε-closure(move(In, α)) |
---|---|---|---|---|
- | - | 0 | 0, 1, 2, 3, 4, 6, 8 | 0 |
0 | a | 5 | 5, 6 | 1 |
0 | b | 7 | 1, 2, 3, 4, 6, 7, 8 | 2 |
1 | a | - | - | - |
1 | b | 7 | 1, 2, 3, 4, 6, 7, 8 | 2 |
2 | a | 5 | 5, 6 | 1 |
2 | b | 7 | 1, 2, 3, 4, 6, 7, 8 | 2 |
Graphically, the DFA is represented as follows:
Given the minimization tree to the right, the final minimal DFA is:
|
The minimization tree is as follows. As can be seen, the states are indistinguishable.
|
---|