Cours : Automates et langages
Fiche de Cours : Automates et langages (CPGE MPI - Deuxième année)
Section titled “Fiche de Cours : Automates et langages (CPGE MPI - Deuxième année)”1. Introduction et Langages Formels
Section titled “1. Introduction et Langages Formels”Définitions Fondamentales
Section titled “Définitions Fondamentales”- Alphabet () : Ensemble fini et non vide de symboles (ou lettres).
- Mot sur : Suite finie de symboles de . Le mot vide est noté .
- Langage sur : Ensemble (éventuellement infini) de mots sur .
- Opérations algébriques sur les langages :
- Concatenation : .
- Puissance : , .
- Étoile de Kleene : .
2. Automates Finis Déterministes (AFD)
Section titled “2. Automates Finis Déterministes (AFD)”Définitions
Section titled “Définitions”Un Automate Fini Déterministe (AFD) est un quintuplé où :
- est un ensemble fini d’états.
- est l’alphabet d’entrée.
- est la fonction de transition (totale).
- est l’état initial.
- est l’ensemble des états acceptants (ou finaux).
Extension de la fonction de transition
Section titled “Extension de la fonction de transition”On étend en par récurrence sur la longueur du mot :
- pour tout .
- Langage reconnu par : .
3. Automates Finis Non Déterministes (AFN et -AFN)
Section titled “3. Automates Finis Non Déterministes (AFN et ε\varepsilonε-AFN)”Définitions
Section titled “Définitions”Un Automate Fini Non Déterministe (AFN) remplace la fonction de transition par une relation de transition . Dans un -AFN, les transitions spontanées (sans consommer de lettre) sont autorisées, via une fonction .
Théorème de determinisation (Construction de subset)
Section titled “Théorème de determinisation (Construction de subset)”Théorème (Rabin-Scott) : Pour tout langage reconnu par un AFN (ou -AFN), il existe un AFD qui reconnait exactement le même langage.
- Méthode de construction (Algorithme des sous-ensembles) :
Soit un AFN. On construit l’AFD :
- (ou pour un AFN sans )
4. Langages Rationnels et Expressions Régulières
Section titled “4. Langages Rationnels et Expressions Régulières”Définitions
Section titled “Définitions”L’ensemble des langages rationnels (ou réguliers) sur est le plus petit ensemble de langages contenant les langages finis et stable par union, concaténation et étoile de Kleene.
Théorème de Kleene
Section titled “Théorème de Kleene”Théorème : Un langage est reconnu par un automate fini si et seulement s’il est rationnel.
Démonstration (Sens : Thompson)
Section titled “Démonstration (Sens ⇐\Leftarrow⇐ : Thompson)”Par induction structurelle sur l’expression régulière :
- Base : , , (pour ) admettent des -AFN triviaux.
- Induction : Utilisation de constructions standard pour l’union (branchement depuis un nouvel état initial), la concaténation (liaison des états finaux aux initiaux) et l’étoile.
Démonstration (Sens : Élimination des états / Arden)
Section titled “Démonstration (Sens ⇒\Rightarrow⇒ : Élimination des états / Arden)”Soit un automate. On peut numéroter les états . Soit l’expression régulière décrivant les mots menant de l’état à l’état en ne passant que par des états intermédiaires dans .
- Lemme d’Arden : Si , l’équation a pour unique solution .
5. Minimisation des Automates Déterministes
Section titled “5. Minimisation des Automates Déterministes”Relation d’équivalence de Nerode
Section titled “Relation d’équivalence de Nerode”Deux mots sont indistinguables par rapport à un langage (noté ) si :
Théorème de Myhill-Nerode : Un langage est reconnaissable par un automate si et seulement si l’équivalence est d’indice fini (nombre de classes d’équivalence fini). De plus, l’index est égal au nombre d’états de l’AFD minimal reconnaissant .
Algorithme de Moore (Raffinement de partitions)
Section titled “Algorithme de Moore (Raffinement de partitions)”- Initialisation : Partition initiale (séparation états acceptants / non acceptants).
- Itération : Pour une partition , on teste si deux états d’un même bloc sont séparables. et sont séparables par si et appartiennent à des blocs différents de .
- Arrêt : Lorsque . Les blocs de cette partition finale forment les états de l’automate minimal.
6. Propriétés de Clôture et Décidabilité
Section titled “6. Propriétés de Clôture et Décidabilité”Propriétés de Clôture des Langages Rationnels
Section titled “Propriétés de Clôture des Langages Rationnels”Les langages rationnels sont fermés par :
- Union () et Concaténation () et Étoile () (par définition).
- Complémentation () : Si est reconnu par un AFD complet, on échange et .
- Intersection () : Par le produit cartésien des automates ().
- Miroir () : En inversant les transitions et en échangeant initial/finaux (nécessite d’introduire un unique état initial).
Le Lemme de Pompage (Arago-Bar-Hillel / Pumping Lemma)
Section titled “Le Lemme de Pompage (Arago-Bar-Hillel / Pumping Lemma)”Théorème : Soit un langage rationnel. Il existe un entier (la constante de pumping, typiquement le nombre d’états de l’automate) tel que pour tout mot tel que , il existe une décomposition vérifiant :
7. Pièges et Erreurs Fréquents (À Éviter en Concours)
Section titled “7. Pièges et Erreurs Fréquents (À Éviter en Concours)”- Oubli de la complétude pour le complémentaire : Pour commuter les états acceptants et non-acceptants afin d’obtenir le complémentaire d’un langage, l’automate doit être déterministe et complet (toutes les transitions doivent être définies).
- Confusion AFN / AFD lors de la déterminisation : Ne pas oublier de traiter l’ensemble vide comme un état à part entière (état puits) dans l’algorithme des sous-ensembles si la fonction de transition n’est pas totale.
- Mauvaise application du Lemme de Pompage : Le lemme de pompage est une condition nécessaire mais non suffisante de rationalité. On l’utilise exclusivement par l’absurde pour prouver qu’un langage n’est pas rationnel. Attention à bien quantifier universellement et existentiellement ( est donné par le langage, on ne le choisit pas).
- Étoile sur le mot vide : . Attention aux manipulations d’expressions régulières contenant .