Vous êtes sur la page 1sur 19

Plan

Introduction

Langages reconnaissables

Langages formels

Automates darbres

Paul Gastin

Grammaires

Paul.Gastin@lsv.ens-cachan.fr

Langages alg
ebriques

http://www.lsv.ens-cachan.fr/~gastin/Langages/

L3 Informatique Cachan
2011-2012

Automates `
a pile
Analyse syntaxique
Fonctions s
equentielles
1/81

Motivations

Bibliographie
[1] Alfred V. Aho, Ravi Sethi et Jerey D. Ullman.
Compilers: principles, techniques and tools.
Addison-Wesley, 1986.

Definition :
1. Description et analyse (lexicale et syntaxique) des langages (programmation,
naturels, . . . )
2. Mod`eles de calcul
3. Abstractions mathematiques simples de phenom`enes complexes dans le but de
I
I

2/81

Prouver des proprietes.


Concevoir des algorithmes permettant de tester des proprietes ou de resoudre
des probl`emes.

4. Types de donnees

[2] Alfred V. Aho et Jerey D. Ullman.


The theory of parsing, translation, and compiling. Volume I: Parsing.
Prentice-Hall, 1972.
[3] Luc Albert, Paul Gastin, Bruno Petazzoni, Antoine Petit, Nicolas Puech et
Pascal Weil.
Cours et exercices dinformatique.
Vuibert, 1998.
[4] Jean-Michel Autebert.
Theorie des langages et des automates.
Masson, 1994.

3/81

4/81

Bibliographie

Bibliographie
[10] Dexter C. Kozen.
Automata and Computability.
Springer, 1997.
Pin.
[11] Jean-Eric
Automates finis et applications.

Polycopie du cours `a lEcole


Polytechnique, 2004.

[5] Jean-Michel Autebert, Jean Berstel et Luc Boasson.


Context-Free Languages and Pushdown Automata.
Handbook of Formal Languages, Vol. 1, Springer, 1997.
[6] Jean Berstel.
Transduction and context free languages.
Teubner, 1979.
[7] Olivier Carton.
Langages formels, calculabilite et complexite.
Vuibert, 2008.

[12] Grzegorz Rozenberg et Arto Salomaa, editeurs.


Handbook of Formal Languages,
Vol. 1, Word, Language, Grammar,
Springer, 1997.

[8] Hubert Comon, Max Dauchet, Remi Gilleron, Florent Jacquemard, Denis
Lugiez, Sophie Tison, Marc Tommasi.
Tree Automata Techniques and Applications.
http://www.grappa.univ-lille3.fr/tata/

[13] Jacques Sakarovitch.


ements de theorie des automates.
El
Vuibert informatique, 2003.

[9] John E. Hopcroft et Jerey D. Ullman.


Introduction to automata theory, languages and computation.
Addison-Wesley, 1979.

[14] Jacques Stern.


Fondements mathematiques de linformatique.
Mc Graw Hill, 1990.
5/81

Plan

6/81

Bibliographie

Introduction
2

[4] Jean-Michel Autebert.


Theorie des langages et des automates.
Masson, 1994.

Langages reconnaissables
Mots
Langages
Automates deterministes
Automates non deterministes
Automates avec "-transitions
Proprietes de fermeture
Langages rationnels
Crit`eres de reconnaissabilite
Minimisation
Morphismes et congruences

[7] Olivier Carton.


Langages formels, calculabilite et complexite.
Vuibert, 2008.
[9] John E. Hopcroft et Jerey D. Ullman.
Introduction to automata theory, languages and computation.
Addison-Wesley, 1979.
[10] Dexter C. Kozen.
Automata and Computability.
Springer, 1997.
[13] Jacques Sakarovitch.
ements de theorie des automates.
El
Vuibert informatique, 2003.

Automates darbres
Grammaires
7/81

Langages alg
ebriques

8/81

Mots

Mots

A ou : alphabet (ensemble fini).


u 2 : mot = suite finie de lettres.

Ordres partiels :
I
I

: concatenation associative.
" ou 1 : mot vide, neutre pour la concatenation.
( , ) : monode libre engendre par .

I
I

|u| : longueur du mot u.


| | : ! N est le morphisme defini par |a| = 1 pour a 2 .
|u|a : nombre de a dans le mot u.

u prefixe de v si 9u0 , v = uu0


u suffixe de v si 9u0 , v = u0 u

u facteur de v si 9u0 , u00 , v = u0 uu00

u sous-mot de v si v = v0 u1 v1 u2 un vn avec ui , vi 2 et u = u1 u2 un

Theor`eme : Higman
Lordre sous-mot est un bon ordre, i.e.
(de toute suite infinie on peut extraire une sous-suite infinie croissante)
(ou tout ensemble de mots a un nombre fini delements minimaux)

u
: miroir du mot u.

9/81

Langages

10/81

Langages

Langage = sous-ensemble de .
Exemples.
n+1
Iteration : L0 = {"},
= Ln S
L = L Ln ,
S L
L = n 0 Ln , L+ = n>0 Ln .
Exemples : n , , (2 ) .

Operations sur les langages : soient K, L


Ensemblistes : union, intersection, complement, dierence, . . .

Quotients : K 1 L = {v 2 | 9u 2 K, u v 2 L}
L K 1 = {u 2 | 9v 2 K, u v 2 L}

Concat
enation : K L = {u v | u 2 K et v 2 L}
La concatenation est associative et distributive par rapport `a lunion.
|K L| |K| |L|
notion de multiplicite, dambigute

11/81

12/81

Automates d
eterministes

Automates d
eterministes

Definition : Automate deterministe


A = (Q, , i, F )
Q ensemble fini detats, i 2 Q etat initial, F Q etats finaux,
: Q ! Q fonction de transition (totale ou partielle).

Langage accepte (reconnu) par A : L(A) = {u 2 | (i, u) 2 F }.


Exemples.

Exemples.
u

Definition : Reconnaissables

Calcul de A sur un mot u = a1 an : q0 ! qn


a

1
q0 !
q1 qn

avec qi = (qi

1 , ai )

Un langage L est reconnaissable, sil existe un automate fini A tel que L =


L(A).

an

! qn

pour tout 0 < i n.

On note Rec( ) la famille des langages reconnaissables sur .

Generalisation de `a Q :
(q, ") = q,
(q, u a) = ( (q, u), a) si u 2 et a 2 .
13/81

14/81

Automates non d
eterministes

Automates non d
eterministes
Theor`eme : Determinisation

Exemple : automate non deterministe pour {aba}

Soit A un automate non deterministe. On peut construire un automate deterministe


B qui reconnat le meme langage (L(A) = L(B)).

Definition : Automate non deterministe

Preuve

A = (Q, T, I, F )
Q ensemble fini detats, I Q etats initiaux, F Q etats finaux,
T Q Q ensemble des transitions.
On utilise aussi : Q ! 2Q .
a

1
Calcul de A sur un mot u = a1 an : q0 !
q1 qn
(qi 1 , ai , qi ) 2 T pour tout 0 < i n.
Langage accepte (reconnu) par A :

Automate des parties


Exemple : automate deterministe pour {aba}
On appelle determinise de A lautomate des parties emonde.

an

! qn avec

Exercices :
1. Donner un automate non deterministe avec n etats pour L = an

2. Montrer que tout automate deterministe reconnaissant ce langage L a au


moins 2n 1 etats.

L(A) = {u 2 | 9 i ! f calcul de A avec i 2 I et f 2 F }.

3. Donner un automate non deterministe `a n etats tel que tout automate


deterministe reconnaissant le meme langage a au moins 2n 1 etats.
15/81

16/81

Automates non d
eterministes

Automates avec "-transitions


Exemple.

Un automate (D ou ND) est complet si 8p 2 Q, 8a 2 , (p, a) 6= ;.


On peut toujours completer un automate.
Un automate (D ou ND) est emonde si tout etat q 2 Q est
I
I

Definition : Automate avec "-transitions


u

accessible dun etat initial : 9i 2 I, 9u 2 tels que i ! q,


u

co-accessible dun etat final : 9f 2 F , 9u 2 tels que q ! f

On peut calculer lensemble Acc(I) des etats accessibles `a partir de I et lensemble


coAcc(F ) des etats co-accessibles des etats finaux.

Corollaire :

A = (Q, T, I, F )
Q ensemble fini detats, I Q etats initiaux, F Q etats finaux,
T Q ( [ {"}) Q ensemble des transitions.
a

1
Un calcul de A est une suite q0 !
q1 qn
tout 0 < i n.

an

! qn avec (qi

1 , ai , qi )

2 T pour

Ce calcul reconnat le mot u = a1 an (les " disparaissent).

Soit A un automate.

1. On peut construire B emonde qui reconnat le meme langage.

Remarque : Soit A un automate. On peut construire un automate sans


"-transition B qui reconnat le meme langage.

2. On peut decider si L(A) = ;.

17/81

18/81

D
ecision

Propri
et
es de fermeture

Presque tout est decidable sur les langages reconnaissables donnes par des
automates.

Op
erations ensemblistes

Definition :

Proposition :

Probl`eme du vide : etant donne un automate fini A, decider si L(A) = ;.

La famille Rec( ) est fermee par les operations ensemblistes (union, complement,
. . . ).

Probl`eme du mot : etant donnes un mot w 2 et un automate A, decider si


w 2 L(A).

Theor`eme : vide et mot


Le probl`eme du vide et le probl`eme du mot sont decidables en NLOGSPACE pour
les langages reconnaissables donnes par automates (deterministe ou non, avec ou
sans "-transitions).

Preuve
Union : construction non deterministe.
Intersection : produit dautomates (preserve le determinisme).
Complement : utilise la determinisation.

Corollaire :
On peut decider de legalite ou de linclusion de langages reconnaissables.
Plus precisement, soient L1 , L2 2 Rec( ) donnes par deux automates A1 et A2 .
On peut decider si L1 L2 .

Preuve
Cest de laccessibilite.

19/81

20/81

Propri
et
es de fermeture

Propri
et
es de fermeture

Op
erations li
ees `
a la concat
enation

Si L , on note

Proposition :

Rec( ) est fermee par concatenation et iteration.

I
I

Concat
enation :
Methode 1 : union disjointe des automates et ajout de transitions.
Methode 2 : fusion detats.
On suppose que les automates ont un seul etat initial sans transition entrante et
un seul etat final sans transition sortante.

Pref(L) = {u 2 | 9v 2 , uv 2 L},
Su(L) = {v 2 | 9u 2 , uv 2 L},

Fact(L) = {v 2 | 9u, w 2 , uvw 2 L}.

Proposition :
Rec( ) est fermee par prefixe, suffixe, facteur.

Preuve

It
eration :
Methode 1 : ajout de transitions. Ajouter un etat pour reconnatre le mot vide.
Methode 2 : ajout d"-transitions.

Modification des etats initiaux et/ou finaux.

21/81

22/81

Propri
et
es de fermeture

Propri
et
es de fermeture
Morphismes
Soient A et B deux alphabets et f : A ! B un morphisme.
Pour L A , on note f (L) = {f (u) 2 B | u 2 L}.
Pour L B , on note f 1 (L) = {u 2 A | f (u) 2 L}.

Proposition :
La famille Rec( ) est fermee par quotients gauches et droits :
Soit L 2 Rec( ) et K arbitraire.
Les langages K 1 L et L K 1 sont reconnaissables.

Proposition :
Preuve

La famille des langages reconnaissables est fermee par morphisme et morphisme


inverse.

Modification des etats initiaux et/ou finaux.

1. Si L 2 Rec(A ) et f : A ! B est un morphisme alors f (L) 2 Rec(B ).


2. Si L 2 Rec(B ) et f : A ! B est un morphisme alors f

Exercice :
Montrer que si de plus K est reconnaissable, alors on peut eectivement calculer
les nouveaux etats initiaux/finaux.

23/81

(L) 2 Rec(A ).

Preuve
Modification des transitions de lautomate.

24/81

Propri
et
es de fermeture

Propri
et
es de fermeture
Proposition :

Definition : Substitutions

La famille des langages reconnaissables est fermee par substitution rationnelle et


substitution rationnelle inverse.

Une substitution est definie par une application : A ! P(B ).


Elle setend en un morphisme : A ! P(B ) defini par
(") = {"} et
(a1 an ) = (a1 ) (an ).

1. Si L 2 Rec(A ) et
(L) 2 Rec(B ).

2. Si L 2 Rec(B ) et : A ! Rec(B ) est une substitution rationnelle alors


1
(L) 2 Rec(A ).

: A ! Rec(B ) est une substitution rationnelle alors

Pour L A , on note (L) = u2L (u).


1
Pour L B , on note
(L) = {u 2 A | (u) \ L 6= ;}.
Une substitution est rationnelle (ou reconnaissable) si elle est definie par une application : A ! Rec(B ).

Preuve
1. On remplace des transitions par des automates.
2. Plus difficile.

25/81

Langages rationnels

26/81

Langages rationnels

Syntaxe pour representer des langages.

Definition : Semantique
On definit L : E ! P( ) par

Soit un alphabet et une copie de .


Une expression rationnelle (ER) est un mot sur lalphabet [ {(, ), +, , , ;}

B : L(;) = ; et L(a) = {a} pour a 2 ,

I : L((E + F )) = L(E) [ L(F ), L((E F )) = L(E) L(F ) et


L((E )) = L(E) .

Definition : Syntaxe

Un langage L est rationnel sil existe une ER E telle que L = L(E).


On note Rat( ) lensemble des langages rationnels sur lalphabet .

Lensemble des ER est defini par


B : ; et a pour a 2 sont des ER,

I : Si E et F sont des ER alors (E + F ), (E F ) et (E ) aussi.

Remarque : Rat( ) est la plus petite famille de langages de contenant ; et


{a} pour a 2 et fermee par union, concatenation, iteration.

On note E lensemble des expressions rationnelles.

27/81

28/81

Langages rationnels

Langages rationnels

Definition :

Theor`eme : Kleene, 1936

Deux ER E et F sont equivalentes (note E F ) si L(E) = L(F ).

Rec( ) = Rat( )

Exemples : commutativite, associativite, distributivite, . . .

Preuve

Peut-on trouver un syst`eme de r`egles de reecriture caracterisant lequivalence des


ER ?
Oui, mais il nexiste pas de syst`eme fini.
Comment decider de lequivalence de deux ER ?
On va utiliser le theor`eme de Kleene.

: les langages ; et {a} pour a 2 sont reconnaissables et la famille


Rec( ) est fermee par union, concatenation, iteration.
: Algorithme de McNaughton-Yamada.

Corollaire :
Lequivalence des expressions rationnelles est decidable.

Abus de notation :
On ne souligne pas les lettres de : ((a + b) ).
On enl`eve les parenth`eses inutiles : (aa + bb) + (aab) .
On confond langage rationnel et expression rationnelle.

Preuve
Il suffit de linclusion Rat( ) Rec( ).

29/81

30/81

Crit`
eres de reconnaissabilit
e

Crit`
eres de reconnaissabilit
e

Y a-t-il des langages non reconnaissables ?


Oui, par un argument de cardinalite.

Lemme : iteration
Soit L 2 Rec( ). Il existe N
1. si |x|

Comment montrer quun langage nest pas reconnaissable ?

2. si x = w1 w2 w3 avec |w2 | N alors 9u1 , u2 , u3 2 tels que w2 = u1 u2 u3 ,


u2 6= " et w1 u1 u2 u3 w3 L.

Exemples.
1. L1 = {an bn | n

0 tel que pour tout x 2 L,

N alors 9u1 , u2 , u3 2 tels que x = u1 u2 u3 , u2 6= " et u1 u2 u3 L.

3. si x = uv1 v2 . . . vN w avec |vi | 1 alors il existe 0 j < k N tels que


uv1 . . . vj (vj+1 . . . vk ) vk+1 . . . vN w L.

0},

2. L2 = {u 2 | |u|a = |u|b },

Preuve

3. L3 = L2 \ ( (a3 + b3 ) )

Sur lautomate qui reconnat L.

Preuves : `a la main (par labsurde).

Application `a L1 , L2 , L3 et aux palindromes L4 = {u 2 | u = u


}.

31/81

32/81

Crit`
eres de reconnaissabilit
e

Crit`
eres de reconnaissabilit
e
Theor`eme : Ehrenfeucht, Parikh, Rozenberg ([13, p. 128])

Exercice : Puissance des lemmes diterations

Soit L . Les conditions suivantes sont equivalentes :

1. Montrer que les langages suivants satisfont (1) mais pas (2) :

1. L est reconnaissable

K1 = {w 2 {a, b} | |w|a = |w|b }


K10

2. Il existe N > 0 tel que pour tout mot x = uv1 . . . vN w 2 avec |vi |
existe 0 j < k N tels que pour tout n 0,

p n

= {b a | p > 0 et n est premier} [ {a}

x2L

2. Montrer que le langage suivant satisfait (2) mais pas (3) :


K2 = {(ab)n (cd)n | n

uv1 . . . vj (vj+1 . . . vk )n vk+1 . . . vN w 2 L

ssi

3. Il existe N > 0 tel que pour tout mot x = uv1 . . . vN w 2 avec |vi |
existe 0 j < k N tels que

0} [ {aa, bb, cc, dd, ac}

3. Montrer que le langage suivant satisfait (3) mais nest pas reconnaissable :

x2L

K3 = {udv | u, v 2 {a, b, c} et soit u 6= v soit u ou v contient un carre}

1, il

ssi

1, il

uv1 . . . vj vk+1 . . . vN w 2 L

Remarque : la preuve utilise le theor`eme de Ramsey.

33/81

34/81

Crit`
eres de reconnaissabilit
e

Minimisation

Pour montrer quun langage nest pas reconnaissable, on peut aussi utiliser les
proprietes de cl
oture.

Il y a une infinite dautomates pour un langage donne.


Exemple : automates D ou ND pour a .

Exemples : Sachant que L1 nest pas reconnaissable.


I

L 2 \ a b = L 1 .
Donc L2 nest pas reconnaissable.

Soit f : ! defini par f (a) = aab et f (b) = abb.


On a f 1 (L3 ) = L2 .
Donc L3 nest pas reconnaissable.

Questions :

L5 = {u 2 | |u|a 6= |u|b } = L2 .
Donc L5 nest pas reconnaissable.

35/81

Y a-t-il un automate canonique ?

Y a-t-il unicite dun automate minimal en nombre detats ?

Y a-t-il un lien structurel entre deux automates qui reconnaissent le meme


langage ?

36/81

Automate des r
esiduels

Morphismes dautomates

Definition : Residuels
Soient u 2 et L .
Le residuel de L par u est le quotient u

Definition : Morphismes dautomates DC (deterministes complets)

L = {v 2 | uv 2 L}.

Soient A = (Q, , i, F ) et A0 = (Q0 , 0 , i0 , F 0 ) deux automates DC.


Une application ' : Q ! Q0 est un morphisme si
a
Q
0
I 8q 2 Q, 8a 2 , '( (q, a)) =
('(q), a),

I '(i) = i0 ,
a!
I ' 1 (F 0 ) = F , i.e., q 2 F () '(q) 2 F 0 .
Q!

Exemple : Calculer les residuels des langages


Lj = {u = u0 u1 un 2 {0, 1} | u2 =

Pn

i
i=0 ui 2 j[3]}.

Definition : Automate des residuels

Soit L . Lautomate des residuels de L est R(L) = (QL ,


I
I

QL = {u
L (u

L | u 2 },

L, a) = a

iL = L = "

FL = {u

(u

L) = (ua)

L , iL , FL ) avec

L} = {u

Q!

A et A0 sont isomorphes sil existe un morphisme bijectif de A vers A0 .

Remarques :

L,

Deux automates DC sont isomorphes sils ne di`erent que par le nom des etats.
Si ' : A ! A0 est un morphisme bijectif, alors ' 1 : A0 ! A est un morphisme.
Si ' : A ! A0 et : A0 ! A00 sont des morphismes, alors
' : A ! A00 est un
morphisme.

L,

L|"2u

L | u 2 L}.

Theor`eme :
Un langage L est reconnaissable ssi L a un nombre fini de residuels.
37/81

38/81

Morphismes et R
esiduels

Quotients

Definition : Quotients

Proposition : morphisme et residuels


Soit A = (Q, , i, F ) un automate DCA (DC et accessible) reconnaissant L.
Pour q 2 Q, on note L(A, q) = {u 2 | (q, u) 2 F }.
Lapplication ' : Q ! QL definie par '(q) = L(A, q) est un morphisme surjectif
(canonique) de A vers R(L).

Exemple :

Soient A et A0 deux automates DC. On dit que A0 est un quotient de A, et on note


A0 A, sil existe un morphisme surjectif ' : A ! A0 .

Proposition :
I
I

Soit A un automate DCA qui calcule naturellement (6 etats) u2 [3] et accepte L1


(cf. exemple precedent). Calculer le morphisme de A vers R(L1 ).

39/81

est un ordre partiel sur les automates DC.


Si A0

A alors L(A) = L(A0 ).

But : Soit L 2 Rec . Montrer quil existe un unique (`a isomorphisme pr`es)
automate minimal pour parmi les automates DC reconnaissant L.

40/81

Minimalit
e de lautomate des r
esiduels

Congruences et quotients
Definition : Congruence sur les automates
Soit A un automate DC. Une relation dequivalence sur Q est une congruence si
I

Theor`eme : Residuels et quotients


Soit L 2 Rec( ).
1. Si A est un automate DCA qui reconnait L, alors R(L)

8p, q 2 Q, 8a 2 , p q implique (p, a) (q, a),

F est sature par , i.e., 8p 2 F , [p] = {q 2 Q | p q} F .

Le quotient de A par est A/ = (Q/,


o`
u est definie par ([p], a) = [ (p, a)].

A.

2. R(L) est minimal pour lordre quotient ( ) parmi les automates DCA
reconnaissant L.
3. Soit A un automate DC reconnaissant L avec un nombre minimal detats. A
est isomorphe `a R(L).

Probl`eme : comment calculer R(L) ?

, [i], F/)

Remarque : [ ] : A ! A/ est un morphisme surjectif.

Proposition :
Soient A = (Q, , i, F ) et A0 = (Q0 , 0 , i0 , F 0 ) deux automates DC.
Soit ' : Q ! Q0 une application et ' lequivalence associee definie par p q si
'(p) = '(q).
I
I

Si ' est un morphisme alors est une congruence.

Si de plus ' est surjectif, alors A0 est isomorphe `a A/' .

Ceci explique que lon nomme quotient limage par un morphisme surjectif.
41/81

42/81

Equivalence
de Nerode

Algorithme de Moore
Pour n
Q par

Definition : Equivalence
de Nerode
Soit A = (Q, , i, F ) un automate DCA reconnaissant L.
Lequivalence de Nerode est la congruence associee au morphisme de A sur R(L):
p q ssi L(A, p) = L(A, q)
ssi 8w 2 ,
(p, w) 2 F () (q, w) 2 F
Donc le quotient A/ (appele automate de Nerode) est isomorphe `a R(L).

Corollaire : Soit L 2 Rec( ).

1. On calcule lautomate minimal de L avec lequivalence de Nerode `a partir de


nimporte quel automate DCA qui reconnat L.
Remarque : On sait decider si p q.

2. On peut decider de legalite de langages reconnaissables (L(A) = L(B) avec


A et B automates DCA) en testant legalite des automates minimaux associes
(A/ = B/).

0, on note n = 0 [ 1 [ [ n et on definit lequivalence n sur

ssi L(A, p) \ n = L(A, q) \ n


ssi 8w 2 n ,
(p, w) 2 F () (q, w) 2 F
Remarque 1 : 0 a pour classes dequivalence F et Q \ F .
Remarque 2 : n+1 est plus fine que n , i.e., p n+1 q =) p n q.
T
Remarque 3 : = n 0 n , i.e., p q ssi 8n 0, p n q.
p n q

Proposition : Soit A automate DC


I
I
I

p n+1 q

ssi

p n q et 8a 2 , (p, a) n (q, a).

Si n = n+1 alors = n .
= |Q|

si ; =
6 F 6= Q et = 0 sinon.

Permet de calculer lequivalence de Nerode par raffinements successifs.

Exercice :
Calculer lautomate minimal par lalgorithme dHopcroft de raffinement de partitions
en O(n log(n)) (lalgo naf est en O(n2 ) avec n = |Q|).

Probl`eme : comment calculer le quotient de Nerode efficacement ?


43/81

44/81

Morphismes

Morphismes

Definition : Reconnaissance par morphisme


I

Theor`eme :

' : ! M morphisme dans un monode fini M .


L est reconnu par ' si L = ' 1 ('(L)).

Soit L . L est reconnaissable par morphisme ssi L est reconnaissable par


automate.

L est reconnu par un monode fini M sil existe un morphisme


' : ! M qui reconnat L.

Corollaire :
Rec( ) est fermee par morphisme inverse.

L est reconnaissable par morphisme sil existe un monode fini qui


reconnat L.

Exemple :

Definition : Monode de transitions


Soit A = (Q, , , i, F ) un automate deterministe complet.
Le monode de transitions de A est le sous monode de (QQ , ) engendre par les
applications a : Q ! Q (a 2 ) definies par a (q) = (q, a) et avec la loi de
composition interne f g = g f .

Proposition :

Si L est reconnaissable alors

L = {v 2 | v 2 2 L} est aussi reconnaissable.

Exercices :
1. Montrer que Rec( ) est fermee par union, intersection, complementaire.
2. Montrer que Rec( ) est fermee par quotients.
Si L 2 Rec( ) et K alors K 1 L et LK

sont reconnaissables.

3. Montrer que Rec( ) est fermee par concatenation (plus difficile).

Le monode de transitions de A reconnat L(A).


45/81

46/81

Congruences

Morphismes et Congruences

Definition :

Exercice :

Soit L et une congruence sur .


Le langage L est sature par si 8u 2 , 8v 2 L, u v implique u 2 L.

Soit L un langage reconnaissable. Montrer que le langage


L0 = {v 2 | v |v| 2 L}

Theor`eme :
Soit L . L est reconnaissable ssi L est sature par une congruence dindex fini.

est aussi reconnaissable.

Definition : Congruence syntaxique

Exercice : Automate `a double sens (Boustrophedon)

Soit L .

Un automate Boustrophedon est un automate fini non deterministe qui, `a chaque


transition, peut deplacer sa tete de lecture vers la droite ou vers la gauche.
De facon equivalente, cest une machine de Turing `a une seule bande qui necrit pas
sur cette bande.

u L v

si

8x, y 2 , xuy 2 L () xvy 2 L.

Theor`eme :

1. Montrer que tout langage accepte par un automate Boustrophedon est en fait
rationnel.

Soit L .
I
I
I

L sature L.

2. Montrer qu`a partir dun automate Boustrophedon ayant n etats, on peut


eectivement construire un automate deterministe classique equivalent ayant
2
2O(n ) etats.

L est la plus grossi`ere congruence qui sature L.


L est reconnaissable ssi L est dindex fini.

47/81

48/81

Morphismes et Congruences

Monoide syntaxique
Definition : Monoide syntaxique
Soit L . ML = / L .

Exercice : Machine de Turing et automates


Une machine de Turing qui ne modifie pas sa donnee est une MT `a une seule bande
qui ne peut pas modifier le mot dentree, mais qui peut bien s
ur ecrire sur sa bande
en dehors de la zone occupee par le mot dentree. La MT peut etre non deterministe
et ne sarrete pas forcement.
1. Montrer quune MT qui ne modifie pas sa donnee reconnat en fait un langage
rationnel.

2. Etant
donnee une MT qui ne modifie pas sa donnee, montrer que lon peut
eectivement calculer la fonction de transition dun automate fini deterministe
equivalent.

Theor`eme :
Soit L .
I

ML divise (est quotient dun sous-monode) tout monode qui reconnat L.

ML est le monode de transitions de lautomate minimal de L.

Corollaire :
On peut eectivement calculer le monode syntaxique dun langage reconnaissable.

Exercice : Congruence `a droite


1. Montrer que L est reconnaissable ssi il est sature par une congruence `a
droite dindex fini

3. Peut-on decider le probl`eme du mot pour une MT qui ne modifie pas sa


donnee ?

2. Soit u rL v si 8y 2 , uy 2 L () vy 2 L.
Montrer que rL est la congruence `a droite la plus grossi`ere qui sature L.
3. Faire le lien entre rL et lautomate minimal de L
49/81

50/81

Ap
eriodiques et sans
etoile

Sans
etoile et sans compteur

Definition : Sans etoile


La famille des langages sans etoile est la plus petite famille qui contient les langages
finis et qui est fermee par union, concatenation et complementaire.
Exemple : Le langage (ab) est sans etoile.

Definition : Compteur
Soit A = (Q, , , i, F ) un automate deterministe complet.
Lautomate A est sans compteur si

Definition : Aperiodique
0 tel que pour tout x 2 M

Un monode fini M est aperiodique si il existe n


on a xn = xn+1 .

Un langage est aperiodique sil peut etre reconnu par un monode aperiodique.

Rem: L est aperiodique si et seulement si ML est fini et aperiodique.

8w 2 , 8m

1, 8p 2 Q,

(p, wm ) = p

(p, w) = p .

Exemple : Lautomate minimal de (aa) poss`ede un compteur.

Theor`eme : Mc Naughton, Papert 1971


Un langage est sans etoile si et seulement si son automate minimal est sans compteur.

Theor`eme : Schutzenberger
Un langage est sans etoile si et seulement si son monode syntaxique est aperiodique.
Exemple : Le langage (aa) nest pas sans etoile.

Exercice :
Montrer que le langage ((a + cb a)c b) est sans etoile.

Exercice :
Montrer que le langage ((a + cb a)c b) est sans etoile.
51/81

52/81

Plan

Bibliographie

Introduction
Langages reconnaissables
3

Automates darbres
Arbres
Automates darbres
Termes
Ascendant / Descendant
Determinisme
Lemme diteration
Congruences
Minimalite

[8] Hubert Comon, Max Dauchet, Remi Gilleron, Florent Jacquemard, Denis
Lugiez, Sophie Tison, Marc Tommasi.
Tree Automata Techniques and Applications.
http://www.grappa.univ-lille3.fr/tata/

Grammaires
Langages alg
ebriques
53/81

54/81

Automates `
a pile
Analyse syntaxique

Arbres

Arbres

D
efinition : s
Arbres
Fonctions
equentielles
Soit Ap = {d1 , . . . , dp } un alphabet ordonne d1

Definition : Terminologie

dp .

Un arbre etiquete dans et darite (au plus) p est une fonction partielle t : Ap !
dont le domaine est un langage dom(t) Ap
I ferm
e par prefixe : u v et v 2 dom(t) implique u 2 dom(t),
I

ferme par fr`ere ane : di

dj et udj 2 dom(t) implique udi 2 dom(T ).

On note Tp () lensemble des arbres finis darite au plus p sur lalphabet .

La racine de larbre est le mot vide " 2 dom(t).


Un nud de larbre est un element u 2 dom(t).
Une feuille de larbre est un nud u 2 dom(t) tel que ud1 2
/ dom(t).
La fronti`ere Fr(t) (ou mot des feuilles) de larbre t est la concatenation des etiquettes
des feuilles de t.
Larite dun nud interne u 2 dom(t) est max{k | udk 2 dom(t)}
Larite dune feuille est 0.
Les fils dun nud u 2 dom(t) darite k sont les nuds ud1 , . . . , udk 2 dom(t).

Exemples :
1. Arbre representant lexpression logique

Definition inductive de Tp () (notation prefixe)

((x ! y) ^ (y _ z)) ^ (z _ x)

Si a 2 alors t = a() 2 Tp () : dom(t) = {"} et t(") = a


Si a 2 et t1 , . . . , tk 2 Tp () avec 1 k p alors t = a(t1 , . . . , tk ) 2 Tp () :
Sk
I dom(t) = {"} [
i=1 di dom(ti ),

2. Arbre representant le programme


lire a; lire b; q := 0; r := a;
Tant que b r faire
q := q+1; r := r-b
Fin tant que
55/81

t(") = a et la racine de t est darite k,

t(di v) = ti (v) pour 1 i k et v 2 dom(ti ).


56/81

Automates darbres

Automates darbres

Definition : Automate
Un automate darbres est un quadruplet A = (Q, , , F ) o`
u
I

Q est un ensemble fini detats

est un alphabet fini


S
p Qp Q est lensemble fini des transitions

I
I

Exemples : Donner des automates pour les langages darbres suivants :


1. Lensemble des arbres darite au plus p ayant un nombre pair de noeuds
internes.
2. Lensemble des arbres sur = {a, b, c} dont les noeuds internes sont darites
2 et etiquetes par c et la fronti`ere est dans (ab) .
Peut-on generaliser aux expressions rationnelles arbitraires ?

F Q est lensemble des etats finaux.

Definition : Calcul, langage


I

I
I
I

3. Lensemble des arbres darite au plus p dont les etiquettes de toutes les
branches sont dans un langage rationnel fixe L .

Un calcul de lautomate A sur un -arbre t est un Q-arbre ayant meme


domaine que t et tel que pour tout u 2 dom(t) darite n, on a
((u d1 ), . . . , (u dn ), t(u), (u)) 2 .

4. Lensemble des arbres darite au plus p dont au moins une branche est
etiquetee par un mot dun langage rationnel fixe L .

Le calcul est acceptant si (") 2 F .

5. Lensemble des arbres de la forme t = f (g(t1 ), f (t2 , a)) 2 Tp ().

L(A) est lensemble des -arbres acceptes par A.

Un langage darbre est reconnaissable sil existe un automate darbres qui


laccepte.
57/81

58/81

Grammaires et automates darbres

Termes
Definition : Un terme est un arbre avec symboles types
I
I
I

Theor`eme : du feuillage
I

Soit L un langage darbres reconnaissable.


Le langage Fr(L) des fronti`eres des arbres de L est algebrique.

F un ensemble fini de symboles de fonctions avec arites.


On note Fp les symboles darite p.

X un ensemble de variables (arite 0) disjoint de F0 (les constantes).


T (F, X ) ensemble des termes sur F et X defini inductivement par :
I
I

F0 [ X T (F , X ),
si f 2 Fn (n 1) et t1 , . . . , tn 2 T (F , X ) alors f (t1 , . . . , tn ) 2 T (F , X )

Remarque : on peut aussi utiliser une notation suffixe ou infixe parenthesee.

Soit L0 un langage algebrique propre (" 2


/ L0 ).
Il existe un langage darbres reconnaissable L tel que L0 = Fr(L).

59/81

Free(t) est lensemble des variables de t.

T (F) lensemble des termes qui ne contiennent pas de variable (termes clos).

Un terme t est lineaire sil contient au plus une occurrence de chaque variable.

Hauteur : H(x) = 0 pour x 2 X et H(f ) = 1 pour f 2 F0 et


H(f (t1 , . . . , tn )) = 1 + max(H(t1 ), . . . , H(tn )).

Taille : |x| = 0 pour x 2 X et |f | = 1 pour f 2 F0 et


|f (t1 , . . . , tn )| = 1 + |t1 | + + |tn |.
60/81

Termes

Arbres et termes
Un terme est un arbre
Un terme peut etre vu comme un arbre t etiquete dans F [ X tel que
I

Exemple : Expressions logiques

si u 2 dom(t) et t(u) 2 Fn alors u est darite n.

si u 2 dom(t) et t(u) 2 X alors u est une feuille.


La hauteur dun terme clos est la hauteur de larbre qui le represente.
La taille dun terme clos est le nombre de noeuds de larbre qui le represente.
I

F2 = {^, _, !, , . . .}, F1 = {}, F0 = {>, ?}, X = {p, q, r}


^(_((p), q), _((q), r)) = (p _ q) ^ (q _ r)

Exemples :

Exemple : Expressions arithmetiques

1. Soit F un ensemble fini de symboles de fonctions avec arites et X un


ensemble fini de variables. Le langage darbres T (F, X ) est reconnaissable.

F2 = {+, , , /, . . .}, F1 = {sin, cos, ln, !, . . .},


F0 = {0, . . . , 9} et X = {x, y, . . .}.

2. Considerons F2 = {^, _}, F1 = {}, F0 = {>, ?} et X = ;.


Lensemble des formules closes du calcul propositionnel qui sevaluent `a vrai
est reconnaissable.

+(3, (2, !(x))) = 3 + (2 x!)

3. Considerons F2 = {^, _}, F1 = {}, F0 = {>, ?} et X = {p1 , . . . , pn } fini.


Lensemble des formules satisfaisables du calcul propositionnel est
reconnaissable.
61/81

62/81

Arbres et termes

Vision ascendante
Definition : calcul ascendant
Soit A = (Q, , , F ) un automateSdarbres.
On voit comme une fonction : p Qp ! 2Q .
Letiquetage dun calcul est construit `a partir des feuilles en remontant vers la racine.

Un arbre est la projection dun terme


Soit t 2 Tp () un -arbre darite au plus p.
U
Soit F = 0ip i o`
u i est une copie de .

Soit t0 larbre ayant meme domaine que t et tel que si u 2 dom(t) est darite i et
t(u) = f alors t0 (u) = fi est la copie de f dans i .

Exemples :

1. Evaluation
dune expression logique close.
2. Arbres de la forme t = f (g(t1 ), f (t2 , a)) 2 Tp ().

t0 2 T (F) est un terme clos et t est le projete de t0 .

Remarque :

Definition : Determinisme ascendant

Un arbre de derivation nest pas toujours un terme car les r`egles associees `a une
variable nont pas forcement une longueur fixe.

Un automate A = (Q, , , F ) est deterministe ascendant si


est une fonction (partielle si A nest pas complet).

Exemple : S ! aSb + ab

Exercice :

Qp ! Q

Parmi les langages reconnaissables vus precedemment, quels sont ceux qui sont
deterministes ascendants ?
63/81

64/81

Vision descendante

Automates d
eterministes

Definition : calcul descendant

Soit A = (Q, , , I) un automate darbres. S


p
On voit comme une fonction : Q ! 2 p Q .
Letiquetage dun calcul est construit `a partir de la racine en descendant vers les
feuilles.
Letiquette de la racine doit etre dans I.
On dit que I est lensemble des etats initiaux.

Exemples :

Theor`eme : Determinisation
Soit A un automate darbres. On peut eectivement construire un automate
deterministe ascendant B tel que L(A) = L(B).

Theor`eme : Cloture
La classe des langages darbres reconnaissables est eectivement close par union,
intersection et complementaire.

1. Arbres de la forme t = f (g(t1 ), f (t2 , a)) 2 Tp ().

2. Evaluation
dune expression logique close.

Proposition :

Definition : Determinisme descendant


Un automate A = (Q, , , I) est deterministe descendant sil a un seul etat initial
et si pour tous q 2 Q, a 2 et p 0 on a | (q, a) \ Qp | 1.

La classe des langages darbres reconnaissables par un automate deterministe descendant est strictement incluse dans la classe des langages darbres reconnaissables.
Exemple : le langage {f (a, b), f (b, a)} nest pas deterministe descendant.

Exercice :
Parmi les langages reconnaissables vus precedemment, quels sont ceux qui sont
deterministes descendants ?

65/81

66/81

Automates avec "-transitions

Substitutions
Definition :
I

Definition : "-transitions
I
I

"

Lautomate peut avoir des transitions du type p ! q :


Il faut changer la definitionSdes calculs.
Vision ascendante avec : p Qp ! 2Q
0

(q1 , . . . , qp , a) =

"(

"

Q Q.

I
I
I

On peut eliminer les "-transitions

les "-transitions peuvent etre utiles dans les preuves et les constructions sur
les automates darbres.

(xi ) = ti pour 1 i n (feuille etiquetee par une variable `


a substituer),
(f ) = f pour f 2 [ X \ {x1 , . . . , xn } (autre feuille),
(f (s1 , . . . , sk )) = f ( (s1 ), . . . , (sk )) pour f 2 (noeud interne).

On dit que t[t1 /x1 , . . . , tn /xn ] est une instance de t.

(q1 , . . . , qp , a))

Une substitution est une application dun sous-ensemble fini de X dans


Tp ( [ X ).
Si = [t1 /x1 , . . . , tn /xn ] est une substitution et t un arbre alors
(t) = t[t1 /x1 , . . . , tn /xn ] est defini inductivement par :

La substitution

Si t1 , t2 sont clos, alors t[t1 /x1 , t2 /x2 ] = t[t1 /x1 ][t2 /x2 ].
En general, t[t1 /x1 , t2 /x2 ] 6= t[t1 /x1 ][t2 /x2 ].

= [t1 /x1 , . . . , tn /xn ] est close si chaque ti est clos.

Exemple : Instances dun terme


Soit s = f (g(x), f (y, a)) 2 T (F, X ).
Lensemble des termes t 2 T (F) qui sont instances de s est reconnaissable.
Generaliser `a lensemble des instances dun ensemble fini de termes lineaires.
67/81

68/81

Concat
enation darbres

Lemme dit
eration

Definition : Arbre `a trou


Un -arbre `a trou t est un ( [ {2})-arbre ayant un unique noeud etiquete 2 et ce
noeud doit etre une feuille : t : A ! [ {2}, t 1 (2) = {u} et u est une feuille.
On note T2 () lensemble des -arbres `a trou.

Lemme : iteration (pumping)


Soit L un langage darbres reconnaissable.
9n 0, 8t 2 L, si H(t) > n alors 9t1 , t2 2 T2 (), 9t3 2 T () tels que
I

Definition : Concatenation

Soit t 2 T2 () et soit t 2 T () [ T2 ().

La concatenation t t0 = t[t0 /2] est le -arbre (avec ou sans trou) obtenu en


appliquant la substitution [t0 /2] `a larbre t.
Lensemble T2 () est un monode avec comme element neutre 2.

Soit t1 larbre

et t2 larbre

.
a ! b
a
b
Le langage L = t1 t2 est reconnaissable.
Remarque : le langage Fr(L) des mots de feuilles de L est {an bn | n > 0}.

t = t1 t2 t3 ,

t1 (t2 ) t3 L,

prof 2 (t1 ) + prof 2 (t2 ) n ou prof 2 (t2 ) + h(t3 ) n.

Exemples :
I
I
I

Exemple :

t2 6= 2,

L = {f (g n (a), g n (a)) | n > 0} nest pas reconnaissable.

Lensemble des instances de f (x, x) nest pas reconnaissable.


Associativite.
Soit F2 = {f } et F0 = {a, b}.
Un langage L T (F) est associativement clos si il est ferme par la
congruence engendree par f (f (x, y), z) = f (x, f (y, z)).
Soit t1 = f (f (a, 2), b) et t2 = f (a, b).
La cloture associative de t1 t2 nest pas reconnaissable.

69/81

70/81

Congruences

Congruence syntaxique
Definition : Residuels et Congruence syntaxique
Soit L Tp () un langage darbres et s 2 Tp (). Le residuel de L par s est
L\s = {r 2 Tp,2 () | r s 2 L}.

Definition : Congruence (en haut)


Une relation dequivalence sur Tp () est une congruence si pour tous a 2 , et
t1 , . . . , tn , s1 , . . . , sn 2 Tp () avec n p on a
(81 i n, si ti ) =) a(s1 , . . . , sn ) a(t1 , . . . , tn )

La congruence syntaxique L associee `a L est definie par s L t si L\s = L\t.

Remarque :
La relation dequivalence L est bien une congruence et sature le langage L.

Proposition :

L est la plus grossi`ere congruence qui sature L.

Une relation dequivalence sur Tp () est une congruence si et seulement si pour


tout r 2 Tp,2 () et tous s, t 2 Tp (), on a s t implique r s r t.

Lemme :

71/81

Soit A = (Q, , , F ) un automate DC (deterministe, complet) reconnaissant L.


Pour t 2 Tp (), on note A(t) letat `a la racine du run de A sur t.
La relation A sur Tp () est definie par s A t si A(s) = A(t).
A est une congruence qui sature L.
Donc A et L sont dindex finis.
72/81

Congruence et reconnaissabilit
e

Automate minimal

Definition :

Lemme : Equivalence et quotient de Nerode

Soit une congruence dindex fini qui sature L Tp ().


On note [t] la classe pour dun arbre t 2 Tp ().
On definit lautomate A = (Q, , , F ) par :
I
I
I

Q = Tp ()/,

([t1 ], . . . , [tn ], a) = [a(t1 , . . . , tn )] (bien definie car congruence),

F = {[t] | t 2 L}.

Pour la congruence syntaxique, on note simplement AL = (QL , ,

L , FL )

= AL .

Lemme :
Lautomate A est DAC (deterministe, accessible, complet) et reconnat L.

Theor`eme : automate minimal

Theor`eme : Myhill-Nerode

Soit L Tp () et soit A un automate DAC reconnaissant L.


1. AL est isomorphe au quotient de Nerode A/.

Soit L Tp (). Les conditions suivantes sont equivalentes :

2. Si A a un nombre minimal detats alors AL est isomorphe `a A.

1. L est reconnaissable,

3. AL est lunique `a isomorphisme pr`es automate DAC minimal reconnaissant L.

2. L est sature par une congruence dindex fini,


3. la congruence syntaxique L est dindex fini.

Soit A = (Q, , , F ) un automate DAC reconnaissant L.


On definit ' de A dans AL par : ' : Q ! QL
q 7! [t]
si A(t) = q
Lapplication ' est bien definie et sature F .
Lequivalence de Nerode de lautomate A est definie par q q 0 si '(q) = '(q 0 ).
On definit le quotient de Nerode A/ = (Q/, , , F/) avec
([q1 ], . . . , [qn ], a) = [ (q1 , . . . , qn , a)]
La fonction de transition est bien definie.

73/81

74/81

Calcul de l
equivalence de Nerode

Exercices

Proposition :
Soit A = (Q, , , F ) un automate DAC reconnaissant L Tp ().
On definit les relations dequivalence (m )m 0 inductivement :
I

Exercice : Morphisme

Montrer que L T (F) est reconnaissable ssi il existe une F-alg`ebre finie A(F)
telle que L = ' 1 ('(L)) o`
u ' : T (F) ! A(F) est le morphisme canonique.

q 0 q si q, q 2 F ou q, q 2
/F
0

q m+1 q si q m q et 8a 2 et 8q1 , . . . , qi 1 , qi+1 , . . . , qn 2 Q on a


(q1 , . . . , qi 1 , q, qi+1 , . . . , qn , a) m (q1 , . . . , qi 1 , q 0 , qi+1 , . . . , qn , a)
\
On a alors =
m = |Q| .
I

Exercice : Probl`emes de decision et complexite


Lire la section 7 du chapitre 1 du TATA.

m 0

m
Plus precisement, q m q 0 ssi 8r 2 Tp,2
(), r tq 2 L () r tq0 2 L.
m
Avec Tp,2
() = {r 2 Tp,2 () | prof 2 (t) m}
et pour chaque q 2 Q, tq 2 Tp () tel que q = A(tq ).

75/81

76/81