Minimisation DFA

Minimisation DFA à l'aide du théorème Myphill-Nerode

Algorithme

Input - DFA

Output - DFA réduit

Step 1- Tracez un tableau pour toutes les paires d'états (Q i , Q j ) pas nécessairement connectés directement [Tous ne sont pas marqués initialement]

Step 2- Considérez chaque paire d'états (Q i , Q j ) dans le DFA où Q i ∈ F et Q j ∉ F ou vice versa et marquez-les. [Ici F est l'ensemble des états finaux]

Step 3 - Répétez cette étape jusqu'à ce que nous ne puissions plus marquer d'états -

S'il y a une paire non marquée (Q i , Q j ), marquez-la si la paire {δ (Q i , A), δ (Q i , A)} est marquée pour un alphabet d'entrée.

Step 4- Combinez toutes les paires non marquées (Q i , Q j ) et faites-en un seul état dans le DFA réduit.

Exemple

Utilisons l'algorithme 2 pour minimiser le DFA indiqué ci-dessous.

Step 1 - Nous dessinons un tableau pour toutes les paires d'états.

une b c e F
une
b
c
e
F

Step 2 - Nous marquons les paires d'états.

une b c e F
une
b
c
e
F

Step 3- Nous allons essayer de marquer les paires d'états, avec une coche de couleur verte, de manière transitoire. Si nous entrons 1 pour l'état «a» et «f», il passera respectivement à l'état «c» et «f». (c, f) est déjà marqué, donc nous marquerons la paire (a, f). Maintenant, nous entrons 1 pour indiquer «b» et «f»; il ira à l'état «d» et «f» respectivement. (d, f) est déjà marqué, donc nous marquerons la paire (b, f).

une b c e F
une
b
c
e
F

Après l'étape 3, nous avons des combinaisons d'états {a, b} {c, d} {c, e} {d, e} qui ne sont pas marquées.

On peut recombiner {c, d} {c, e} {d, e} en {c, d, e}

Par conséquent, nous avons deux états combinés comme - {a, b} et {c, d, e}

Ainsi, le DFA réduit final contiendra trois états {f}, {a, b} et {c, d, e}

Minimisation DFA à l'aide du théorème d'équivalence

Si X et Y sont deux états dans un DFA, nous pouvons combiner ces deux états en {X, Y} s'ils ne sont pas distinguables. Deux états peuvent être distingués, s'il y a au moins une chaîne S, de telle sorte que l'un de δ (X, S) et δ (Y, S) accepte et un autre n'accepte pas. Par conséquent, un DFA est minimal si et seulement si tous les états sont distinguables.

Algorithme 3

Step 1 - Tous les états Q sont divisés en deux partitions - final states et non-final states et sont désignés par P0. Tous les états d'une partition sont le 0 e équivalent. Prenez un compteurk et initialisez-le avec 0.

Step 2- Incrémenter k de 1. Pour chaque partition de P k , diviser les états de P k en deux partitions s'ils sont k-distinguables. Deux états au sein de cette partition X et Y sont k-distinguables s'il y a une entréeS tel que δ(X, S) et δ(Y, S) sont (k-1) -distinguables.

Step 3- Si P k ≠ P k-1 , répétez l'étape 2, sinon passez à l'étape 4.

Step 4- Combinez les k èmes ensembles équivalents et faites-en les nouveaux états du DFA réduit.

Exemple

Considérons le DFA suivant -

q δ (q, 0) δ (q, 1)
une b c
b une
c e F
e F
e e F
F F F

Appliquons l'algorithme ci-dessus au DFA ci-dessus -

  • P 0 = {(c, d, e), (a, b, f)}
  • P 1 = {(c, d, e), (a, b), (f)}
  • P 2 = {(c, d, e), (a, b), (f)}

Par conséquent, P 1 = P 2 .

Il existe trois états dans le DFA réduit. Le DFA réduit est le suivant -

Q δ (q, 0) δ (q, 1)
(un B) (un B) (c, d, e)
(c, d, e) (c, d, e) (F)
(F) (F) (F)