1 / 36

DFA Minimization Algorithm for Formal Languages

Learn about the DFA minimization algorithm for constructing a smallest possible DFA to accept a given language in formal languages and automata theory.

richardwood
Download Presentation

DFA Minimization Algorithm for Formal Languages

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Fall 2008 The Chinese University of Hong Kong CSC 3130: Automata theory and formal languages DFA minimization algorithm Andrej Bogdanov http://www.cse.cuhk.edu.hk/~andrejb/csc3130

  2. Example • Construct a DFA over alphabet {0, 1} that accepts those strings that end in 111 • This is big, isn’t there a smaller DFA for this? 0 0 q000 1 0 q00 1 q001 q0 1 … 0 q01 … qe 1 q101 q10 0 … 1 q1 … 1 q11 1 q111 1

  3. 0 1 1 1 1 q0 q1 q2 q3 0 0 0 Smaller DFA • Yes, we can do it with 4 states: • The state remembers the number of consecutive 1s at the end of the string (up to 3) • Can we do it with 3 states?

  4. Even smaller DFA? • Suppose we had a 3 state DFA M for L • We do not know what this M looks like… but let’s imagine what happens when: • By the pigeonhole principle, on two of these inputs M ends in the same state M inputs: e, 1, 11, 111

  5. Pigeonhole principle • Here, balls are inputs, bins are states: Suppose you are tossing m balls into n bins, and m > n. Then two balls end up in the same bin. If you have a DFA with n states and you run it on m inputs, and m > n, then two inputs end up in same state.

  6. A smaller DFA? • What goes wrong if… • M ends up in same state on input 1 and input 111? • M ends up in same state on input e and input 11? M inputs: e, 1, 11, 111

  7. A smaller DFA • Suppose M ends up in the same state after reading inputs x = 1i and y = 1j, where 0 ≤ i < j ≤ 3 • Then after reading the continuationz = 13 – j • The state of yz should be accepting (yz = 111) • The state of xz should be rejecting (xz = e, 1, or 11) … but they are both in the same state! M inputs: 1i, 1j e, 1, 11, 111

  8. 0 1 1 1 1 q0 q1 q2 q3 0 0 0 No smaller DFA! • Conclusion • So, this DFA is minimal • In fact, it is the unique minimal DFA for L There is no DFA with 3 states for L

  9. DFA minimization • There is an algorithm to start with any DFA and reduce it to the smallest possible DFA • The algorithm attempts to identify classes of equivalent states • These are states that can be merged together without affecting the answer of the computation

  10. Examples of equivalent states 0 q2 0 q2 q0 q0 0, 1 0 0, 1 1 1 q1 1 0, 1 q3 q1 q3 0, 1 0, 1 q0, q1 equivalent q0, q1 equivalent q2, q3 also equivalent

  11. Equivalent and distinguishable states • Two states q, q’ are equivalent if • Here, d(q, w) is the state that the machine is in if it starts at q and reads the string w • q, q’ are distinguishable if they are not equivalent: ^ ^ For every string w, the states d(q, w) and d(q’, w) are either both accepting or both rejecting ^ For some string w, one of the states d(q, w),d(q’, w) is accepting and the other is rejecting

  12. q2 q2 0 0 q0 0 0, 1 0, 1 q01 1 1 q1 1 q3 q3 0, 1 0, 1 Examples of distinguishable states q3 distinguishable from q0, q1, q2 q3 is accepting, others are rejecting (q0, q2) and (q1, q2) distinguishablethey behave differently on input 0 q0, q1 equivalent

  13. DFA minimization algorithm • Find all pairs of distinguishable states as follows:  For any pair of states q, q’: If q is accepting and q’ is rejectingMark(q, q’) as distinguishable Repeat until nothing is marked: For any pair of states (q, q’): For every alphabet symbol a: If (d(q, a), d(q’, a)) are marked as distinguishableMark(q, q’) as distinguishable For any pair of states (q, q’): If (q, q’) is not marked as distinguishableMergeq and q’ into a single state  

  14. Example of DFA minimization 0 q0 0 q00 q1 q0 1 0 1 q00 q01 0 qe 1 0 q01 q10 0 1 1 q10 q1 0 1 q11 q11 qe q0 q1 q00 q01 q10 1

  15. Example of DFA minimization 0 q0 0 q00 q1 q0 1 0 1 q00 q01 0 qe 1 0 q01 q10 0 1 1 q10 q1 0 1 q11 q11 x x x x x x qe q0 q1 q00 q01 q10 1  q11 is distinguishable from all other states

  16. Example of DFA minimization 0 q0 0 q00 q1 x x q0 1 0 1 q00 x q01 0 qe 1 0 q01 q10 0 1 1 x q10 q1 0 1 q11 q11 x x x x x x qe q0 q1 q00 q01 q10 1  q1 is distinguishable from qe, q0, q00, q10 On transition 1, they go to distinguishable states

  17. Example of DFA minimization 0 q0 0 q00 q1 x x q0 1 0 1 q00 x q01 0 qe 1 0 x x x q01 q10 0 1 1 x x q10 q1 0 1 q11 q11 x x x x x x qe q0 q1 q00 q01 q10 1  q01 is distinguishable from qe, q0, q00, q10 On transition 1, they go to distinguishable states

  18. Example of DFA minimization 0 q0 A 0 q00 q1 x x A q0 1 0 1 q00 A A x q01 0 qe 1 0 x x B x q01 q10 0 1 1 A A x A x q10 q1 0 1 B q11 q11 x x x x x x C qe q0 q1 q00 q01 q10 1  Merge states not marked distinguishableqe, q0, q00, q10 are equivalent → group Aq1, q01 are equivalent → group B q11 cannot be merged → group C

  19. Example of DFA minimization 0 q0 A 0 q00 q1 x x q0 1 A 0 1 q00 A A x q01 0 qe 1 0 x x B x q01 q10 0 1 1 A A x A x q10 q1 0 1 B q11 q11 x x x x x x C qe q0 q1 q00 q01 q10 1 0 1 1 minimized DFA: qA qB qC 1 0 0

  20. Why does DFA minimization work? • We need to convince ourselves of three properties: • Consistency • The new DFA M’ is well-defined • Correctness • The new DFA M’ is equivalent to the original DFA • Minimality • The new DFA M’ is the smallestDFA possible for L M M’   

  21. Main claim • Proof outline: • First, we assume q, q’ are marked distinguishable, and show they must be distinguishable • Then, we assume q, q’ are not marked distinguishable, and show they must be equivalent Any two states q and q’ in M are distinguishable if and only if the algorithm marks them as distinguishable

  22. Proof of part 1 • First, suppose q, q’ are marked as distinguishable • Could it be that they are equivalent? • No, because recall how the algorithm works: w1 w2 wk-1 wk … q x x x x w1 w2 wk-1 wk … q’

  23. Proof idea for part 2 • Now suppose q, q’ are not marked as distinguishable • Could it be that they are distinguishable? Suppose so • Then for some string w, d(q, w) accepts, but d(q’, w) rejects • Working backwards, the algorithm will mark q and q’ as distinguishable at some point ^ ^

  24. Proof of part 2 w1 w1 wk-1 wk … q w1 w1 wk-1 wk … q’  For any pair of states q, q’: If q is accepting and q’ is rejectingMark(q, q’) as distinguishable

  25. Proof of part 2 w1 w2 wk-1 wk … q x x x x w1 w2 wk-1 wk … q’  Repeat until nothing is marked: For any pair of states (q, q’): For every alphabet symbol a: If (d(q, a), d(q’, a)) are marked as distinguishableMark(q, q’) as distinguishable

  26. Why does DFA minimization work? • We need to convince ourselves of three properties: • Consistency • The new DFA M’ is well-defined • Correctness • The new DFA M’ is equivalent to the original DFA • Minimality • The new DFA M’ is the smallestDFA possible for L M M’   

  27. Consistency of transitions • Why are the transitions between the merged states consistent? 0 0 q00 q0 1 A 0 1 q01 0 qe 1 0 q10 0 1 1 q1 0 1 B q11 C 1

  28. Proof of consistency B • Suppose there were two inconsistent transitions in M’ labeled a out of merged stateqA q5 a A q2 q3 q1 q7 a C q6

  29. Proof of consistency B • States q5 and q6 must be distinguishable because they were not merged together q5 a A q2 q3 q1 q7 a q6

  30. Proof of consistency B • Then, q3 and q7 must also be distinguishable, and this is impossible w q5 a A q2 q3 q1 q7 a C w q6

  31. Consistency of states • Why are the merged states either all accepting or all rejecting? 0 0 q00 q0 1 A 0 1 q01 0 qe 1 0 q10 0 1 1 q1 0 1 B q11 C 1

  32. Consistency of states • Because merged states are not distinguishable, so they are mutually equivalent 0 0 q00 q0 1 A 0 1 q01 0 qe 1 0 q10 0 1 1 q1 0 1 B q11 C 1

  33. Correctness • Each state of M’ corresponds to a class of mutually equivalent states in M 0 0 q00 q0 1 A 0 1 q01 0 qe 1 0 q10 0 1 1 q1 0 1 B q11 C 1

  34. Proof of correctness • Claim: After reading input w, • Proof: True in start state, and stays true after, because transitions are consistent • At the end, M accepts w in state qi if and only if M’ on input w lands in the state qA that represents qi • qA must be accepting by consistency of states M’ is in state qAif and only ifM is in one of the states represented by A

  35. Proof of minimality • Now suppose there is some smallerM’’ for L • By the pigeonhole principle, there is a state q’’ of M’’ such that All pairs of states in M’ are distinguishable M’ M’’ v q q’’ v, v’ v’ q’

  36. Proof of minimality • Since q and q’ are distinguishable, for some w… • But in M’’, d(q’’, w) cannot both accept and reject! • So, M’’cannot be smaller than M’ All pairs of states in M’ are distinguishable M’ M’’ v w q q’’ w ? v, v’ v’ q’ w

More Related