Skip to content

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)”

  • Alphabet (Σ\Sigma) : Ensemble fini et non vide de symboles (ou lettres).
  • Mot sur Σ\Sigma : Suite finie de symboles de Σ\Sigma. Le mot vide est noté ε\varepsilon.
  • Langage sur Σ\Sigma : Ensemble (éventuellement infini) de mots sur Σ\Sigma.
  • Opérations algébriques sur les langages :
    • Concatenation : L1L2={uv∣u∈L1,v∈L2}L_1 L_2 = \{uv \mid u \in L_1, v \in L_2\}.
    • Puissance : L0={ε}L^0 = \{\varepsilon\}, Ln+1=LnLL^{n+1} = L^n L.
    • Étoile de Kleene : L∗=⋃n∈NLnL^* = \bigcup_{n \in \mathbb{N}} L^n.

Un Automate Fini Déterministe (AFD) est un quintuplé A=(Q,Σ,δ,q0,F)\mathcal{A} = (Q, \Sigma, \delta, q_0, F) où :

  • QQ est un ensemble fini d’états.
  • Σ\Sigma est l’alphabet d’entrée.
  • δ:Q×Σ→Q\delta : Q \times \Sigma \to Q est la fonction de transition (totale).
  • q0∈Qq_0 \in Q est l’état initial.
  • F⊆QF \subseteq Q est l’ensemble des états acceptants (ou finaux).

On étend δ\delta en δ∗:Q×Σ∗→Q\delta^* : Q \times \Sigma^* \to Q par récurrence sur la longueur du mot :

  1. δ∗(q,ε)=q\delta^*(q, \varepsilon) = q
  2. δ∗(q,wa)=δ(δ∗(q,w),a)\delta^*(q, wa) = \delta(\delta^*(q, w), a) pour tout w∈Σ∗,a∈Σw \in \Sigma^*, a \in \Sigma.
  • Langage reconnu par A\mathcal{A} : L(A)={w∈Σ∗∣δ∗(q0,w)∈F}L(\mathcal{A}) = \{w \in \Sigma^* \mid \delta^*(q_0, w) \in F\}.

3. Automates Finis Non Déterministes (AFN et ε\varepsilon-AFN)

Section titled “3. Automates Finis Non Déterministes (AFN et ε\varepsilonε-AFN)”

Un Automate Fini Non Déterministe (AFN) remplace la fonction de transition par une relation de transition δ:Q×Σ→P(Q)\delta : Q \times \Sigma \to \mathcal{P}(Q). Dans un ε\varepsilon-AFN, les transitions spontanées (sans consommer de lettre) sont autorisées, via une fonction δε:Q×(Σ∪{ε})→P(Q)\delta_\varepsilon : Q \times (\Sigma \cup \{\varepsilon\}) \to \mathcal{P}(Q).

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 ε\varepsilon-AFN), il existe un AFD qui reconnait exactement le même langage.

  • Méthode de construction (Algorithme des sous-ensembles) : Soit A=(Q,Σ,δ,q0,F)\mathcal{A} = (Q, \Sigma, \delta, q_0, F) un AFN. On construit l’AFD D=(Q′,Σ,δ′,q0′,F′)\mathcal{D} = (Q', \Sigma, \delta', q_0', F') :
    • Q′=P(Q)Q' = \mathcal{P}(Q)
    • q0′=Fermetureε({q0})q_0' = \text{Fermeture}_\varepsilon(\{q_0\}) (ou {q0}\{q_0\} pour un AFN sans ε\varepsilon)
    • δ′(S,a)=⋃s∈SFermetureε(δ(s,a))\delta'(S, a) = \bigcup_{s \in S} \text{Fermeture}_\varepsilon(\delta(s, a))
    • F′={S∈Q′∣S∩F≠∅}F' = \{S \in Q' \mid S \cap F \neq \emptyset\}

4. Langages Rationnels et Expressions Régulières

Section titled “4. Langages Rationnels et Expressions Régulières”

L’ensemble des langages rationnels (ou réguliers) sur Σ\Sigma est le plus petit ensemble de langages contenant les langages finis et stable par union, concaténation et étoile de Kleene.

Théorème : Un langage est reconnu par un automate fini si et seulement s’il est rationnel.

Démonstration (Sens ⇐\Leftarrow : Thompson)

Section titled “Démonstration (Sens ⇐\Leftarrow⇐ : Thompson)”

Par induction structurelle sur l’expression régulière :

  • Base : ∅\emptyset, {ε}\{\varepsilon\}, {a}\{a\} (pour a∈Σa \in \Sigma) admettent des ε\varepsilon-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 ⇒\Rightarrow : Élimination des états / Arden)

Section titled “Démonstration (Sens ⇒\Rightarrow⇒ : Élimination des états / Arden)”

Soit A\mathcal{A} un automate. On peut numéroter les états {1,…,n}\{1, \dots, n\}. Soit Rij(k)R_{ij}^{(k)} l’expression régulière décrivant les mots menant de l’état ii à l’état jj en ne passant que par des états intermédiaires dans {1,…,k}\{1, \dots, k\}.

  • Lemme d’Arden : Si ε∉L\varepsilon \notin L, l’équation X=AX∪BX = AX \cup B a pour unique solution X=A∗BX = A^*B.

5. Minimisation des Automates Déterministes

Section titled “5. Minimisation des Automates Déterministes”

Deux mots u,v∈Σ∗u, v \in \Sigma^* sont indistinguables par rapport à un langage LL (noté u≡Lvu \equiv_L v) si : ∀w∈Σ∗,(uw∈L  ⟺  vw∈L)\forall w \in \Sigma^*, \quad (uw \in L \iff vw \in L)

Théorème de Myhill-Nerode : Un langage LL est reconnaissable par un automate si et seulement si l’équivalence ≡L\equiv_L 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 LL.

Algorithme de Moore (Raffinement de partitions)

Section titled “Algorithme de Moore (Raffinement de partitions)”
  1. Initialisation : Partition initiale P0={F,Q∖F}P_0 = \{F, Q \setminus F\} (séparation états acceptants / non acceptants).
  2. Itération : Pour une partition PkP_k, on teste si deux états p,qp, q d’un même bloc sont séparables. pp et qq sont séparables par a∈Σa \in \Sigma si δ(p,a)\delta(p, a) et δ(q,a)\delta(q, a) appartiennent à des blocs différents de PkP_k.
  3. Arrêt : Lorsque Pk+1=PkP_{k+1} = P_k. 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 (∪\cup) et Concaténation (⋅\cdot) et Étoile (∗^*) (par définition).
  • Complémentation (∁\complement) : Si LL est reconnu par un AFD complet, on échange FF et Q∖FQ \setminus F.
  • Intersection (∩\cap) : Par le produit cartésien des automates (A1×A2\mathcal{A}_1 \times \mathcal{A}_2).
  • Miroir (ReverseReverse) : 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 LL un langage rationnel. Il existe un entier n≥1n \ge 1 (la constante de pumping, typiquement le nombre d’états de l’automate) tel que pour tout mot z∈Lz \in L tel que ∣z∣≥n|z| \ge n, il existe une décomposition z=uvwz = uvw vérifiant :

  1. ∣uv∣≤n|uv| \le n
  2. ∣v∣≥1|v| \ge 1
  3. ∀k∈N,uvkw∈L\forall k \in \mathbb{N}, \quad uv^kw \in L

7. Pièges et Erreurs Fréquents (À Éviter en Concours)

Section titled “7. Pièges et Erreurs Fréquents (À Éviter en Concours)”
  1. 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).
  2. Confusion AFN / AFD lors de la déterminisation : Ne pas oublier de traiter l’ensemble vide ∅\emptyset comme un état à part entière (état puits) dans l’algorithme des sous-ensembles si la fonction de transition n’est pas totale.
  3. 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 (nn est donné par le langage, on ne le choisit pas).
  4. Étoile sur le mot vide : ε∗=ε\varepsilon^* = \varepsilon. Attention aux manipulations d’expressions régulières contenant ε\varepsilon.