lcm1 Chap3
lcm1 Chap3
lcm1 Chap3
3
langages réguliers
Nous utilisons tous d’automates dans la vie de tous les jours (feux de cir-
culation, programmation d’un lave-linge ou lave-vaisselle, tourniquets de mé-
tro — non rennais ! — etc.). Certains d’entre eux sont tellement rudimentaires
qu’ils n’ont pas d’entrée, ils se contentent de répéter indéfiniment le même
cycle (ex. feux de circulation) ; d’autres ont besoin d’une entrée, par exemple
l’automate qui régit l’ouverture du tourniquet a besoin de votre ticket de métro
en entrée : il vérifie que votre ticket est valide et si oui commande l’ouverture
du tourniquet, sinon il émet un son (de rejet).
Nous allons nous intéresser à des automates plus élaborés qui permettent
de vérifier si un mot appartient à un langage donné. Cette idée a germé à par-
tir du « dixième problème de Hilbert » qui — lors du congrès de mathémati-
ciens de 1900 — a demandé s’il est possible de vérifier automatiquement si une
preuve mathématique (dûment formalisée) appartient à un système axioma-
tique donné. Plus précisément il a demandé s’il existe un procédé (aujourd’hui
on dirait algorithme) permettant — en un nombre fini d’opérations — de dé-
terminer si l’équation p(x 1 , x 2 , . . . , x n ) = 0, où p est un polynôme à coefficients
entiers et un nombre arbitraire de termes, possède des solutions rationnelles. Il
a été montré par Matiyasevich en 1970 (voir [9] pour la version traduite du théo-
rème) qu’il n’existe pas de tel algorithme. Plus généralement, nous connaissons
aujourd’hui que ceci n’est pas possible car Gödel a montré [4] (voir [5] pour un
document traduit et plus facilement accessible) que tout système axiomatique
contient certaines propositions qui restent indécidables (incomplétude de Gö-
del). Cependant, l’intuition de Hilbert, même fausse, a été très fructueuse car
elle a initié toute une ligne de pensée dont le point culminant est la notion
de « machine » introduite par Turing [12] servant de modèle théorique à tout
algorithme qui peut être exécuté sur un ordinateur pour donner des résultats
en temps fini. Tout algorithme que nous pouvons concevoir peut être en fait
modélisé par une machine de Turing. La bande dessinée [3] relate ces dévelop-
pements historiques des fondements des mathématiques, de la logique et des
débuts de l’informatique théorique de manière très pédagogique et ludique.
1. Ceci est un résultat très général : toute fonction mesurable f sur un espace mesurable
(X, X ) est équivalente à un noyau stochastique déterministe K : X × X → {0, 1} défini par
K (x, A) = 1 A ( f (x)) = ε f (x) (A) pour tout x ∈ X et tout A ∈ X où ε désigne la masse de Dirac.
Cette écriture s’appelle représentation spectrale de f .
2. Cf. cours Probabilités pour la théorie de l’information.
G(D) = v o r
1 0 0 0 1 0 0 0 1 0 0 0
0 0 1 0 0 0 0 1 0 0 1 0
Da = ;D = ;D = .
0 1 0 0 b 1 0 0 0 c 0 0 0 1
0 0 0 1 0 0 1 0 0 0 1 0
Chacune des matrices ci-dessus définit une relation sur X — avec dom(D l ) = X
pour tout l ∈ A — qui induit un digraphe G(D l )l ∈A .
1 1 1
a a c
b
a 0 2 b 0 2 b c 0 2
b c
3 a 3 3 c
En superposant les trois digraphes, nous obtenons le digraphe avec des éti-
quettes multiples sur les arêtes :
1
a,c a
b
a,b,c 0 2 b
b c
3 a,c
L (M ) = {α ∈ A∗ : ∆α (x 0 ) ∈ F},
où ∆α = δα|α| ◦ · · · ◦ δα1 .
0 1
1 0
start a b c
0,1
L’état initial est signalé par la flèche « start » tandis que les états finaux d’accep-
tation sont signalé par un double cercle. L’automate ci-dessus accepte le mot
α = 1101 présenté en entré tandis qu’il rejette le mot β = 11010. En fait, si un
mot γ = γ1 · · · γ|γ| ∈ A∗ est présenté en entrée de l’automate, alors en partant
de x 0 , l’automate évolue selon ∆γ (x 0 ) = δγ|γ| ◦ · · · ◦ δγ1 (x 0 ). Si ∆γ (x 0 ) ∈ F, alors
le mot γ est accepté, sinon il est rejeté. Dans cet exemple ∆α (a) = b ∈ F tandis
que ∆β (a) = c 6∈ F.
Théorème 3.1.6. La classe des langages réguliers est fermée par réunion finie.
Théorème 3.1.7. La classe des langages réguliers est fermée par concaténation.
Exemple 3.2.1.
0,1 0,1
1 0,ε 1
start x0 x1 x2 x3
Nous constatons les nouveautés suivantes par rapport aux automates dé-
terministes :
– Les transitions δa , pour a ∈ A ne sont plus de X dans X mais de X dans
P (X).
– Le dom(δa ) peut-être un sous-ensemble strict de X.
– Un nouveau symbole a ε 6∈ A sert à indexer la famille des transitions.
Ainsi, pour le digraphe précédent, les transitions sont définies par
Oublions pour l’instant la présence de D ε . Le fait que D 1 n’est plus une ap-
plication signifie que partant de x 0 nous aurons plusieurs trajectoires possibles
émanant du point x 0 . Le fait que dom(D a ) est strictement contenu dans X si-
gnifie que certaines trajectoires ne pourront pas continuer indéfiniment mais
s’arrêteront après un nombre fini d’étapes. Venons-en maintenant au cas de
D ε . Étant donné que ε est l’élément neutre du monoïde libre A∗ , il s’ensuit que
lorsque nous considérons un mot arbitraire α = a 1 · · · a n , nous pouvons interca-
ler à tout point un nombre arbitraire de mots vides ε ; en effet α = a 1 εa 2 · · · a n =
a 1 εεa 2 · · · a n = . . . = a 1 εm1 . . . a 2 εm2 · · · a n εmn , où (m k )k=1,...,n sont des entiers po-
sitifs arbitraires. Cependant, dans cet exemple, la matrice D ε est ¯-nilpotente
donc les entiers m k dans l’expression ci-dessus ne peuvent prendre que les va-
leurs 0 ou 1. En outre, dom(D ε ) = {x 1 }, donc m k 6= 0 si et seulement si le dernier
état visité est l’état x 1 . Cela signifie que si lors de la lecture du mot α l’auto-
mate visite l’état x 1 , il peut instantanement sauter à l’état x 2 car il y a une arête
étiquetée ε reliant x 1 à x 2 .
Exercice 3.2.2. Pour l’automate ci-dessus, dessiner l’arbre des toutes les tra-
jectoires calculatoires possibles lorsque le mot en entrée est α = 010110.
Exercice 3.2.3. Soit (D a )a∈A∪{ε} une famille de matrices représentant des rela-
tions sur X. Dans la suite on utilise le même symbole pour noter les relations et
les matrices qui les représentent. On note E la relation D ε∗ .
1. Montrer que E = ∨n∈N D ε¯n , où D ε¯0 = IX .
2. Calculer E pour l’automate de l’exemple 3.2.1.
3. Montrer qu’en général, si α = a 1 · · · a n est un mot en entrée d’un automate
décrit par une famille des relations (D a )a∈A∪{ε} , il y aura une trajectoire
calculatoire de x à y si et seulement si l’élément D[α](x, y) de la matrice
D[α] = D a1 ¯ E ¯ · · · ¯ D an ¯ E est égal à 1.
Définition 3.2.4. Un automate fini non-déterministe est la donnée M = (X, A, δ, x 0 , F),
où X est un ensemble fini d’états, F ⊆ X est l’ensemble des états finaux d’ac-
ceptation, A est l’alphabet fini des messages d’entrée, x 0 ∈ X est l’état initial,
L (M ) = {α ∈ A∗ :
X
D[α](x 0 , y) ≥ 1}.
y∈F
Théorème 3.3.1. Pour tout M ∈ AFN il existe un M 0 ∈ AFD qui est équivalent à
N , i.e. tel que L (M 0 ) = L (M ).
Corollaire 3.3.2. Un langage L est régulier si, et seulement si, il existe un auto-
mate non-déterministe M ∈ AFN tel que L (M ) = L.
Il est alors évident que l’automate accepte tous les mots qui seraient acceptés
individuellement par N1 ou N2 . ä
δ (x, a) x ∈ X1 \ F1
1
si
δ (x, a) x ∈ F1 , a 6= ε
1
si
δ(x, a) =
δ1 (x, a) t {x 02 } si x ∈ F1 , a = ε
δ (x, a) x ∈ X2 .
2
si
δ (x, a) si x ∈ X \ F
1
δ (x, a) si x ∈ F, a 6= ε
1
δ(x, a) =
δ1 (x, a) t {x̂} si x ∈ F, a = ε
si x = x̂, a 6= ε.
;
Définition 3.4.1. On dit que R est une expression régulière sur l’alphabet A si
elle admet une des formes suivantes :
– a pour un a ∈ A,
– ε,
– ;,
– R 1 ∪ R 2 , où R 1 , R 2 sont d’expressions régulières,
– R 1 ◦ R 2 = R 1 R 2 , où R 1 , R 2 sont d’expressions régulières,
– R 1∗ , où R 1 est une expression régulière.
Théorème 3.4.2. Un langage est régulier si, et seulement si, il est décrit par une
expression régulière.
Lemme 3.4.3. Si un langage est décrit par une expression régulière R, alors il est
régulier.
Lemme 3.4.4. Si L est un langage régulier, alors il existe une expression régulière
R qui le décrit, i.e. L (R) = L.
Nous décrivons une transformation qui est répétée récursivement sur les
arêtes de l’automate :
R4
xi xj
R1 R3 R 4 ∪ [R 1 R 2∗ R 3 ]
=⇒ x i xj
y
R2
Cette opération d’excision d’un état et de réparation locale des arêtes, diminue
le cardinal de X d’une unité. Étant donné que l’automate est fini, cette procé-
dure s’arrêtera au bout d’un nombre fini d’opérations. Afin de complètement
décrire la transformation d’un automate finie déterministe en automate fini
non-déterministe généralisé (AFNG), nous adjoignons deux états supplémen-
taires {x d , x f } à l’ensemble X pour obtenir l’ensemble des états Y = X t {x d , x f }.
Ces états supplémentaires ont les particularités suivantes :
– l’état x d a uniquement des arêtes sortantes les reliant à tous les autres
états de Y \ {x d } mais pas d’arête entrante (sauf le symbole start) ;
– l’état x f a uniquement des arêtes entrantes émanant de tous les autres
états de Y \ {x f } mais pas d’arête sortante ;
– de tout état x ∈ Y \ {x f } émane une unique arête vers chaque état de Y \
{x d } ;
– les arêtes sont étiquetées par des expressions régulières,
– lorsque Y est réduit à l’ensemble {x d , x f }, la procédure s’arrête ; l’étiquette
de l’unique arête qui relie x d à x f est l’expression régulière définie par
l’automate.
Définition 3.4.5. Soit R := R A , la classe des expressions régulières sur A. Un
automate fini non-déterministe généralisé M est l’automate fini non-déterministe
etiq : (Y \ {x f }) × (Y \ {x d }) → R
3.5 Exercices
Automates finis
1. On note D 1 et D 2 les automates finis déterministes suivants :
b a x2
b b
x1
a x2 x1 x4
start start a a b
a
b b a
x3 a,b x3
D1 D2
(a) Quelle est la suite des états à travers lesquels passent les automates
lorsqu’on leur présente l’entrée aabb ?
(b) Les automates acceptent-ils l’entrée aabb ?
(c) Les automates acceptent-ils l’entrée ε ?
(d) Donner les descriptions formels de ces automates.
2. Un automate fini est donné par le quintuplet ({a, b, c, d , e}, {0, 1}, δ, c, {c}),
où δ est définie par le tableau :
0 1
a a b
b a c
c b d
d c e
e d e
Dessiner le diagramme de l’automate.
3. Chacun des langages ci-dessous peut-être défini comme l’intersection de
deux langages plus simples. Construire les automates finis déterministes
qui décrivent ces langages plus simples et les combiner pour construire
l’automate qui qui reconnaît les langages L 1 et L 2 . Dans tous les cas A =
{a,b}.
(a) L 1 = {α : α contient exactement deux a et au moins deux b}.
(b) L 2 = {α : α contient un nombre pair de a et chaque a est suivi par au moins un b}.
4. Donner les diagrammes des automates finis non-déterministes avec le
nombre prescrit d’états qui reconnaissent les langages suivants. Dans chaque
cas, A = {0,1}.
(a) {α : α se termine par 00} (avec trois états).
N1 N2
Expressions régulières
7. Utiliser la procédure canonique introduite en cours pour transformer les
automates non-déterministes N1 et N2 , dont les diagrammes sont don-
nés ci-dessous, en expressions régulières.
start 1 a a,b
start 1 2 a
b b b
a
a b
2 3
N1 N2
8. Soit L un langage sur l’alphabet A. Montrer que L = L ∗ ⇔ LL ⊆ L.
9. Convertir les expressions régulières suivantes en automates finis non-
déterministes selon la procédure canonique du cours.
(a) a(abb)∗ ∪ b.
(b) a+ ∪ ab+ .
(c) (a ∪ b+ )a+ b+ .
a, b, c, d
B A
start
M2 =
C D
(Pour des raisons de clarté, nous avons omis les étiquettes des arêtes
de M 2 . Chaque arête pointant sur un nœud indexé par une lettre
majuscule sera étiquetée par la même lettre minuscule. Ainsi, au
nœud A arrivent 4 arêtes étiquetées a, etc.) Déterminer L (M 1 ) et
L (M 2 ).
(b) En utilisant la même convention pour les étiquettes, on note
B A
start
M3 =
C D
Déterminer L (M 3 ).
(c) On suppose maintenant que A au lieu d’être un simple ensemble
est un sous-ensemble d’un groupe, noté F2 . On suppose que a = c −1
et b = d −1 et qu’aucune autre relation ne relie les éléments de A. Le
groupe F2 , appelé groupe libre à deux générateurs, est dénombrable
et ses éléments peuvent être obtenus comme produits arbitraires
d’éléments de A. Monter qu’il existe une bijection 3 entre L (M 3 ) et
F2 ? Quelle relation a L (M 2 ) avec F2 ?
3. Un groupe engendré à partir d’un ensemble générateur fini est hyperbolique si (en tant
qu’ensemble) il est en bijection avec un langage régulier. Par conséquent F2 est hyperbolique ;
il constitue même l’archétype d’un groupe hyperbolique.