Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

lcm1 Chap3

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 17

Automates à nombre fini d’états et

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

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13


3.1 Automates finis déterministes 30

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.

3.1 Automates finis déterministes

Avant de donner la définition d’un automate fini général, commençons par


l’automate rudimentaire sans entrée qui décrit le fonctionnement d’un feu rouge.
Nous avons un espace fini d’états X = {v,o,r} et une application de transi-
tion δ : X → X définie de manière équivalente 1 soit par le vecteur (δ(x))x∈X
soit par une matrice stochastique déterministe D ∈ M|X|×|X| ({0, 1}) définie par
D x,y = 1 {y} (δ(x)), x, y ∈ X. Si la suite (X n )n∈N décrit l’état du système et si le
système commence de manière déterministe avec l’état initial X 0 = x 0 ∈ X,
son évolution est une chaîne de Markov triviale i.e. déterministe appelée sys-
tème dynamique sur X. On a X n = δ(X n−1 ), n ≥ 1 ou de manière équivalente
X n = δn (x 0 ) où δn := δ · · ◦ δ} (avec la convention d 0 = id. En termes proba-
| ◦ ·{z
n termes
bilistes 2 , nous avons la situation triviale Px0 (X n = δn (x 0 )) = 1, pour tout n ≥ 0
Étant donné que l’ensemble X est fini et δ : X → X, alors le système dynamique
(X n ) devient nécessairement périodique à partir d’un certain instant (en l’oc-
currence il l’est dès le début dans cet exemple très simple). Par ailleurs, étant
donné que l’évolution est donnée par la matrice D, on peut la décrire de ma-
nière équivalente par le digraphe G = G(D) associé à la relation D.

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.

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13


3.1 Automates finis déterministes 31

G(D) = v o r

Chaque élément de l’ensemble G x∗0 des trajectoires émanant de x 0 est appelé


trajectoire calculatoire de l’automate initiée à x 0 .

Considérons maintenant le cas d’automates déterministes finis avec entrée.


De nouveau l’ensemble fini X désignera l’ensemble des états de l’automate ;
mais maintenant nous avons aussi un ensemble fini A qui représente l’alpha-
bet des mots de l’entrée. La fonction de transition sera maintenant une appli-
cation δ : X × A → X. Au lieu de considérer une seule fonction δ définie sur
X × A, nous pouvons de manière équivalente considérer une famille (δa )a∈A —
indexée par A — de fonctions δa : X → X définies pour tout x ∈ X et tout a ∈ A
par δa (x) = δ(x, a). Maintenant, pour chaque a ∈ A la fonction δa est équiva-
lente à une matrice stochastique déterministe D a qui induit une relation sur
X, dont toutes les arêtes sont relatives à la lettre a ∈ A. Chaque a ∈ A donne
donc naissance à un digraphe G(D a ) ayant d’ensembles d’arêtes G1 (D a ) diffé-
rents mais le même ensemble de sommets G0 (D a ) = X. En superposant tous les
digraphes G(D a ) ainsi obtenus les arêtes aquèrent une étiquette qui les diffé-
rencie ; certains sommets peuvent alors être reliés par des arêtes multiples dif-
férenciées par leurs étiquettes ; au lieu de les dessiner séparément, on dessine
une seule arête dirigée portant toutes les étiquettes correspondantes.

x δa (x) δb (x) δc (x)


0 0 0 0
Exemple 3.1.1. Soient X = {0, 1, 2, 3}, A = {a,b,c} et δ définie par 1 2 3 2
2 1 0 3
3 3 2 2
ou encore, de manière équivalente, par les matrices stochastiques déterministes

     
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 .

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13


3.1 Automates finis déterministes 32

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

Il est évident que la donnée de la fonction de transition δ est équivalente à la


donnée du digraphe avec des arêtes multi-étiquettées obtenus par la fonction
de transition δ.

Définition 3.1.2. Un automate fini 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,
δ = (δa )a∈A , avec δa : X → X et dom(δa ) = X, est la famille des fonctions de tran-
sition. L’ensemble d’automates finis déterministes est noté AFD. Le digraphe
G(M ) de l’automate sera le digraphe avec des arêtes étiquetées provenant des
relations (D a )a∈A définies par la famille δ. Le langage reconnu par M est l’en-
semble des mots engendrant des trajectoires calculatoires de G∗ (M ) qui rendent
accessibles les états de F depuis l’état initial x 0 , i.e.

L (M ) = {α ∈ A∗ : ∆α (x 0 ) ∈ F},

où ∆α = δα|α| ◦ · · · ◦ δα1 .

Exercice 3.1.3. Soit M = (X, A, δ, x 0 , F) un AFD. Pour tout a ∈ A, on note D a ∈


M|X|×|X| ({0, 1}) la matrice stochastique déterministe codant l’application δa .

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13


3.1 Automates finis déterministes 33

1. Soit α = a 1 · · · a n un mot en entrée de l’automate. Déterminer la matrice


D[α] qui code l’application de transfert ∆α .
2. Montrer que pour tout α, la matrice D[α] est une matrice stochastique
déterministe. Calculer ses éléments de matrice D[α]x,y pour x, y ∈ X.
3. Pour B ⊆ X, noter vB ∈ {0, 1}X le vecteur (colonne) ayant comme coordon-
nées v B (x) = 1 B (x), x ∈ X.
t
4. Monter que le mot α est accepté par l’automate si, et seulement si, v{x 0}
D[α]vF ≥
t
1, où vB désigne le vecteur transposé (ligne) de vB .

Exemple 3.1.4. Soit l’automate défini par X = {a,b,c}, A = {0, 1}, x 0 = a et F =


{b} dont le digraphe est donné par

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.

Définition 3.1.5. Un langage L est régulier s’il existe un automate déterministe


fini M qui le reconnaît, i.e. si L = L (M ).

Si L, L 1 et L 2 désignent des langages sur A, on définit leur


– réunion : L 1 ∪ L 2 = {α ∈ A∗ : α ∈ L 1 ou α ∈ L 2 },
– concaténation (ou composition) : L 1 L 2 := L 1 ◦L 2 = {αβ ∈ A∗ : α ∈ L 1 et β ∈
L 2 },
– clôture monoïdale : L ∗ = ∪k∈N L k , avec L 0 = {ε}.

Théorème 3.1.6. La classe des langages réguliers est fermée par réunion finie.

Démonstration. Soient L 1 et L 2 deux langages réguliers. Il existe alors deux au-


tomates
M 1 = (X1 , A, δ(1) , x 01 , F1 ) et M 2 = (X2 , A, δ(2) , x 02 , F2 )

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13


3.2 Automates finis non-déterministes 34

de AFD tels que L 1 = L (M 1 ) et L 2 = L (M 2 ). Nous construirons un automate


M qui simule M 1 et M 2 et accepte les mots reconnus indifféremment par M 1
ou M 2 en les lisant une seule fois. Soit M = (X, A, δ, x 0 , F) l’automate défini par
X = X1 × X2 , δa ((x 1 , x 2 )) = (δ(1) (2)
a (x 1 ), δa (x 2 )) pour tout a ∈ A et tout (x 1 , x 2 ) ∈ X,
x 0 = (x 01 , x 02 ) et F = (F1 × X2 )∪(X1 × F2 ). Il est alors évident que M accepte un mot
α si soit M 1 soit M 2 l’accepte.

Théorème 3.1.7. La classe des langages réguliers est fermée par concaténation.

Nous ne pouvons pas répéter la construction précédente pour montrer la clô-


ture par concaténation (pourquoi ?). Pour montrer ce théorème nous introdui-
rons la notion d’automate non-déterministe.

3.2 Automates finis non-déterministes

Avant de donner la définition d’un automate non-déterministe, donnons


un exemple de digraphe d’un tel automate.

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

x δ0 (x) δ1 (x) δε (x)


x0 {x 0 } {x 0 , x 1 } ;
x1 {x 2 } ; x2
x2 ; {x 3 } ;
x3 {x 3 } {x 3 } ;

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13


3.2 Automates finis non-déterministes 35

ou de manière équivalente par les relations représentées par les matrices


     
1 0 0 0 1 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 1 0
     
D 0 :=   ; D 1 :=   ; D ε :=  .
0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 1 0 0 0 1 0 0 0 0
Nous constatons immédiatement que dom(D 0 ) = {x 0 , x 1 , x 3 }, dom(D 1 ) = {x 0 , x 2 , x 3 }
et dom(D ε ) = {x 1 }. Par ailleurs, la matrice D 1 ne correspond pas à une applica-
tion mais uniquement à une relation. Dans cet exemple, nous avons aussi que
D ε ¯ D ε = 0 (D ε est 2-¯-nilpotente).

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,

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13


3.3 Équivalence entre automates déterministes et non-déterministes 36

δ = (δa )a∈A∪{ε} , où δa : X → P (X) et dom(δa ) ⊆ X, est la famille des fonctions


de transition. L’ensemble d’automates finis déterministes est noté AFN. Le di-
graphe de l’automate G(M ) sera le digraphe avec des arêtes étiquetées prove-
nant des relations (D a )a∈A∪{ε} définies par la famille δ. Les arêtes étiquetées ε
représentent des transitions instantanées vers l’état terminal de l’arête aussitôt
que l’état source est visité. Le langage reconnu par M est l’ensemble des mots
qui engendrent des trajectoires calculatoires de G∗ (M ) qui rendent accessibles
depuis x 0 les états de F, i.e.

L (M ) = {α ∈ A∗ :
X
D[α](x 0 , y) ≥ 1}.
y∈F

3.3 Équivalence entre automates déterministes et non-


déterministes

Tout automate déterministe est un automate non-déterministe mais la dé-


finition d’un automate fini non-déterministe semble plus générale que celle
d’un automate fini déterministe. On s’attend donc à ce que L (AFD) ⊂ L (AFN).
Il apparaît comme une surprise qu’en fait L (AFD) = L (AFN) comme le montre
le théorème suivant.

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

Démonstration. Soit M = (X, A, δ, x 0 , F) ∈ AFN un automate non-déterministe


qui reconnaît le langage L. Nous construisons un M 0 = (Y, A, d , Y0 , H) ∈ AFD tel
que L (M 0 ) = L, où Y = P (X). Nous distinguons deux cas.
[M n’a pas d’arêtes ε] : Dans ce cas, nous définissons Y0 = {x 0 } et la famille d
des fonctions de transition — pour a ∈ A et Y ∈ Y — par

d a (Y ) = {x ∈ X : x ∈ δa (y), pour un y ∈ Y } = ∪ y∈Y δa (y).

L’ensemble des états finaux d’acceptation H = {Y ∈ Y : Y ∩ F 6= ;}.


[M a des arêtes ε] : Nous introduisons la notation, pour tout Y ∈ Y,

E (Y ) = ∪ y∈Y ∪ξ∈G∗y (D ε ):s(ξ)=y {t (ξ)}.

E (Y ) sont les états accessibles depuis les points de Y en suivant unique-


ment des arêtes ε. Il suffit alors de définir Y0 = E ({x 0 }), d a (Y ) = ∪ y∈Y E (δa (y))
et les états d’acceptation sont de nouveau H = {Y ∈ Y : Y ∩ F 6= ;}.

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13


3.3 Équivalence entre automates déterministes et non-déterministes 37

À chaque instant l’automate déterministe M 0 entre dans un état (sous-ensemble


de X) égal au sous-ensemble des états qui seraient accessibles par l’automate
non-déterministe M au même instant.

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.

Démonstration. Si L est régulier, il existe un automate déterministe M 0 ∈ AFD


qui le reconnaît. Mais AFD ⊆ AFN, donc L est reconnu par l’automate non-déterministe
M 0 . Réciproquement, si L est reconnu par un automate M ∈ AFN, par le théo-
rème précédent, il existe un automate déterministe M ∈ AFD qui est équivalent
à M 0 , qui reconnaît par conséquent L. Le langage est alors régulier.

Nous illustrons la puissance de la notion d’automate non-déterministe en


donnant une nouvelle démonstration du théorème 3.1.6 de clôture des lan-
gages réguliers par réunions finies.

Nouvelle démonstration du théorème 3.1.6 : Soient L 1 et L 2 deux langages ré-


guliers et N1 = (X1 , A, δ1 , x 01 , F1 ) ∈ AFN et N2 = (X2 , A, δ2 , x 02 , F2 ) ∈ AFN deux au-
tomates non-déterministes qui les reconnaissent. On construit un automate
N = (X, A, δ, x 0 , F) ∈ AFN avec
– X = {x 0 } t X1 t X2 obtenu par réunion disjointe des espaces des états et
adjonction d’un état supplémentaire qui jouera le rôle d’état initial pour
N,
– F = F1 ∪ F2 ,

δ (x, a) si x ∈ X1
 1

δ (x, a) si x ∈ X2
 2

δ(x, a) =
 {x 0 , x 0 } si x = x 0 , a = ε
1 2

si x = x 0 , a 6= ε.

;

Il est alors évident que l’automate accepte tous les mots qui seraient acceptés
individuellement par N1 ou N2 . ä

Exercice 3.3.3. Donner une interprétation graphique schématique de la dé-


monstration précédente.

Théorème 3.3.4. La classe des langages réguliers est fermée par


1. concaténation,
2. clôture monoïdale.

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13


3.4 Expressions régulières 38

Démonstration. 1. Soient M i = (X1 , A, δi , x 0i , F1 ), i = 1, 2 deux automates fi-


nis non-déterministes acceptant respectivement les langages L i . On construit
un automate M = (X1 t X2 , A, δ, x 01 , F2 ) ayant comme espace des états X la
réunion disjointe des X1 et X2 et comme fonction de transition

δ (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

Alors, il est évident que l’automate M accepte le langage L 1 L 2 .


2. Soit M = (X, A, δ, x 0 , F) un automate fini non-déterministe acceptant le
langage L. On construit l’automate N = (Xt{x̂}, A, δ, x̂, Ft{x̂}) ayant comme
fonction de transition

δ (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= ε.

;

L’automate N admet alors le langage L ∗ .

Exercice 3.3.5. Donner une « démonstration » graphique du théorème précé-


dent en représentant les automates comme de boîtes noires ayant comme en-
trée leur état initial et comme sortie leurs ensembles d’états finaux.

3.4 Expressions régulières

Supposons que A = {0, 1}. Des expressions de la forme (0 ∪ 1)0∗ ou (0 ∪ 1)∗


sont connues sous le nom d’expressions régulières et représentent des sous-
ensembles spécifiques de A∗ (i.e. des langages). La première désigne le langage
des mots de longueur supérieure à 1 qui commencent par 0 ou par 1 et se ter-
minent par un nombre arbitraire de zéros ; la seconde désigne l’ensmble A∗
lui-même. Plus généralement

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,
– ε,

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13


3.4 Expressions régulières 39

– ;,
– 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.

Dans la définition précédente, si R 1 = a, R 2 = ε, les langage décrit par R 1 sera


{a} et par R 2 sera {ε} ; ces langages sont composés des uniques mots a ou ε. La
relation R = ; décrira le langage vide. On peut craindre que la définition pré-
cédente soit circulaire. Cependant, lorsque nous disons que R s’écrit comme
R 1 ◦ R 2 , par exemple, cela signifie que R 1 et R 2 ont une longueur de définition
plus courte que R ; par conséquent, il s’agit d’une définition récursive, pas cir-
culaire. Signalons enfin qu’en l’absence de parenthèses, la préséance des opé-
rations est ∗ , ◦, ∪. On distingue enfin entre l’expression régulière R et le langage
L (R) décrit par l’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.

On montre ce théorème en deux étapes, en établissant les deux lemmes sui-


vants.

Lemme 3.4.3. Si un langage est décrit par une expression régulière R, alors il est
régulier.

Démonstration. Nous convertissons R en automate fini non-déterministe en


considérant les 6 cas énumérés ci-dessus pour la forme d’une expression régu-
lière.
a
– R = a, pour un a ∈ A. Alors L (R) = {a} et l’automate M = start
accepte ce langage.
– R = ε. Alors L (R) = {ε} et l’automate M = start accepte ce lan-
gage.
– R = ;. Alors L (R) = ; et l’automate M = start « accepte » ce
langage.
– Les cas R = R 1 ∪ R 2 , R = R 1 R 2 ou R = R 1∗ sont alors construits par récur-
rence à partir des 3 cas précédents car les R 1 , R 2 apparaissant dans ces
expressions sont nécessairement des expressions régulières plus simples
(plus courtes) que R.

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13


3.4 Expressions régulières 40

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.

La démonstration de ce lemme — qui sera donnée un peu plus loin — re-


pose sur une suite de transformations qui modifient localement un automate
fini déterministe en automate fini non-déterministe généralisé. Ce dernier est
un automate non-déterministe dont les arêtes peuvent être étiquetées par des
expressions régulières au lieu de lettres de A ∪{ε} ; l’automate lit alors des blocs
de symboles en entrée (comme le ferait un automate non-déterministe ordi-
naire) et accepte le bloc si son état interne devient un état d’acceptation.

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

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13


3.4 Expressions régulières 41

défini par le quintuplet (Y, R, δ, x d , {x f }), où, pour y, y 0 ∈ Y et R ∈ R, δ(y, R) = y 0


si, et seulement si, etiq(y, y 0 ) = R, où

etiq : (Y \ {x f }) × (Y \ {x d }) → R

est la fonction d’étiquetage des arêtes.

Notation 3.4.6. Étant donné que la connaissance de l’une des fonctions δ et


etiq détermine l’autre, nous utiliserons indifféremment les quintiplets (Y, R, δ, x d , {x f })
ou (Y, R, etiq, x d , {x f }) pour désigner un automate M fini non-déterministe gé-
néralisé. On note AFNG la classe de ces automates.

Nous sommes maintenant en mesure de montrer le lemme 3.4.4, à l’aide de


l’algorithme récursif 3.4.7 ci-dessous.

Algorithme 3.4.7. afn2regex


Requiert: M = (Y, R, etiq, x d , {x f }) ∈ AFNG.
Retourne: Expression régulière R ∈ R.
k ← cardY
si k=2 alors
R ← etiq(x d , x f )
retourner R
sinon
choisir y ∈ Y \ {x d , x f }
Y ← Y \ {y}
répéter
choisir (x, z) ∈ (Y \ {x f , y}) × (Y \ {x d , y})
R 1 ← etiq(x, y)
R 2 ← etiq(y, y)
R 3 ← etiq(y, z)
R 4 ← etiq(x, z)
etiq(x, z) ← R 1 R 2∗ R 3 ∪ R 4
jusqu’à ce que les couples (x, z) aient balayé la totalité de (Y \ {x f , y}) × (Y \
{x d , y})
M ← (Y, R, etiq, x d , {x f })
afn2regex(M )
fin si

Démonstration du lemme 3.4.4 : Si L est un langage régulier, alors il est accepté


par un automate M ∈ AFD ⊆ AFNG. En appliquant l’algorithme 3.4.7, nous obte-
nons une expression régulière R qui décrit le langage L = L (R). ä

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13


3.5 Exercices 42

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

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13


3.5 Exercices 43

(b) 1∗ (001+ )∗ (avec trois états).

5. Montrer que tout automate fini non-déterministe avec plusieurs états


d’acceptation peut être converti en un automate fini non-déterministe
équivalent avec un seul état d’acceptation.
6. 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 automates déterministes équivalents.
ε
start 1 a
start 1 2
b a,b a
a a,b
2 3 b

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+ .

10. Soit A = {a, b, c, d }.

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13


3.5 Exercices 44

a, b, c, d

(a) Soient M 1 = start et

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.

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13


3.5 Exercices 45

(d) Maintenant, les éléments de A, en sus des relations a = c −1 et b =


d −1 , vérifient aussi la relation ab = ba. Quel est le groupe engendré
par L (M 1 ) ou L (M 2 ) ?

/Users/dp/a/ens/lcm1/lcm1-autom.tex dmàj le 4 février 2014 à 14:13

Vous aimerez peut-être aussi