SlideServe
Menu
Préférences
© SlideServe · v2026

DFA Minimization

niesha avatar
20 diapositives · 592 Views · Aug 16, 2014

DFA Minimization. Note these slides are not mine. http://faculty.kutztown.edu/spiegel “Minimal”? Minimal number of states. “Unique”? A minimal DFA for a given language is unique up to renaming of states. Build equivalence relation on states:

DFA Minimization - slide 1
01 / 20DFA Minimization
1 / 17

Télécharger la présentation

DFA Minimization
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. DFA Minimization • Note these slides are not mine. • http://faculty.kutztown.edu/spiegel • “Minimal”? • Minimal number of states. • “Unique”? • A minimal DFA for a given language is unique up to renaming of states.

  2. Build equivalence relation on states: • p  q  (zS*, (p,z)F (q,z)F) • I.e., iff for every string z, one of the following is true: z z p p or z z q q DFA Minimization: Algorithm Idea Equate & collapse states having same behavior.

  3. DFA Minimization: Algorithm Build table to compare each unordered pair of distinct states p,q. Each table entry has • a “mark” as to whether p & q are known to be not equivalent, and • a list of entries, recording dependences: “If this entry is later marked, also mark these.”

  4. DFA Minimization: Algorithm • Initialize all entries as unmarked & with no dependences. • Mark all pairs of a final & nonfinal state. • For each unmarked pair p,q & input symbol a: • Let r=d(p,a), s=d(q,a). • If (r,s) unmarked, add (p,q) to (r,s)’s dependences, • Otherwise mark (p,q), and recursively mark all dependences of newly-marked entries. • Merge unmarked pairs of states. • Delete inaccessible states.

  5. 1 0 0 1 0 a b c d b 0 1 1 0 1 1 1 0 e f g h c 0 1 d 0 e f g h a b c d e f g DFA Minimization: Example • Initialize table entries: • Unmarked, empty list

  6. 1 0 0 1 0 a b c d b 0 1 1 0 1 1 1 0 e f g h c 0 1 d 0 e f g h a b c d e f g DFA Minimization: Example • Mark pairs of final and • non-final states

  7. 1 0 0 1 0 a b c d b 0 1 1 0 1 1 1 0 e f g h c 0 1 d 0 e f g h a b c d e f g DFA Minimization: Example d(b,0) ? d(a,0) d(b,1) ? d(a,1) • For each unmarked • pair and symbol, …

  8. 1 0 0 1 0 Maybe. No! a b c d b 0 1 1 0 1 1 1 0 e f g h c 0 1 d 0 e f g h a b c d e f g DFA Minimization: Example g ? b c ? f • For each unmarked • pair and symbol, …

  9. 1 0 0 1 0 a b c d b 0 1 1 0 1 1 1 0 e f g h c 0 1 d 0 e f g h a b c d e f g DFA Minimization: Example • For each unmarked • pair and symbol, …

  10. 1 0 0 1 0 a b c d b 0 1 1 0 1 1 1 0 e f g h c 0 1 d 0 e f g h a b c d e f g DFA Minimization: Example d(e,0) ? d(a,0) d(e,1) ? d(a,1) • For each unmarked • pair and symbol, …

  11. 1 0 0 1 0 Maybe. Yes. a b c d b 0 1 1 0 1 1 1 0 e f g h c 0 1 d 0 e f g h a b c d e f g DFA Minimization: Example h ? b f ? f • For each unmarked • pair and symbol, … (a,e)

  12. 1 0 0 1 0 a b c d b 0 1 1 0 1 1 1 0 e f g h c 0 1 d 0 e f (g,a) g (g,a) h (a,e) a b c d e f g DFA Minimization: Example • For each unmarked • pair and symbol, …

  13. 1 0 0 1 0 a b c d Need to mark. b 0 1 1 So, mark (g,a) also. 0 1 1 1 0 e f g h c 0 1 d 0 e f g h (a,e) a b c d e f g DFA Minimization: Example • For each unmarked • pair and symbol, … (g,a) (g,a)

  14. 1 0 0 1 0 a b c d b 0 1 1 0 1 1 1 0 e f g h c 0 1 d 0 e f (g,a) g h (a,e) a b c d e f g DFA Minimization: Example • For each unmarked • pair and symbol, …

  15. 1 0 0 1 0 a b c d b 0 1 1 0 1 1 1 0 e f g h c 0 1 d 0 e f 1 0 g 0 1 ae bh c 0 1 0 h 1 (a,e) df g 1 a b c d e f g 0 DFA Minimization: Example • Merge unmarked • pairs of states. a  e b  h d  f

  16. 1 0 0 1 0 a b c d b 0 1 1 0 1 1 1 0 e f g h c 0 1 d 0 e f 1 0 g 0 1 ae bh c 0 1 0 h 1 (a,e) df g 1 a b c d e f g 0 DFA Minimization: Example • Delete unreachable • states. None.

  17. DFA Minimization: Notes Order of selecting state pairs was arbitrary, but all orders give the same result. Can delete unreachable states initially, instead. This algorithm: O(n2) time; Huffman (1954), Moore (1956). • Constant work per entry: initial mark test & possibly later chasing of its dependences. • More efficient algorithms exist, e.g., Hopcroft (1971).

  18. DFA Minimization: Correctness Why is new DFA no larger than old DFA? Only removes states, never introduces new states. Why is new DFA equivalent to old DFA? Only identify states that have same behavior.

  19. What About NFA Minimization? This algorithm does not find a unique minimal NFA. Is there a (not necessarily unique) minimal NFA for a given language? Of course.

  20. 0 0 0 0 NFA Minimization In general, minimal NFA’s not unique! Example NFAs for 0+: Both minimal, but not isomorphic.