Le complémentaire d'un automate incomplet
Exercice · niveau 2 · informatique (MP2I/MPI), chapitre 29 — Langages réguliers et automates finis
Énoncé
Soit l'automate sur , d'état initial , d'unique état acceptant , dont la table est partielle :
- Quel langage reconnaît-il ?
- Un élève échange les états acceptants et non acceptants pour obtenir le complémentaire. Que reconnaît son automate ? Donner le plus court mot qui prouve qu'il se trompe.
- Corriger.
Corrigé
1. : une suite de a, puis au moins un b. Lire un a après un b bloque l'automate, et un mot sur lequel la lecture bloque n'est pas reconnu.
2. Avec , l'automate de l'élève reconnaît — et rien d'autre, car il bloque toujours au même endroit. Or le vrai complémentaire contient , a, ba, aba, bab… Le plus court témoin est ba : il n'est pas dans , donc il doit être dans le complémentaire ; l'automate de l'élève le refuse, car il bloque sur le a.
3. Il faut compléter d'abord. On ajoute un état puits , non acceptant, absorbant, et l'on y envoie toutes les transitions manquantes :
L'automate a maintenant trois états. On échange ensuite : . Le puits, devenu acceptant, est exactement ce qui recueille les mots sur lesquels la lecture bloquait.
Le piège nommé. Un automate incomplet refuse deux sortes de mots : ceux qui finissent hors de , et ceux dont la lecture bloque. L'échange des états acceptants ne retourne que la première sorte. La règle du chapitre — « le complémentaire exige un automate déterministe et complet » — n'a pas d'autre contenu que celui-là.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.