stateDiagram [*] --> q0 q0 --> q1 : 0 q0 --> q0 : 0 q1 --> q2 : 1 q2 --> q0 : 1, eps q2 --> [*]
Conversion to DFSA with Subset Construction
- Write out all the possible sets of states
stateDiagram-v2 emptyset q0 q1 q2 q1,q2 q0,q2 q0,q1 q0,q1,q2
Then, denote the starting state
stateDiagram-v2 emptyset M --> q0 q1 q2 q1,q2 q0,q2 q0,q1 q0,q1,q2
- Then, for , point to the set of all transitionable states and all Dead State
stateDiagram-v2 emptyset M --> q0 q0 --> q0,q1 : 0 q0 --> emptyset : 1 q1 q2 q1,q2 q0,q2 q0,q1,q2
- Define the transitions for the dead state
stateDiagram-v2 emptyset --> emptyset : 0,1 M --> q0 q0 --> q0,q1 : 0 q0 --> emptyset : 1 q1 q2 q1,q2 q0,q2 q0,q1,q2
- Continue for subsequent states
stateDiagram-v2 emptyset --> emptyset : 0,1 M --> q0 q0 --> q0,q1 : 0 q0 --> emptyset : 1 q0,q1 --> q0,q1 : 0 q0,q1 --> q0,q2 : 1 q0,q2 --> q0,q1 : 0 q0,q2 --> q0 : 1 q1 q2 q1,q2 q0,q2 q0,q1,q2
Now, we can draw DFSA like:
stateDiagram [*] --> A A --> B : 0 B --> B : 0 B --> C : 1 C --> B : 0 C --> A : 1 C --> [*]