informatique (MP2I/MPI) · Chapitre 29 · Exercice de TD
Fini, donc régulier – mais l'automate grandit
Langages réguliers et automates finis · niveau 2
Énoncé
Pour , on pose .
- Justifier que est régulier.
- Combien d'états compte son automate déterministe complet minimal ?
- Qu'en conclure sur ?
Corrigé
1. est fini. Or tout langage fini est régulier : il s'écrit comme l'union finie des expressions dénotant chacun de ses mots. Ici dénote .
2. L'automate minimal compte états. On les nomme par ce que l'automate doit retenir :
- après pour : il faut retenir — cela fait états, deux à deux distinguables puisque et se distinguent par le mot ;
- après avec : il faut retenir le nombre de
bencore attendus, soit états supplémentaires ; - plus un puits, pour tout ce qui a déjà échoué.
On a construit pour chaque l'automate en arbre du langage puis minimisé : on mesure états pour , soit exactement .
3. n'est pas régulier, et l'on voit ici pourquoi le lemme de l'étoile aboutit. Chaque troncature est régulière, mais son automate minimal grandit sans borne. Un automate fixé, à états, ne peut donc reconnaître que pour : il y a toujours un trop grand pour lui. Formellement, le lemme conclut sur : le facteur pompé ne contient que des a, et a plus de a que de b.
Ce qu'il faut retenir. « Régulier » n'est pas une propriété de chaque mot mais du langage entier. Toute partie finie d'un langage non régulier est régulière — cela n'apprend rien sur le langage. C'est la faute de raisonnement la plus fréquente sur ce chapitre.