Adloun

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.

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é :

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.