Fig 1.
Original DFA state transition digraph for regular expressions (ab.*cd, ef.*gh).
The numerical circle represents states in DFA, and the state with double circles represents it is an accepted state. The direct edges with a symbol represents transitions in DFA, and the dashed direct edges represents transitions transfer to a common state with symbols that have not been shown.
Table 1.
State transition table for regular expressions (ab.*cd, ef.*gh).
Fig 2.
Example of obtaining a refined partition from coarse partitions.
U,V and W represent different partitions for the set E. The bar with different colors represents a subset obtained by the corresponding partition, and the W partition is generated by the intersection of U and V.
Fig 3.
Algorithm for building backward depth information.
Fig 4.
Backward depth information for accepted state “19” in Table 1.
The number above the dashed line represents the backward depth, and the states in the same dashed box are in one block. The symbol near the transition is the character consumed in building the shortest path from the state transition graph, and is one part of the backward depth information.
Table 2.
Backward depth information for automata with the regular expressions (ab.*cd, ef.*gh).
Fig 5.
Coarse partition algorithm based on backward depth information.
Fig 6.
Refinement algorithm based on hash table.
Table 3.
Hash table refinement based on the coarse partition of accepted state 19.
Fig 7.
Minimal DFA using the algorithm based on backward depth information for regular expressions (ab.*cd, ef.*gh).
The states 4, 9, 12 and 14 are disappeared for the reason that these have been merged into different states, respectively. The minimal DFA is equivalent with original DFA functionally, and is isomorphic with the final block within Table 3.
Fig 8.
Experimental results for automata with different topological complexities.
The horizontal axis represents the number of states in the original DFAs, and the vertical axis indicates the time consumed in microseconds.(a) DFA with an underlying graph consisting of a dictionary, (b) DFA with an underlying graph consisting of a tree, (c) DFA with 1% wildcards and dot-star terms, and (d) DFA with 3% wildcards and dot-star terms.