Cours : Langages réguliers et automates
📌 1. Définitions & Cadre d’étude
Section titled “📌 1. Définitions & Cadre d’étude”Soit un alphabet fini, c’est-à-dire un ensemble non vide de symboles.
- Un mot sur est une suite finie de symboles de . L’ensemble de tous les mots sur est noté . Le mot vide est noté .
- Un langage sur est une partie de .
A. Opérations sur les langages
Section titled “A. Opérations sur les langages”Soient des langages :
- Concaténation : .
- Puissances : , .
- Étoile de Kleene : .
B. Langages réguliers (ou rationnels)
Section titled “B. Langages réguliers (ou rationnels)”L’ensemble des langages réguliers sur est le plus petit ensemble de langages contenant les langages finis et stable par union, concaténation et étoile de Kleene.
C. Automates finis déterministes (AFD)
Section titled “C. Automates finis déterministes (AFD)”Un AFD est un quintuplé où :
- est un ensemble fini d’états.
- est l’alphabet d’entrée.
- est la fonction de transition.
- est l’état initial.
- est l’ensemble des états acceptants (ou finis).
La fonction de transition s’étend naturellement en par :
- pour tout et .
Un mot est accepté par si . Le langage reconnu par , noté , est l’ensemble des mots acceptés par .
D. Automates finis non déterministes (AFN et AFN-)
Section titled “D. Automates finis non déterministes (AFN et AFN-ε\varepsilonε)”Un AFN est défini de la même manière, mais sa fonction de transition est . Dans le cas d’un AFN-, les transitions spontanées sont autorisées : .
📐 2. Théorèmes fondamentaux & Démonstrations clés
Section titled “📐 2. Théorèmes fondamentaux & Démonstrations clés”A. Théorème de Kleene (Équivalence automates / expressions régulières)
Section titled “A. Théorème de Kleene (Équivalence automates / expressions régulières)”Énoncé : Un langage est reconnu par un automate fini si et seulement s’il est décrit par une expression régulière.
Démonstration (Sens : Expression Automate via Thompson)
Section titled “Démonstration (Sens ⇐\Leftarrow⇐ : Expression ⟹ \implies⟹ Automate via Thompson)”Par induction structurelle sur la construction de l’expression régulière :
- Cas de base (, , ) : Construction immédiate d’un AFN- avec un état initial et un état acceptant.
- Union () : Soient et deux AFN- reconnaissant respectivement et . On crée un nouvel état initial avec des -transitions vers les états initiaux de et .
- Concaténation () : On relie les états acceptants de aux états initiaux de par des -transitions.
- Étoile () : On ajoute un nouvel état initial acceptant (par -transition) et des boucles des états acceptants vers l’état initial.
Démonstration (Sens : Automate Expression via le lemme d’Arden)
Section titled “Démonstration (Sens ⇒\Rightarrow⇒ : Automate ⟹ \implies⟹ Expression via le lemme d’Arden)”Soit avec . Pour tout , on associe le langage reconnu en partant de l’état . On obtient un système d’équations langagières de la forme : Lemme d’Arden : Soit deux langages tels que . L’équation admet une unique solution qui est . Par substitution et application successive du lemme d’Arden, on isole , qui correspond à l’expression régulière cherchée.
B. Déterminisation (Construction par sous-ensembles)
Section titled “B. Déterminisation (Construction par sous-ensembles)”Énoncé : Pour tout AFN (ou AFN-), il existe un AFD reconnaissant le même langage.
Démonstration : Soit un AFN. On construit l’AFD tel que :
- (clôture par -transitions des états initiaux).
- pour tout et .
- .
La récurrence sur la longueur du mot montre que , ce qui garantit l’égalité des langages reconnus.
C. Le lemme de l’itération (Pumping Lemma)
Section titled “C. Le lemme de l’itération (Pumping Lemma)”Énoncé : Soit un langage régulier. Il existe un entier (la constante de pumping, souvent liée au nombre d’états de l’AFD minimal) tel que pour tout mot tel que , il existe une décomposition vérifiant :
Démonstration : Soit un AFD reconnaissant possédant états. Soit un mot de avec . Considérons la suite des états visités lors de la lecture des premiers symboles de : . Par le principe des tiroirs de Dirichlet, deux de ces états doivent être identiques : soit avec . On pose :
- La boucle sur l’état peut être répétée fois sans modifier l’acceptation du mot, ce qui conclut.
💡 3. Méthodes classiques de résolution
Section titled “💡 3. Méthodes classiques de résolution”A. Algorithme de Brzozowski (Minimisation par double inversion)
Section titled “A. Algorithme de Brzozowski (Minimisation par double inversion)”Pour minimiser un AFD :
- Inverser le sens des transitions et échanger états initiaux et finaux (on obtient un AFN).
- Déterminiser cet AFN (on obtient un AFD).
- Répéter l’opération (inversion + déterminisation). Le résultat est l’AFD minimal et canonique (à isomorphisme près) reconnaissant le langage miroir du langage initial inversé.
B. Algorithme de Moore (Raffinement de partitions)
Section titled “B. Algorithme de Moore (Raffinement de partitions)”Pour minimiser un AFD :
- Initialiser une partition .
- À l’étape , raffiner en séparant les états et si pour un symbole , et n’appartiennent pas au même bloc de .
- Stopper lorsque . Les blocs de la partition finale constituent les états de l’automate minimal.
⚠️ 4. Pièges classiques aux Concours
Section titled “⚠️ 4. Pièges classiques aux Concours”- Confusion entre AFN et AFD lors de la minoration : Appliquer l’algorithme de Moore ou de Hopcroft sur un automate non déterministe. La minimisation n’est définie et algorithmiquement correcte que pour les AFD émondés (sans états inaccessible).
- Mauvaise application du Lemme de l’itération : Le lemme est une condition nécessaire mais non suffisante. Prouver qu’un langage vérifie le Pumping Lemma ne garantit en rien qu’il est régulier.
- Oubli des -transitions dans la déterminisation : Ne pas calculer la clôture par -transitions () avant d’appliquer la fonction de transition globale conduit à des automates erronés.
- Non-unicité de l’expression régulière : Une expression régulière minimale n’est pas unique, contrairement à l’AFD minimal. Ne cherchez pas à démontrer l’unicité d’une expression par des méthodes automatiques sans passer par les automates.