Probleme – L'explosion exponentielle est inévitable
Exercice · niveau 3 (difficile) · informatique (MP2I/MPI), chapitre 29 — Langages réguliers et automates finis
Énoncé
Le chapitre affirme que la déterminisation peut coûter états, et que « cette explosion est parfois inévitable ». On le démontre. Pour , soit
- Construire un automate non déterministe à états reconnaissant .
- Le déterminiser pour et mesurer le nombre d'états.
- Démontrer que tout automate déterministe reconnaissant a au moins états.
Corrigé
1. L'automate non déterministe. États ; initial ; acceptant .
Il « devine » l'endroit où commencent les dernières lettres, exige que ce soit un a, puis compte lettres de plus. C'est le non-déterminisme employé comme il doit l'être : deviner, puis vérifier. Un mot est reconnu s'il existe un chemin acceptant, donc si la devinette peut être juste.
2. Les mesures. On applique la construction par sous-ensembles, puis on minimise.
| états de l'AFN | après déterminisation | après minimisation | ||
|---|---|---|---|---|
Chaque automate a été comparé au prédicat « la -ième lettre avant la fin est un a » sur tous les mots courts : accord complet. La minimisation ne gagne rien : la colonne « après minimisation » est identique à la précédente. Ce n'est pas un défaut de l'algorithme.
3. La borne inférieure. Soit un automate déterministe reconnaissant . Considérons les mots de longueur exactement . Montrons qu'ils mènent à états deux à deux distincts.
Soient deux tels mots. Ils diffèrent en une position (comptée depuis la gauche, ) ; disons et . Posons n'importe quel mot de longueur , par exemple . Alors dans , de longueur , la -ième lettre avant la fin est : donc . Dans , la même position porte : donc .
Le mot distingue donc de . Si et menaient au même état , l'automate donnerait la même réponse sur et — contradiction. Les mots mènent à états distincts, et en a au moins autant.
Ce que la démonstration dit vraiment. Un automate déterministe qui lit doit, à tout instant, être capable de répondre pour toutes les suites possibles. Il lui faut donc retenir les dernières lettres — soit configurations. L'automate non déterministe, lui, ne retient rien : il devine. Le non-déterminisme n'est pas une mémoire, c'est un pari, et déterminiser, c'est payer comptant tous les paris à la fois.
C'est aussi la réponse à une question naturelle : puisque la déterminisation coûte cher, n'y aurait-il pas un algorithme plus fin ? Non. La borne est atteinte, et par une famille d'exemples très simples.
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.