✖

Automate complet

Dans la définition de base d’un automate fini, il n’est pas nécessaire que, depuis tous les états, il existe une transition pour tous les symboles. Un automate complet est un automate qui a des transitions définies depuis tous les états pour tous les symboles de l’alphabet d’entrée.

Comment construire un automate complet

Prenons cet automate A = (Q ; Σ ; δ ; q0 ; F) :

Ici, la transition depuis l’état q0 pour la lettre « b » n’est pas dessinée. Si une telle situation se produit, nous disons que l’automate n’accepte pas le mot d’entrée. Cependant, du point de vue de la formalisation, il peut être gênant que la fonction de transition δ ne soit pas définie pour certaines valeurs ; ici, par exemple, elle n’est pas définie pour δ(q0, b).

On résout facilement le problème en construisant un automate équivalent qui a un état de plus : les transitions « manquantes » iront vers cet état, il ne sera pas final et toutes les lectures suivantes boucleront sur cet état. Nous appelons cet automate automate complet. L’automate équivalent modifié pourrait ressembler à ceci :

Nous avons ajouté l’état qfail. Depuis les autres états, nous avons tracé une transition vers lui si et seulement s’il n’y en avait pas auparavant. Cet état n’est pas final et il boucle pour toutes les entrées suivantes. Si, dans l’automate précédent, nous tombions sur une transition manquante, ici il n’y a aucune transition manquante et l’automate arriverait dans l’état qfail.

Nous pouvons donc toujours supposer, sans perte de généralité, que l’automate a des transitions définies pour toutes les combinaisons d’états et de lettres de l’alphabet.

Définition

Pour un automate complet A = (Q ; Σ ; δ ; q0 ; F), on a donc

∀q∈Q∀a∈Σ∃r∈Q:δ(q,a)=r.

Sources

Chapitres: Automate fini, Automate complet, Automate fini non déterministe, Simulation d’un AFN, Déterminisation d’un AFN