Probleme – Minimiser, et décider l'équivalence
Exercice · niveau 3 (difficile) · informatique (MP2I/MPI), chapitre 29 — Langages réguliers et automates finis
Énoncé
Le chapitre ne dit pas comment savoir si un automate est aussi petit que possible, ni comment comparer deux automates. Les deux questions n'en font qu'une.
- Dire quand deux états doivent être confondus.
- Écrire l'algorithme de Moore, et prouver qu'il termine.
- L'appliquer à l'automate à quatre états sur , initial , acceptants , avec , , , , , , , .
- En déduire un algorithme qui décide si deux automates reconnaissent le même langage.
Corrigé
1. Le critère. Deux états et sont indistinguables si, pour tout mot , lire depuis et depuis mène à des états tous deux acceptants ou tous deux non acceptants. Autrement dit, si les langages
— appelés résiduels — sont égaux. Un état ne sert qu'à retenir « ce qu'il reste à faire » ; deux états qui ont le même reste à faire sont un seul état.
2. L'algorithme de Moore. On ne peut pas tester « pour tout mot ». On raffine donc une partition, en séparant seulement quand on y est forcé :
- Partition initiale : deux classes, et son complémentaire. Ce sont les états distingués par le mot vide.
- Raffinement : deux états de la même classe sont séparés si, pour une lettre , leurs images et tombent dans des classes différentes.
- On recommence tant que la partition change.
Terminaison. Variant : . Chaque tour qui change quelque chose augmente strictement le nombre de classes, qui est majoré par . Il y a donc au plus tours.
Correction. Par récurrence : après tours, deux états sont dans la même classe si et seulement si aucun mot de longueur ne les distingue. La partition stabilisée est donc celle de l'indistinguabilité complète.
Complexité. Chaque tour parcourt tous les couples (état, lettre), soit , et il y a au plus tours : . L'algorithme de Hopcroft descend à ; on ne le demande pas.
3. L'exécution. On note la classe de chaque état, tour après tour.
| départ ( contre le reste) | ||||
| signature | ||||
| tour 1 | ||||
| signature | ||||
| tour 2 : stable |
La partition se stabilise en trois classes : , , . Les états et sont confondus — tous deux acceptants, tous deux absorbants dans l'ensemble . L'automate minimal a trois états, et son langage est celui des mots contenant le facteur aa : c'est l'automate de la figure du cours.
4. Décider l'équivalence. Deux méthodes, toutes deux correctes.
Par minimisation : l'automate minimal d'un langage régulier est unique à renommage près. On minimise les deux automates et l'on compare les tables.
Par produit et vacuité, plus simple à programmer : on complète les deux automates, on forme le produit reconnaissant , et l'on teste sa vacuité par un parcours en largeur ; puis on recommence en échangeant et . C'est vide des deux côtés si et seulement si — et si ce n'est pas vide, le parcours rend le plus court mot témoin. Coût : .
Un chiffre qui donne la mesure de l'enjeu. L'automate de Glushkov de a états. Déterminisé, il en a encore . Minimisé, il en a 3 — et ces trois-là sont exactement ceux de l'automate écrit à la main dans le cours. Le test d'équivalence entre les deux le confirme : aucun mot ne les distingue, et les deux ont été comparés sur les mots de longueur au plus .
Ce que ce problème ajoute au chapitre. Il donne le sens exact de « le non-déterminisme n'ajoute pas d'expressivité » : non seulement l'automate déterminisé reconnaît le même langage, mais il existe un représentant canonique de ce langage, et l'on sait le calculer. C'est aussi ce qui rend l'équivalence décidable, ce qui n'a rien d'automatique — le chapitre chap:grammaires présente des objets pour lesquels la même question n'a pas de réponse algorithmique.
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.