Skip to content

Automates Finis, Langages Rationnels & Lemme de l'Étoile

🎯 Pourquoi cette notion est-elle décisive au concours ?

Section titled “🎯 Pourquoi cette notion est-elle décisive au concours ?”

Dans les épreuves d’informatique des concours X-ENS, Mines-Ponts et Centrale (filière MPI), la théorie des langages et des automates constitue un socle fondamental souvent abordé dès la première partie des épreuves écrites. Pour le jury, ce chapitre est un double test :

  1. La rigueur formelle : Capacité à manipuler des définitions ensemblistes complexes, à formaliser des récurrences et à mener des raisonnements par l’absurde irréprochables.
  2. L’efficacité algorithmique : Maîtrise des complexités temporelles et spatiales des algorithmes de transformation d’automates (déterminisation, minimisation, construction de Thompson).

Une approximation dans la gestion des ε\varepsilon-transitions ou une mauvaise quantification lors de l’application du lemme de l’étoile est immédiatement sanctionnée par la perte de la totalité des points de la question.


📐 Rappels théoriques & Formules incontournables

Section titled “📐 Rappels théoriques & Formules incontournables”

Soit Σ\Sigma un alphabet fini. Un langage LL sur Σ\Sigma est un sous-ensemble de Σ∗\Sigma^*.

  • Automate fini non déterministe avec ε\varepsilon-transitions (AFNE) : Un 5-uple A=(Q,Σ,δ,I,F)\mathcal{A} = (Q, \Sigma, \delta, I, F) où QQ est un ensemble fini d’états, Σ\Sigma l’alphabet, δ:Q×(Σ∪{ε})→P(Q)\delta : Q \times (\Sigma \cup \{\varepsilon\}) \to \mathcal{P}(Q) la fonction de transition, I⊆QI \subseteq Q l’ensemble des états initiaux, et F⊆QF \subseteq Q l’ensemble des états finis.
  • Théorème de Kleene : Un langage est reconnaissable par un automate fini si et seulement s’il est rationnel (exprimable par une expression régulière).
  • Lemme de l’étoile (Pumping Lemma) : Si LL est un langage rationnel, alors il existe un entier n∈N∗n \in \mathbb{N}^* (la constante de pumping) tel que pour tout mot w∈Lw \in L tel que ∣w∣≥n|w| \ge n, il existe une décomposition w=xyzw = xyz vérifiant : ∀k∈N,xykz∈L\forall k \in \mathbb{N}, \quad xy^kz \in L et ∣xy∣≤n\text{et } |xy| \le n et ∣y∣≥1\text{et } |y| \ge 1

📌 Point d’obstacle 1 : Déterminisation et minimisation d’automates (algorithme de Hopcroft)

Section titled “📌 Point d’obstacle 1 : Déterminisation et minimisation d’automates (algorithme de Hopcroft)”

💡 Méthode de rédaction attendue par le jury

Section titled “💡 Méthode de rédaction attendue par le jury”

Pour la déterminisation (construction par sous-ensembles) :

  1. Partir de l’ensemble des états initiaux accessibles par ε\varepsilon-clôture : I′=Clε(I)I' = \text{Cl}_{\varepsilon}(I).
  2. Pour chaque nouvel état généré (qui est un sous-ensemble S⊆QS \subseteq Q) et pour chaque lettre a∈Σa \in \Sigma, calculer l’état cible δ′(S,a)=Clε(⋃q∈Sδ(q,a))\delta'(S, a) = \text{Cl}_{\varepsilon}\left(\bigcup_{q \in S} \delta(q, a)\right).
  3. Un état du nouvel automate est terminal si et seulement s’il contient au moins un état terminal de l’automate initial.

Pour la minimisation (Hopcroft) :

  1. Éliminer préalablement les états non accessibles depuis les initiaux et les états ne permettant pas d’atteindre un état final (états morts).
  2. Initialiser la partition avec deux blocs : P0={F,Q∖F}P_0 = \{F, Q \setminus F\}.
  3. Raffiner itérativement la partition en séparant les états dont les successeurs par une lettre aa appartiennent à des blocs différents.

📋 Exercice type concours résolu pas à pas

Section titled “📋 Exercice type concours résolu pas à pas”

Énoncé : Soit A\mathcal{A} l’AFNE défini sur Σ={a,b}\Sigma = \{a, b\} par Q={1,2,3}Q = \{1, 2, 3\}, I={1}I = \{1\}, F={3}F = \{3\}, et les transitions : δ(1,a)={1,2}\delta(1, a) = \{1, 2\}, δ(1,ε)={2}\delta(1, \varepsilon) = \{2\}, δ(2,b)={3}\delta(2, b) = \{3\}, δ(3,a)={3}\delta(3, a) = \{3\}. Déterminiser cet automate.

Correction rédigée :

  1. Calcul de l’ ε\varepsilon-clôture de l’état initial : Clε({1})={1,2}\text{Cl}_{\varepsilon}(\{1\}) = \{1, 2\} Notons cet état S0={1,2}S_0 = \{1, 2\}. Il est initial. Comme il contient 22 (non, 33 est final, mais 11 et 22 ne le sont pas), S0S_0 n’est pas final.
  2. Calcul des transitions depuis S0={1,2}S_0 = \{1, 2\} :
    • Pour aa : δ(1,a)∪δ(2,a)={1,2}∪∅={1,2}\delta(1, a) \cup \delta(2, a) = \{1, 2\} \cup \emptyset = \{1, 2\}. Son ε\varepsilon-clôture est {1,2}=S0\{1, 2\} = S_0.
    • Pour bb : δ(1,b)∪δ(2,b)=∅∪{3}={3}\delta(1, b) \cup \delta(2, b) = \emptyset \cup \{3\} = \{3\}. Son ε\varepsilon-clôture est Clε({3})={3}\text{Cl}_{\varepsilon}(\{3\}) = \{3\}. Notons S1={3}S_1 = \{3\}.
  3. Examen du nouvel état S1={3}S_1 = \{3\}. Il contient l’état final 33, donc S1∈F′S_1 \in F'.
    • Pour aa : δ(3,a)={3}\delta(3, a) = \{3\}, ε\varepsilon-clôture : {3}=S1\{3\} = S_1.
    • Pour bb : δ(3,b)=∅\delta(3, b) = \emptyset, ε\varepsilon-clôture : ∅\emptyset. Notons S2=∅S_2 = \emptyset (état puits).
  4. L’automate déterminisé possède l’ensemble d’états Q′={S0,S1,S2}Q' = \{S_0, S_1, S_2\}, l’unique état initial S0S_0, l’ensemble final F′={S1}F' = \{S_1\}, et les transitions formelles ci-dessus.
  • Oublier d’appliquer l’ ε\varepsilon-clôture après chaque transition lors de la déterminisation.
  • Omettre de créer un état puits (ou poubelle) pour rendre l’automate complet si nécessaire.
  • Confondre l’accessibilité amont et l’accessibilité aval lors de l’élimination préalable des états inutiles pour la minimisation.

📌 Point d’obstacle 2 : Passage des expressions régulières aux automates (Thompson)

Section titled “📌 Point d’obstacle 2 : Passage des expressions régulières aux automates (Thompson)”

💡 Méthode de rédaction attendue par le jury

Section titled “💡 Méthode de rédaction attendue par le jury”

La construction de Thompson permet de transformer inductivement une expression régulière en un AFNE possédant un unique état initial et un unique état final, sans transition entrante sur l’initial ni sortante sur le final.

  • Base (a∈Σa \in \Sigma) : Un état initial ii, un état final ff, et une transition i→afi \xrightarrow{a} f.
  • Union (E1+E2E_1 + E_2) : Création d’un nouvel initial et d’un nouvel final reliés par des ε\varepsilon-transitions aux sous-automates.
  • Concaténation (E1⋅E2E_1 \cdot E_2) : Fusion de l’état final du premier automate avec l’état initial du second.
  • Étoile (E∗E^*) : Ajout d’un nouvel initial et d’un nouvel final, avec des ε\varepsilon-transitions de bouclage.

📋 Exercice type concours résolu pas à pas

Section titled “📋 Exercice type concours résolu pas à pas”

Énoncé : Appliquer la construction de Thompson pour obtenir l’AFNE associé à l’expression régulière E=(a+b)∗aE = (a + b)^* a.

Correction rédigée :

  1. Construction pour la lettre aa : automate Aa\mathcal{A}_a avec i1→af1i_1 \xrightarrow{a} f_1.
  2. Construction pour la lettre bb : automate Ab\mathcal{A}_b avec i2→bf2i_2 \xrightarrow{b} f_2.
  3. Pour l’union a+ba + b : on introduit un nouvel état initial IabI_{ab} et un nouvel état final FabF_{ab}. On ajoute des ε\varepsilon-transitions : Iab→εi1,Iab→εi2,f1→εFab,f2→εFabI_{ab} \xrightarrow{\varepsilon} i_1, \quad I_{ab} \xrightarrow{\varepsilon} i_2, \quad f_1 \xrightarrow{\varepsilon} F_{ab}, \quad f_2 \xrightarrow{\varepsilon} F_{ab}
  4. Pour l’étoile (a+b)∗(a + b)^* : on introduit un état initial IstarI_{star} et un final FstarF_{star}. On ajoute des ε\varepsilon-transitions de IstarI_{star} vers IabI_{ab}, de FabF_{ab} vers FstarF_{star}, de FabF_{ab} vers IabI_{ab} (pour la répétition), et une liaison directe de IstarI_{star} vers FstarF_{star} (pour le mot vide).
  5. Pour la concaténation finale avec aa : on fusionne l’état final FstarF_{star} avec l’état initial de l’automate de la lettre aa terminale.
  • Créer des automates avec plusieurs états finaux non fusionnés lors des opérations inductives.
  • Mal orienter les ε\varepsilon-transitions dans l’opérateur étoile, ce qui fausse la reconnaissance du mot vide ε\varepsilon.

📌 Point d’obstacle 3 : Preuve de non-rationalité par le lemme de l’étoile (Pumping Lemma)

Section titled “📌 Point d’obstacle 3 : Preuve de non-rationalité par le lemme de l’étoile (Pumping Lemma)”

💡 Méthode de rédaction attendue par le jury

Section titled “💡 Méthode de rédaction attendue par le jury”

La preuve s’articule toujours sous la forme d’un jeu contradictoire (type Skolem-Gödel ou démonstration par l’absurde) :

  1. Supposer par l’absurde que le langage LL est rationnel.
  2. D’après le lemme de l’étoile, il existe une constante n≥1n \ge 1.
  3. Choisir intelligemment un mot w∈Lw \in L de longueur ∣w∣deˊpendantede|w| dépendante de n(souvent(souventnouou2n$).
  4. Considérer une décomposition arbitraire w=xyzw = xyz telle que ∣xy∣≤n|xy| \le n et ∣y∣≥1|y| \ge 1.
  5. Expliciter la longueur de yy (souvent ∣y∣≤n|y| \le n) et sa position (dans le préfixe de longueur nn).
  6. Trouver un entier k∈Nk \in \mathbb{N} (souvent k=0k = 0 ou k=2k = 2) tel que le mot pompé xykz∉Lxy^kz \notin L, ce qui contredit l’hypothèse de rationalité.

📋 Exercice type concours résolu pas à pas

Section titled “📋 Exercice type concours résolu pas à pas”

Énoncé : Démontrer que le langage L={akbk∣k∈N}L = \{a^k b^k \mid k \in \mathbb{N}\} n’est pas rationnel.

Correction rédigée :

  1. Raisonnons par l’absurde en supposant que LL est rationnel.
  2. Soit nn la constante du lemme de l’étoile associée à LL.
  3. Choisissons le mot w=anbnw = a^n b^n. On a bien w∈Lw \in L et ∣w∣=2n≥n|w| = 2n \ge n.
  4. D’après le lemme de l’étoile, il existe une décomposition w=xyzw = xyz telle que : ∣xy∣≤net∣y∣≥1|xy| \le n \quad \text{et} \quad |y| \ge 1
  5. Puisque ∣xy∣≤n|xy| \le n et que le mot ww commence par nn lettres aa, le sous-mot yy ne contient que des lettres aa. Posons ∣y∣=m≥1|y| = m \ge 1. Le mot xx est de la forme apa^p avec p+m≤np + m \le n.
  6. Considérons le mot pompé avec k=0k = 0 : xy0z=xz=an−mbnxy^0z = xz = a^{n-m}b^n
  7. Comme m≥1m \ge 1, on a n−m<nn - m < n. Le nombre de lettres aa est strictement inférieur au nombre de lettres bb. Par conséquent, xz∉Lxz \notin L.
  8. Ceci contredit le lemme de l’étoile. Le langage LL n’est donc pas rationnel. CQFD.
  • Oublier de vérifier la condition fondamentale ∣xy∣≤n|xy| \le n (beaucoup d’étudiants choisissent yy au milieu du mot, ce qui invalide la démonstration).
  • Confondre la quantification : c’est l’adversaire (le lemme) qui choisit la décomposition xyzxyz, et c’est à vous de construire un contre-exemple valable pour toutes les décompositions possibles respectant les contraintes.
  • Oublier de préciser que ∣y∣≥1|y| \ge 1.