Bonjour,
Dans notre leçon précédente, nous avons conclu sur une question fondamentale : les automates finis non-déterministes (AFN), avec leur flexibilité, sont-ils plus puissants que les automates finis déterministes (AFD) ? La réponse, nous l'avons suggéré, est non. Aujourd'hui, nous allons le prouver de manière constructive.
L'objectif de cette leçon est de maîtriser l'algorithme qui permet de convertir n'importe quel AFN en un AFD équivalent. Cet algorithme, connu sous le nom de construction des sous-ensembles (ou "subset construction"), est un pilier de la théorie des automates et un sujet classique du concours de l'Agrégation. Il démontre non seulement l'équivalence en puissance de calcul, mais fournit également une méthode systématique pour passer d'un modèle à l'autre.
1. L'Idée Fondamentale : Les États du Déterminisme sont des Ensembles
Le non-déterminisme se manifeste par le "choix". Dans un AFN, en lisant un symbole a depuis un état , nous pouvons aboutir à un ensemble d'états possibles : . Un AFD, par définition, ne peut aboutir qu'à un seul état.
Comment résoudre cette ambiguïté ? L'idée est d'une simplicité redoutable : si l'AFN peut se trouver simultanément dans plusieurs états, alors l'AFD équivalent aura un unique état qui représente précisément cet ensemble d'états.
Chaque état du nouvel AFD correspondra donc à un sous-ensemble d'états de l'AFN d'origine.
La vidéo suivante introduit cette idée et décompose la construction du nouvel automate déterministe en ses différents éléments : ses états, son état initial, ses états finaux et ses transitions.
Comprendre la déterminisation d'un automate fini (didacticiel)
Cette vidéo du canal 'Informatique Théorique' explique clairement le principe de la déterminisation. Concentrez-vous sur la définition des composants du nouvel automate.
Regardez la vidéo de 00:50 à 03:50. Prenez note de la manière dont sont définis : L'ensemble des états du nouvel automate (Q'). L'état initial unique. L'ensemble des états finaux.
Pour formaliser ce que vous venez de voir : soit un AFN . Nous construisons un AFD où :
- États : Les états de l'AFD sont des sous-ensembles d'états de l'AFN. Formellement, .
- État initial : L'état initial de l'AFD est l'ensemble des états initiaux de l'AFN, soit . (Nous affinerons cela pour les -transitions).
- États finaux : Un état est un état final de l'AFD si et seulement s'il contient au moins un état final de l'AFN. Formellement, .
Il ne nous reste plus qu'à définir la fonction de transition , qui est le cœur de l'algorithme.
2. L'Algorithme de Construction des Sous-Ensembles
La construction de l'AFD se fait de manière itérative. Il serait inefficace de créer d'emblée les états possibles. Nous ne construirons que les états accessibles depuis l'état initial. La méthode la plus rigoureuse consiste à utiliser une table de transitions pour l'AFD en construction.
La vidéo suivante détaille cette approche tabulaire.
Rendre déterministe un automate fini non déterministe - Exemple
Dans cet exemple, Leila Ben Ayed montre comment construire pas à pas la table de transition de l'AFD. Cette méthode est très structurée et efficace en situation d'examen.
Regardez la section de 03:29 à 06:51, qui montre la construction de la table. Puis, regardez la section de 09:37 à 13:03, qui illustre comment on dessine l'automate final à partir de la table complétée. Notez que les nouveaux états de l'AFD sont d'abord des ensembles d'états de l'AFN, puis sont renommés (A, B, C...) pour plus de clarté.
La logique de transition est la suivante : pour un état-ensemble de l'AFD et un symbole , l'état-ensemble de destination est l'union de toutes les destinations possibles depuis chaque état de l'AFN en lisant .
Si , cela signifie qu'aucune transition n'est possible. Dans l'AFD, cela correspond à une transition vers un état puits (trap state), un état non-final dont toutes les transitions bouclent sur lui-même.
Le document de cours ci-dessous formalise l'ensemble de ce processus dans un pseudo-code rigoureux, que vous devez être capable de comprendre et de reproduire.
[PDF] IF114 – Automates finis et applications
Le polycopié du cours IF114 de l'ENSEIRB-MATMECA présente l'algorithme de déterminisation de manière formelle. C'est le niveau de rigueur attendu pour vos épreuves.
Lisez attentivement la section 2.2 'Algorithme de déterminisation', en vous concentrant sur la figure 2.7 'Algorithme de Déterminisation'. Analysez le rôle de l'ensemble 'N' (les nouveaux états à traiter) et de 'Q'' (les états déjà traités).
3. La Gestion des -Transitions
Jusqu'à présent, nous avons ignoré un détail crucial : les transitions spontanées, ou -transitions. Celles-ci permettent à un automate de changer d'état sans consommer de symbole. Elles doivent être intégrées à notre algorithme.
Pour cela, nous introduisons la notion de clôture-epsilon (ou clôture instantanée), notée . C'est l'ensemble de tous les états atteignables depuis un ensemble d'états en ne suivant que des -transitions (y compris les états de eux-mêmes).
L'algorithme de construction des sous-ensembles est alors modifié comme suit :
-
État initial de l'AFD : L'état initial est la clôture-epsilon de l'ensemble des états initiaux de l'AFN.
-
Fonction de transition de l'AFD : Pour aller de l'état-ensemble à avec le symbole , la procédure est :
a. Calculer l'ensemble des états atteignables depuis en lisanta(sans -transitions). Appelons cet ensemble . .
b. L'état de destination est alors la clôture-epsilon de .
En d'autres termes, à chaque pas de calcul de l'AFD, on effectue une séquence : (zéro ou plus ε-transitions) -> une transition sur un symbole -> (zéro ou plus ε-transitions). C'est le polycopié IF114 – Automates finis et applications qui formalise ce point dans la section 2.1.3 que nous allons maintenant étudier.
[PDF] IF114 – Automates finis et applications
Retournons au document IF114 pour voir comment la clôture instantanée (clôture-epsilon) et les successeurs sont combinés pour définir formellement l'automate déterministe équivalent.
Lisez la section 2.1 'Élimination du non-déterminisme' (pages 18 à 22). Concentrez-vous sur les définitions 2.1 (Clôture instantanée), 2.2 (Successeurs) et surtout 2.3 (Automate déterministe équivalent), qui unifie ces concepts.
L'image ci-dessous illustre un exemple de calcul de clôture-epsilon et de transitions, qui sont les briques de base de l'algorithme complet.
4. Complexité et Limites
La déterminisation est un algorithme puissant, mais il a un coût. Dans le pire des cas, le nombre d'états de l'AFD résultant peut être exponentiel par rapport au nombre d'états de l'AFN de départ. Si l'AFN a états, l'AFD peut en avoir jusqu'à .
C'est un résultat théorique fondamental à connaître. Les notes de révision de l'ENS Paris-Saclay le mentionnent et fournissent même un exemple classique d'automate qui provoque cette explosion d'états (Exemple 1.14 dans le document Notes de révision : Automates et langages). Bien que nous ne l'étudiions pas en détail ici, il est bon de savoir que ces cas existent.
En pratique, cependant, l'algorithme ne construit que les états accessibles, et l'automate résultant est souvent de taille raisonnable. C'est le point soulevé dans la première vidéo (Comprendre la déterminisation..., 09:09) : la construction des seuls états accessibles est en général suffisante et bien plus performante.
Conclusion
Aujourd'hui, nous avons disséqué l'un des algorithmes les plus importants de la théorie des langages. La construction des sous-ensembles n'est pas seulement une procédure mécanique ; c'est la preuve constructive que le non-déterminisme, bien qu'utile pour la conception, n'ajoute aucune puissance de reconnaissance aux automates finis.
Points clés à retenir :
- Principe fondamental : Un état dans l'AFD équivalent représente un ensemble d'états de l'AFN d'origine.
- Algorithme : La construction est itérative et ne génère que les états accessibles depuis l'état initial pour éviter l'explosion combinatoire.
- -Transitions : Leur gestion est cruciale et se fait via le calcul de la clôture-epsilon à deux moments : pour définir l'état initial et après chaque transition sur un symbole.
- Finalité : Un état de l'AFD est final s'il contient au moins un état final de l'AFN.
- Complexité : La taille de l'AFD résultant est au pire exponentielle (), mais souvent bien plus petite en pratique.
Dans notre prochaine leçon, nous explorerons une autre manière de décrire les langages réguliers : les expressions régulières. Nous verrons comment elles se connectent aux automates, complétant ainsi le triptyque (AFD, AFN, expressions régulières) des représentations équivalentes des langages réguliers, un théorème central connu sous le nom de théorème de Kleene.