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
Sources
Chapitres: Automate fini, Automate complet, Automate fini non déterministe, Simulation d’un AFN, Déterminisation d’un AFN