✖

Intersection de langages réguliers

Soient deux langages réguliers L1, L2. Nous allons démontrer que leur intersection L = L1 ∩ L2 est aussi un langage régulier.

Idée de la démonstration

Nous avons deux langages réguliers L1 et L2 et nous voulons démontrer que leur intersection L1 ∩ L2 est encore un langage régulier. Comme L1 et L2 sont réguliers, il existe des automates finis A1 et A2 qui acceptent les langages L1 et L2, c’est-à-dire que L(A1) = L1 et L(A2) = L2. Nous construisons ensuite un automate fini A qui acceptera le langage L1 ∩ L2, ce qui prouvera que le langage L1 ∩ L2 est régulier.

Un mot appartient à l’intersection de deux langages s’il appartient à L1 et à L2 à la fois. Il faut donc que l’automate A1 accepte le mot, et que l’automate A2 l’accepte aussi. Nous utilisons exactement la même idée que pour la réunion de langages réguliers, en changeant seulement l’ensemble des états finals.

Formalisation de la méthode

Nous avons deux automates

A1=(Q1;Σ1;δ1;q0;F1)A2=(Q2;Σ2;δ2;p0;F2)

Nous construisons l’automate A = (Q ; Σ ; δ ; q ; F) qui accepte le langage L(A1) ∩ L(A2). On a

  • Q = Q1 × Q2
  • Σ= Σ1 ∩ Σ2
  • q = ⟨q0, p0⟩
  • F = F1 × F2

Pour la fonction de transition δ, on a la relation suivante :

∀q∈Q1,p∈Q2:δ(⟨q,p⟩,a)=⟨δ1(q,a),δ2(p,a)⟩

Exemple

Soit l’automate A1 suivant, qui accepte tous les mots contenant un nombre pair de 1 :

et l’automate A2, qui accepte les mots contenant un nombre impair de 0 :

Nous construisons un automate qui acceptera l’intersection de ces langages. L’ensemble des états de cet automate est Q = Q1 × Q2, l’état initial est ⟨q0, p0⟩ et les états finals sont F1 × F2 :

Nous ajoutons ensuite les transitions selon la règle δ(⟨q,p⟩, a) = ⟨δ1(q, a), δ2(p, a)⟩ :

Dans cet automate, il y a par exemple, depuis l’état ⟨q0, p0⟩, une transition pour la lettre 0 vers l’état ⟨q0,p1⟩. Cela signifie que l’automate A1 a, depuis l’état q0, une transition pour la lettre 0 qui revient vers q0. L’automate A2, lui, a pour la lettre 0 une transition de l’état p0 vers l’état p1.

On peut tester cet automate. Il doit accepter des mots comme 110 ou 00000 (ils contiennent un nombre pair de 1 et un nombre impair de 0), mais il ne doit pas accepter des mots comme 11, 111, 1010.

Sources

Chapitres: Propriétés de clôture des langages réguliers, Réunion de langages réguliers, Intersection de langages réguliers, Différence de langages réguliers, Complémentaire d’un langage régulier, Concaténation de langages réguliers, Étoile d’un langage régulier