Beruflich Dokumente
Kultur Dokumente
Departement de mathematiques
Th
eorie des automates
et langages formels
a
b
1
c
a
d
c
b
3
a,c,d
a
d
a,b
d
c
7
c
5
b
d
2
a,b
b,c,d
9
a,b,c,d
1
1
6
11
17
23
23
25
35
39
41
47
47
50
53
54
57
59
59
60
62
67
73
77
81
81
84
88
95
100
104
109
109
ii
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Arbres danalyse
Une illustration de lambiguite
Grammaires et langages reguliers
A propos de la hierarchie de Chomsky
Formes normales
Lemme de la pompe
Automates a` pile
Stabilite du caract`ere algebrique
Un theor`eme de Sch
utzenberger
Exercices
113
116
120
122
124
134
137
145
146
149
Bibliographie
153
155
Index
159
CHAPITRE I
Mots et langages
Ce premier chapitre introduit quelques concepts fondamentaux de la
theorie des langages formels et de la combinatoire sur les mots.
1. Premi`
eres d
efinitions
D
efinition I.1.1. Un alphabet est un ensemble fini. Un alphabet sera en
general designe par une lettre grecque majuscule. Ainsi,
(et ordonnee) de symboles. Par exemple, abbac et ba sont deux mots sur
lalphabet {a, b, c}. La longueur dun mot w est le nombre de symboles
constituant ce mot; on la note |w|. Ainsi,
|abbac| = 5 et |ba| = 2.
Lunique mot de longueur 0 est le mot correspondant a` la suite vide. Ce
mot sappelle le mot vide et on le note . Lensemble des mots sur est
note . Par exemple,
{a, b, c} = {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, . . .}.
D
efinition I.1.4. Si est une lettre de lalphabet , pour tout mot w =
w1 wk , on denote par
D
efinition I.1.5. Soit w = w1 w` un mot sur . Les mots
, w1 , w1 w2 , . . . , w1 w`1 , w1 w` = w
sont les prefixes de w. Un prefixe de w different de et de w est dit propre.
De facon semblable,
, w` , w`1 w` , . . . , w2 w` , w1 w` = w
sont les suffixes de w. Un suffixe de w est qualifie de propre sil diff`ere de
et de w. Soient 1 i j `. Le mot wi wj est un facteur du mot w. On
le note parfois w[i, j]. Une fois encore, on parle de facteur propre lorsque ce
dernier diff`ere de w et de . Lensemble des prefixes (resp. suffixes, facteurs)
de w est note Pref(w) (resp. Suff(w), Fac(w)).
Remarque I.1.6. On peut observer que puisque est un ensemble fini,
est denombrable1.
Rappelons la definition dun monode.
D
efinition I.1.7. Soient A un ensemble et : A A A une op
era-
Exemple I.1.9. Tout groupe est un monode; (N, +) est un monode qui
x, y A : f (x y) = f (x)f (y)
et
(2)
f (eA ) = eB .
1En effet, les
elements de peuvent chacun etre caracterises par un nombre
fini dindices prenant leur valeur dans des ensembles denombrables (ici, il sagit meme
densembles finis, a
` savoir ).
Remarque I.1.11. Dans le cas dun homomorphisme de groupes, la condition (2) est une consequence directe de (1) et de lexistence dinverse au
sein des groupes2. Par contre, dans le cas de monodes, la condition (2) fait
bel et bien partie de la definition dun morphisme de monodes.
D
efinition I.1.12. Soit un alphabet. On d
efinit loperation de concatenation sur de la facon suivante. Pour tous mots u = u 1 uk et
v = v1 v` , ui , vi , la concatenation de u et v, notee u.v ou simplement
uv, est le mot
wi = u i
,1 i k
.
w = w1 wk+` o`
u
wk+i = vi , 1 i `
On pose
w0
= .
| | : N
dun meme troisi`eme, i.e., sil existe un mot w et des entiers i, j tels que
u = wi et v = wj .
D
emonstration. On proc`
ede par recurrence sur la longueur de uv. Si
|uv| = 0, le resultat est immediat. Supposons a` present le resultat satisfait
pour |uv| < n. Soient u, v tels que |uv| = n. On peut meme considerer
que u 6= et v 6= car sinon, le resultat serait trivial. Si |u| = |v|, alors
il est immediat que u = v. Sinon, on peut supposer que |u| < |v| (voir
figure I.1). D`es lors, il existe u0 tel que v = u0 u et |u0 | < |v|. Ainsi,
uv = uu0 u = vu = u0 uu et donc on trouve u0 u = uu0 . Puisque |uu0 | < |uv|,
on peut appliquer lhypoth`ese de recurrence. Il existe un mot w et des
entiers p, q tels que u = w p et u0 = wq . Pour conclure, on remarque que
v = u0 u = wp+q .
2pour tout x A, f (x) = f (e x) = f (e )f (x). Do`
u la conclusion en multipliant
A
A
par f (x)1 .
On utilisera
dor
enavant
la notation
multiplicative.
v
v
u
u
iale.
On a egalement le resultat plus general suivant.
Proposition I.1.17. Si x, y, z sont des mots tels que
xy = yz
avec x non vide, alors il existe des mots u, v et un entier k 0 tels que
x = uv, y = (uv)k u = u(vu)k et z = vu.
D
emonstration. Si |x| |y|, alors nous avons la situation suivante. Ainsi,
v
x
x, z, y1 , y2
y
y
x
z
w
De l`a, on tire xw = wz avec |w| < |y| car |x| > 0. Soit |x| |w| et on
applique la premi`ere partie de la preuve, soit |x| < |w| et on peut d`es lors
appliquer lhypoth`ese de recurrence : il existe des mots u, v et un entier k
tels que
x = uv, w = (uv)k u = u(vu)k et z = vu.
Pour conclure, on remarque que
y = xw = uv(uv)k u = (uv)k+1 u.
D
efinition I.1.18. Soit w = w1 w` un mot, avec wi pour tout i.
i = 1, . . . , ` k.
On dit aussi que w est k-periodique. Un mot 1-periodiqe est constant. Par
exemple, le mot
abbabbabba
est 3-periodique.
Th
eor`
eme I.1.19 (Fine-Wilf3). Si un mot w poss`
ede deux periodes p et q
optimale :
abaab
| {z } abaab
| {z } a
| {z } abaab
est 5-periodique, 13-periodique mais est de longueur 16 = 5+13pgcd(5, 13)
1.
Pour terminer cette section, on definit, par recurrence sur la longueur
de w, loperation miroir5 de la mani`ere suivante : si |w| = 0, alors w = et
wR = ; sinon |w| > 0 et w = u, , u et wR = uR . Si w est tel
que
wR = w,
alors w est un palindrome.
2. Langages
D
efinition I.2.1. Un langage sur est simplement un ensemble (fini ou
I.2. Langages
Soit lalphabet = {0, 1}. Lensemble constitue des ecritures binaires 7 des
entiers positifs pairs est un langage sur
{10, 100, 110, 1000, 1010, 1100, 1110, . . .}
de meme que le langage forme des ecritures binaires des nombres premiers
{10, 11, 101, 111, 1011, 1101, 10001, . . .}.
Passons a` present en revue quelques operations sur les langages. Tout
dabord, puisquun langage est un ensemble, on dispose des operations ensemblistes usuelles comme lunion, lintersection ou encore la complementation.
D
efinition I.2.3. Soient L, M deux langages. La concat
enation des
LM = {uv | u L, v M }.
En particulier, on peut definir la puissance n-i`eme dun langage L, n > 0,
par
Ln = {w1 wn | i {1, . . . , n}, wi L}
et on pose L0 = {}. Par exemple, si L = {a, ab, ba, ac}, alors
est n .
D
emonstration. Cest imm
ediat.
P`
wi 2i . En general,
on ne consid`ere que des mots dont le premier symbole w` diff`ere de 0. Par convention,
lentier zero est alors represente par le mot vide.
i=0
D
efinition I.2.6. Soit L . L
etoile de Kleene de L est donnee par
L =
Li .
i0
D
emonstration. Il est clair que L v
erifie les trois proprietes. Si M
I.2. Langages
Cela signifierait alors que aq2 appartient a` {ap , aq1 } . On peut alors effectuer
la meme demarche avec {ap , aq1 , aq2 } et definir q3 si L 6= {ap , aq1 , aq2 } .
Cependant, on remarque quil y a au plus p 1 restes non nuls distincts lors
dune division euclidienne par p. Par consequent, on ne saurait effectuer ce
raisonnement indefiniment et finalement
L = {ap , aq1 , . . . , aqs }
avec s p 1.
D
efinition I.2.10. On peut
etendre les operations dobtention de prefixes,
suffixes et facteurs aux langages. Soit L un langage. On definit
[
Pref(L) =
Pref(w)
wL
wL
remarque que f est compl`etement caracterise par les images de f sur les symboles de . Si L est un langage sur , alors limage de L par le morphisme
f est
f (L) = {f (u) | u L}.
De la meme mani`ere, si M est un langage sur , alors limage inverse de M
par le morphisme f est
f 1 (M ) = {u | f (u) M }.
par
10
LR = {uR | u L}.
par
Cela signifie que Com(L) contient les mots obtenus en permutant les lettres
des mots de L. Par exemple, si L = {ab, bac, ccc}, alors
Com(L) = {ab, ba, abc, acb, bac, bca, cab, cba, ccc}.
En utilisant la fonction de Parikh introduite a` la definition I.1.4, il est clair
que
Com(L) = 1 (L).
Si L est un langage tel que Com(L) = L, alors L est dit commutatif.
Voici une derni`ere operation sur les mots et les langages.
D
efinition I.2.16. Le shuffle9 de deux mots u et v est le langage
u tt v = {u1 v1 un vn | u = u1 un , v = v1 vn , ui , vi , n 1}.
11
3. Expressions r
eguli`
eres et langages associ
es
La notion dexpression reguli`ere est dusage frequent en informatique.
En effet, on a souvent recours aux expressions reguli`eres lorsquon desire
rechercher certains motifs recurrents. Un exemple banal est celui dun repertoire contenant divers fichiers :
> ls monrepertoire/
memoire.aux
memoire.tex
memoire.dvi
picture001.jpg
memoire.old
picture002.jpg
memoire.log
picture003.jpg
picture001.jpg
presentation.exe
price-list.txt
taches.txt
rapsody.jpg
raw.jpg
0 et e appartiennent a` R ,
pour tout , appartient a` R ,
si et appartiennent a` R , alors
( + ) appartient a` R ,
(.) appartient a` R ,
appartient a` R .
li`eres :
1 = (e + (a.b)),
2 = (((a.b).a) + b ) ,
3 = ((a + b) .(a.b)).
A une expression reguli`ere, on associe un langage grace a` lapplication 11
L : R 2
par
11La notation 2 d
esigne lensemble des parties de , cest-`
a-dire lensemble des
12
I
I
I
L(1 ) = {, ab},
D
efinition I.3.4. Un langage L sur est r
egulier sil existe une expression
L = L().
13
+ = ,
e = e = ,
0 = 0 = 0,
( ) = ,
= 0 + 1 + + k + k+1 ,
( + ) = ( ) .
{ i | i A}
o`
u A N est une union finie de progressions arithmetiques.
Rappelons quune progression arithmetique est un ensemble de la forme
avec p, q N.
p + N.q = {p + n.q | n N}
13Un isomorphisme est un morphisme bijectif. Il est clair que nous avons une bijection
uniquement dans le cas dun alphabet unaire. En effet, si = {a, b}, alors |ab| = |ba| = 2
mais ab 6= ba et lapplication longueur nest donc pas injective.
14
0i<q
((p + r + i s) + N.q) P.
p + n1 q + + p + nj q = p + (j 1) p + (n1 + + nj ) q.
En effectuant la division euclidienne de n 1 + +nj par p, on trouve
n1 + + nj = m p + i, avec 0 i < p
et donc
p + n1 q + + p + nj q = p + i q + (j 1 + m q) p
avec 0 i < p.
15
appartient a` Q.
On conclut en utilisant la proposition I.3.6 et le fait que lapplication
longueur est un isomorphisme entre (N, +) et ({} , .).
|L| = {|w| : w L} N
est une union finie de progressions arithmetiques.
D
emonstration. Soit une lettre de . On d
efinit le morphisme :
{}
D
efinition I.3.10. Une partie X N est dite ultimement p
eriodique sil
n N, n X n + p X.
Le plus petit entier p satisfaisant une telle propriete est appele la periode de
X et le plus petit N correspondant est parfois appele la preperiode.
Proposition I.3.11. Une partie X N est ultimement p
eriodique si et
D
emonstration. Supposons quil existe N 0 et p > 0 tels que
n N, n X n + p X.
D`es lors, X sexprime comme une union finie de progressions arithmetiques,
[
[
X=
{x}
(x + N.p) .
xX
x<N
xX
N x<N +p
Reciproquement, si
X=
n
[
i=1
(qi + N.pi ),
16
0 1 2 3 4
p
L = {an | n N}
nest pas regulier. En effet, si ce langage etait regulier, alors
|L| = {n2 | n N}
serait une union finie de progressions arithmetiques de la forme
A=
I
[
ri + N.si
i=1
avec au moins un des si non nul. Il est clair que la difference entre deux
elements consecutifs de A est majoree par une constante
C sup{r1 , . . . , rI , s1 , . . . , sI }
effet, sil letait, lensemble des nombres premiers devrait etre ultimement
periodique14, disons de periode p et de preperiode N . Donc pour tout n
p + 1 suffisamment grand (i.e., n N ), lintervalle [n! + 2, n! + p + 1] devrait
contenir un nombre premier. Or
n! + 2, n! + 3, . . . , n! + p + 1
sont tous des nombres composes.
I.4. Exercices
17
4. Exercices
4.1. Mots et langages.
Exercice I.4.1. On d
efinit le miroir dun mot w , par recurrence sur
et
(uv)R = v R uR .
Exercice I.4.4. Il est clair que pour tout mot w, #(Pref(w)) = |w| + 1.
Quelles sont les bornes (inferieures et superieures) exactes pour #(Fac(w)).
Exercice I.4.5. Soit = {a, b} un alphabet. Quels sont les mots w
pour lesquels w 2 = w3 ?
dromes).
Exercice I.4.8. Soit L un langage. Si L = LR , cela implique-t-il
que tous les mots du langage sont des palindromes ? Justifier votre reponse
et envisager egalement le cas particulier dun alphabet unaire.
trois conditions :
I
I
I
L,
si u appartient a` L, alors aaub appartient a` L,
un mot appartient a` L seulement sil peut etre obtenu a` partir de
la premi`ere r`egle et dun nombre fini dapplications de la deuxi`eme
r`egle.
18
L et pour tout , L,
si w appartient a` L, alors pour tout , w appartient a` L,
un mot appartient a` L seulement sil peut etre obtenu a` partir de
la premi`ere r`egle et dun nombre fini dapplications de la deuxi`eme
r`egle.
(L ) = L ,
L L = L ,
A-t-on toujours LL = L ?
L L {} = L = LL {}.
I
I
I
#L.#M = #(LM )
on note
Montrer que
u m , v n .
m, n > 0
sans carre sil ne contient aucun facteur de la forme xx avec x un mot non
vide. Enumerer tous les mots sans carre de . (Que se passe-t-il dans le
cas dun alphabet contenant plus de deux lettres ?)
I.4. Exercices
19
lequation
w = ui ,
4.2. Expressions r
eguli`
eres.
eguli`ere du langage forme des
Exercice I.4.20. Donner une expression r
mots de longueur au moins 2 sur {a, b} pour lesquels tous les a eventuellement presents prec`edent les b (eventuellement presents).
eme question que la precedente, mais cette fois, le mot
Exercice I.4.21. M
vide appartient au langage.
Exercice I.4.22. Donner une expression r
eguli`ere du langage forme des
mots sur {a, b} qui ne contiennent pas le facteur ba.
Exercice I.4.23. Donner une expression r
eguli`ere du langage forme des
mots sur {a, b} qui contiennent simultanement le facteur aa et le facteur bb.
Exercice I.4.24. Donner une expression r
eguli`ere du langage forme des
mots sur {a, b} qui contiennent le facteur aa ou le facteur bb, mais pas ces
deux facteurs simultanement.
Exercice I.4.25. Donner une expression r
eguli`ere du langage forme des
mots sur {a, b} qui contiennent exactement deux fois le facteur aa. (Suggestion : attention au facteur aaa).
eguli`ere du langage forme des
Exercice I.4.26. Donner une expression r
mots sur {a, b, c} qui ne contiennent pas deux a consecutifs.
Exercice I.4.27. Donner une expression r
eguli`ere du langage forme des
mots sur {a, b} qui contiennent le facteur aa exactement une fois.
20
I
I
I
I
(ab)+ = (a b) \ ( aa + bb ).
4.3. Langages r
eguliers sur un alphabet unaire.
Exercice I.4.37. Exprimer |L()| comme une union finie de progressions
arithmetiques lorsque
I
I
I
I
= (ab) + bbb,
= (a(ba ) + a ) ,
= (ab)(ac(a + b)) ,
= ab(bbc) .
|L()| = 5 + N.3,
|L()| = N.7 (4 + N.5).
3 +2n+1
I.4. Exercices
21
CHAPITRE II
Automates
Nous avons vu au premier chapitre que les expressions reguli`eres permettent de generer ce que lon a decide dappeler les langages reguliers. Les
automates que nous allons introduire ici sont des machines permettant
de reconnatre exactement ces langages. En dautres termes, lensemble des
langages acceptes par automate fini concide avec lensemble des langages
reguliers.
1. Automates finis d
eterministes
D
efinition II.1.1. Un automate fini d
eterministe (ou AFD) est la donnee
dun quintuple
A = (Q, q0 , F, , )
o`
u
I
I
I
I
I
Nous supposerons que est une fonction totale, i.e., que est defini pour
tout couple (q, ) Q (on parle alors dAFD complet).
Nous representons un AFD A de la mani`ere suivante. Les etats de A
sont les sommets dun graphe oriente et sont representes par des cercles. Si
(q, ) = q 0 , q, q 0 Q, , alors on trace un arc oriente de q vers q 0 et de
label
q q 0 .
Les etats finals sont reperes grace a` un double cercle et letat initial est
designe par une fl`eche entrante sans label. Enfin, si deux lettres et 0 sont
telles que (q, ) = q 0 et (q, 0 ) = q 0 , on sautorise a` dessiner un unique arc
portant deux labels separes par une virgule,
, 0
q q 0 .
Cette convention sadapte aisement a` plus de deux lettres.
23
24
1
2
3
a
1
1
3
b
2
3
2
a
1
L(A) = {w | (q0 , w) F }.
Si w L(A), on dit encore que A accepte le mot w (ou que w est accepte
par A).
Ainsi, le role fondamental dun automate est daccepter ou de rejeter
des mots. Un automate partitionne lensemble des mots sur en deux
sous-ensembles
L(A) et \ L(A).
Exemple II.1.4. Si on poursuit lexemple pr
ecedent, lautomate A de la
figure II.1 accepte le mot abbab car on a, partant de letat initial, le parcours
suivant au sein de A :
a
1 1 2 3 3 2 F.
Par contre, bba nest pas accepte par A car
b
1 2 3 3 6 F.
Exemple II.1.5. Lautomate A repr
esente a` la figure II.2 accepte exactement le langage forme des mots sur lalphabet {a, b} et contenant un nombre impair de a.
(mod 2)}.
25
2
a
q.w
au lieu de (q, w) si aucune confusion nest possible.
D
efinition II.1.7. A tout mot w de correspond une unique suite d
etats
2. Automates non d
eterministes
Le mod`ele dautomate fini non deterministe generalise le cas des AFD.
Comme nous le verrons bientot, le non-determinisme permet une plus grande
souplesse bien utile dans certaines situations.
D
efinition II.2.1. Un automate fini non d
eterministe (AFND) est la don-
o`
u
I
I
I
I
I
On peut d`es a` present noter plusieurs differences entre les AFD et AFND.
Dans le cas non deterministe, il est possible davoir plus dun etat intial; les
labels des arcs ne sont plus necessairement des lettres mais bien des mots
de et enfin, on na plus une fonction de transition mais une relation de
1La terminologie anglo-saxonne consacre le mot run.
26
transition. Pour representer les AFND, nous utilisons les memes conventions
que pour les AFD.
Exemple II.2.2. Lautomate de la figure II.3 est un AFND ayant 1 et 3
a
1
a
a
ba
q` F.
et
3 2 1 1,
et
3 2 1 3
ba
1 2 1.
Ce sont les trois seules possibilites partant dun etat initial. Le mot baa
nest donc pas accepte par lautomate.
Remarque II.2.5. Dans la d
efinition dun AFND, rien nempeche davoir
des transitions vides du type
(q, , q 0 ) .
27
1 2 1 F.
Observons encore quil nest pas possible depuis letat initial de lire des mots
debutant par b. Donc, contrairement a` la situation deterministe o`
u, a` chaque
mot correspondait exactement une execution, ici, on peut avoir pour un mot
donne plus dun chemin dans le graphe, voire meme aucun.
D
efinition II.2.7. Un AFND A = (Q, I, F, , ) est qualifi
e delementaire
si pour tout (q, w, q 0 ) ,
|w| 1.
et
0 =
\ {(q, w, q 0 )}
[
(q, w1 , q1 ), (q1 , w2 , q2 ), . . . , (qk2 , wk1 , qk1 ), (qk1 , wk , q 0 )
est tel que L(A) = L(B). En repetant cette procedure pour chaque transition
(q, w, q 0 ) telle que |w| > 1, on obtient (en un nombre fini detapes) un
automate elementaire acceptant le meme langage.
28
aa
1
2
aba
b
ab
3
a
3
Il sagit dune
extension de la
notation q.w
introduite a
` la
remarque II.1.6
lensemble des etats atteints a` partir des etats de R en lisant w. Par exemple,
avec lautomate de la figure II.4, {1}.a = {1, 2} car
a
1 2 et 1 2 1.
On a aussi pour cet automate, {1}.b = .
Dans le cas particulier de w = , on a toujours
R. R.
En effet, on suppose implicitement que pour tout etat q, (q, , q) (cf.
remarque II.2.5). Autrement dit, R. est lensemble des etats atteints depuis
les etats de R sans lire de lettres.
Si L est un langage sur , on pose
[
R.L =
R.w.
wL
29
Tout dabord, pour verifier quil sagit bien dun AFD, il suffit de montrer
que est bien une fonction de transition, i.e., que pour tous u, v ,
(G, uv) = ((G, u), v).
Si au moins un des deux mots u ou v est nul, la conclusion est immediate.
Sinon, nous devons montrer que
G.uv = (G.u).v.
Il est clair que le membre de droite est inclus dans le membre de gauche.
Lautre inclusion resulte du fait que lautomate est elementaire. En effet, cette propriete est indispensable. En guise dillustration, lautomate
represente a` la figure II.7 nest pas elementaire et {1}.ab = {3, 4}, {1}.a =
{2} et ({1}.a).b = {2}.b = 3 donc
{1}.ab 6 ({1}.a).b.
Pour un AFND elementaire, les arcs ayant des labels de longueur au plus
un, une telle situation ne peut se produire.
Il nous reste a` montrer que L(A) = L(B). On proc`ede par double
inclusion. Soit w appartenant a` L(A). Cela signifie quil existe dans A
2M. O. Rabin, D. Scott, Finite automata and their decision problems, IBM J. of
G.w d
esigne
lensemble des
etats atteints
a
` partir des
etats
de G en lisant w.
30
ab
4
Figure II.7. Un automate non elementaire.
un chemin de label w debutant dans un etat initial de I (et meme dans un
etat de I.) et aboutissant dans un etat final de F . En dautres termes, par
definition de Q0 ,
Q0 .w F 6=
a
a
3
c
31
{2}
{2}
{2, 3}
{2} {2, 3}
La construction dun tel tableau peut etre facilitee en etablissant au prealable
la table de transition de lautomate. Ici, pour A, cette table est
q.a
q.b
q.c
{1, 2, 3}
2
2 {2, 3}
q
1
2
3
a
A
B
c
b,c
a,b,c
a,c
b
D
b
32
4
a
Figure II.10. un ANFD acceptant a(ba) a .
a
A
b
a,b
b
b
a
E
a
b
F
D = {4}
{4}
E = {2}
{3}
F = {3}
{2}
et on trouve lautomate de la figure II.11.
Remarque II.2.15. Il est clair que tout AFD est un cas particulier dAFND.
Par consequent, tout langage accepte par un AFD A est trivialement accepte
par un AFND (`a savoir A lui-meme). De la proposition II.2.11, nous concluons donc que les langages acceptes par les AFD et les AFND concident.
33
Nous pourrons d`es lors, par la suite, parler dun langage accepte par un
automate fini (sans autre precision).
2.1. A propos de lexplosion exponentielle. Le nombre detats
peut crotre de mani`ere exponentielle lorsquon rend deterministe un AFND.
Dans certaines situations, cette explosion du nombre detats est inevitable
et ce, meme dans le cas dun alphabet unaire.
D
efinition II.2.16. On d
efinit un AFND Ak sur un alphabet unaire {a}
comme suit. Cet automate poss`ede un unique etat initial a` partir duquel
on peut se deplacer dans k boucles disjointes. Pour i = 1, . . . , k, la i-i`eme
boucle est un cycle de longueur pi o`
u pi represente le i-`eme nombre premier.
Les etats finals sont letat initial et un etat par cycle, de mani`ere telle que
le langage accepte par Ak soit
a
a
a
a
a
a
D
emonstration. Tout dabord, un AFD compos
e dun unique cycle de
longueur N convient. En effet, si on numerote les etats de cet automate
0, . . . , N 1, alors letat initial est 0 et les etats finals correspondent aux
indices i pour lesquels il existe j {1, . . . , k} tel que
i0
(mod pj ).
Il est clair quun tel AFD accepte exactement L k . Par exemple, dans le cas
o`
u k = 3, on a lAFD represente a` la figure II.13. Dans cet automate, est
final tout etat dont lindice est multiple de 2, 3 ou 5.
A present, supposons que B est un AFD acceptant L k et poss`edant
moins de N etats. Puisque lalphabet est unaire, cet automate est de la
forme suivante :
34
1
11
7
13
17
19
23
29
Figure II.13. Un AFD acceptant L3 .
et donc
{m pj
(mod `)
On a bien s
ur aussi, quel que soit c,
(3)
{m pj c
35
pour n suffisamment grand. Or il est facile de voir que ces derniers mots
nappartiennent pas a` Lk . En effet, les puissances de pk+1 ne peuvent etre
multiples de p1 , . . . , pk . Ainsi, lautomate B ne peut accepter L k .
1
pi k 2 log k
2
q0
A
36
q0
aussi.
D
emonstration. On emploie les m
emes conventions que dans la preuve de
la proposition II.3.1. Soit A un automate fini. Lautomate non deterministe
37
q q 0
par
f ()
q q 0 .
preuve peut aussi etre utilisee dans le cas dun automate non elementaire.
38
D
emonstration. Soit A un automate fini d
eterministe acceptant L (vu la
proposition II.2.11, il ne sagit pas dune veritable restriction). Si on inverse
les statuts final/non final de chacun des etats de A, on obtient un nouvel
automate acceptant exactement \ L(A).
b
a
a
a,b
LR
mate
AR = (Q, F, I, , R )
o`
u R est defini par
(q, w, q 0 ) (q 0 , wR , q) R ,
truit sur A o`
u on a retourne tous les arcs et inverse les statuts initial/final
des etats. Si A est un AFD, alors en general, A R est non deterministe. En
39
q Q est dit coaccessible sil existe un mot w tel que q.w F . Nous
laissons au lecteur le soin de verifier que lautomate A 0 = (Q, q0 , F 0 , , ),
o`
u F 0 est lensemble des etats coaccessibles de A, accepte Pref(L).
q Q est dit accessible sil existe un mot w tel que q = q0 .w. Nous
laissons au lecteur le soin de verifier que lAFND A 0 = (Q, I, F, , ), o`
u
I est lensemble des etats simultanement accessibles et coaccessibles de A,
accepte Suff(L).
(b)
I
I
7Ceci est toujours possible car sils avaient des alphabets diff
erents, il suffirait de
40
Les mots acceptes par P sont exactement les mots w tels que
(a)
(b)
(b)
(b)
I
I
I
Par construction, il est clair que L(P) = L(A) tt L(B). En effet, en lisant
un mot w, on ne peut atteindre un etat final de P que si apr`es avoir lu toutes
les lettres de (a) (resp. de (b) ) apparaissant dans w, on se trouve dans un
etat de P dont la premi`ere (resp. seconde) composante est dans F (a) (resp.
F (b) ).
Il nous reste a` envisager le cas o`
u les alphabets ne sont pas disjoints.
Dans cette situation, on peut remplacer, par exemple, (b) = {1 , . . . , n }
par un nouvel alphabet (b) = { 1 , . . . , n } de telle mani`ere que (a) (b) =
. On applique d`es lors la construction presentee ci-dessus. Pour terminer,
il suffit dappliquer le morphisme f : ( (a) (b) ) ((a) (b) ) defini
par
f ( i ) = i , i (b) et f () = , (a) .
On conclut en utilisant la proposition II.3.4.
II.5. Exercices
41
tivement par les deux AFD de la figure II.21. Les tables de transition sont
b
1
a,b
2
d
4
c
c
c,d
q q.c q.d
4 5
6
4
5 6
6 6
6
q.c
(1, 5)
(1, 6)
(1, 6)
(2, 5)
(2, 6)
(2, 6)
(3, 5)
(3, 6)
(3, 6)
q.d
(1, 6)
(1, 4)
(1, 6)
(2, 6)
(2, 4)
(2, 6)
(3, 6)
(3, 4)
(3, 6)
Les etats finals sont (1, 4) et (2, 4), letat initial est (1, 4). Si on renumerote
les etats de 1 a` 9 dans lordre du tableau, on a lAFD repris a` la figure II.22.
5. Exercices
Exercice II.5.1. Mod
eliser au moyen dun automate fini deterministe le
probl`eme du chou, de la ch`evre et du loup. Un berger doit faire traverser
une rivi`ere au moyen dune barque a` un chou, une ch`evre et un loup. La
barque etant petite pour les transporter tous, a` chaque trajet sur la rivi`ere,
il ne peut emporter quun seul des trois protagonistes. On ne peut laisser la
ch`evre et le chou (resp. le loup et la ch`evre) seuls sur une rive. Comment doit
faire le berger pour faire traverser les trois protagonistes sous les contraintes
indiquees. Avec la modelisation choisie, quel est le langage des deplacements
acceptables ?
42
1
c
a
d
4
c
d
b
2
c
b,c,d
a,c,d
d
c
a,b
7
c
a,b
a,b,c,d
1
2
3
a
1
3
3
b
2
.
2
1
abba,
bbbabb,
bababa,
bbbaa.
Quel est le langage accepte par A (en donner une expression reguli`ere) ?
Exercice II.5.3. Soient les langages a b et {c}.
Construire un AFD
acceptant a b tt {c}. Pour ce faire, on construira au prealable un AFD sur
{a, b} acceptant le langage a b et un AFD sur {c} acceptant le langage {c}.
Si on note L la fonction qui a` n N associe le nombre de mots de longueur
n dans L,
L : N N : n 7 #(L n ).
Que vaut a b (n) ? Meme question pour a b tt {c} (n).
II.5. Exercices
43
a
a
b
3
Figure II.24. Un AFND.
I
I
,a
2
b
a
4
(ab) + a .
Si lautomate obtenu nest pas deterministe, le rendre deterministe.
Exercice II.5.9 (Cet exercice pourra
etre passe en premi`ere lecture, et
repris apr`es avoir vu la notion dautomate minimal). Montrer que pour tout
n 1, le langage (a + b) b(a + b)n1 peut etre reconnu par un AFND a` n + 1
etats, mais que tout AFD acceptant ce langage poss`ede au moins 2 n etats.
44
b
b
a
a
b
Figure II.26. Un AFND.
Exercice II.5.10. Construire un AFND acceptant
(abc) a .
Si lautomate obtenu nest pas deterministe, le rendre deterministe.
ecedent, construire un AFD
Exercice II.5.11. En utilisant lexercice pr
acceptant le langage
((abc) a )R .
Exercice II.5.12. Construire un AFND acceptant
(ab+ a)+ .
Si lautomate obtenu nest pas deterministe, le rendre deterministe.
Exercice II.5.14. Construire un AFD acceptant exactement les mots sur
gage suivant
I
I
I
I
I
{w
{w
{w
{w
{w
II.5. Exercices
45
{ai bj | i j
(mod 2)}.
D
efinition II.5.19. Soit p 2, tout entier n 1 se d
ecompose de mani`ere
unique comme
n=
`
X
ci pi ,
i=0
avec ci {0, . . . , p 1} et p` 6= 0.
multiples de 4, 5, 6 ou 7.
Exercice II.5.23. Donner la table de transition dun automate fini d
eterministe reconnaissant les ecritures decimales des multiples de 6 (ou leur
miroir, si vous jugez la construction plus simple).
Remarque II.5.24. Ces trois derniers exercices montrent que tout crit`
ere
de divisibilite peut toujours etre reconnu par un automate fini et ce, quelle
que soit la base choisie pour les representations des entiers.
Exercice II.5.25. Soit = {0, 1}. Si u , alors on note 2 (u) lentier
46
0 1 0 1 0
0 1 1 0 0
1 0 1 1 0
appartient au langage accepte. Comme dans les exercices precedents, par
souci de simplification, on pourra dans un premier temps considerer les
representations miroir.
Exercice II.5.27. M
eme question qu`a lexercice II.5.25, mais cette fois,
on impose
2 (v) = 32 (u).
esentations binaires des
Exercice II.5.28. Montrer que le langage des repr
nombres entiers divisibles par 4 est regulier, en donnant une expression
reguli`ere.
Montrer que le langage des representations binaires des nombres entiers
divisibles par 3 est regulier, en fournissant un automate fini deterministe
acceptant ce langage (ou son miroir, au choix).
Deduire des deux premiers points que le langage des representations
binaires des nombres entiers divisibles par 12 est regulier ? Justifier votre
reponse.
CHAPITRE III
Langages r
eguliers et automates
Le but premier de ce chapitre est de montrer que lensemble des langages
reguliers concide exactement avec lensemble des langages acceptes par automate fini. Nous allons donc faire le lien entre les notions introduites aux
deux premiers chapitres.
1. Des expressions aux automates
A toute expression reguli`ere , on peut associer un automate fini A de
telle sorte que L() = L(A). On proc`ede par recurrence sur la longueur de
.
I
1 ,...,n
Figure III.1. AFD et AFND acceptant .
I
1 ,...,n
1 ,...,n
1 ,...,n
1 ,...,n
48
I
I
a
Figure III.6. AFND equivalent acceptant {a} .
En utilisant la proposition II.3.2, on construit un automate acceptant a b :
49
a
b
a
b
a
b
50
quintuple
A = (Q, q0 , F, , )
o`
u
I
I
I
I
a+ba
1
ab*
bab
mots quil accepte. Deux AFE sont dits equivalents sils acceptent le meme
langage.
Remarque III.2.5. Un AFD est un cas particulier dAFE o`
u toutes les
51
Dans les lignes qui suivent, nous allons expliquer comment, au depart
dun AFE arbitraire, obtenir un AFE equivalent possedant uniquement deux
etats (un initial et un final). De cette mani`ere, il sera aise den deduire une
expression reguli`ere du langage accepte.
Le pivotage (Elimination dun etat qui nest ni initial, ni final).
Soit A = (Q, q0 , F, , ) un AFE. Pour tous p, q Q, on note r pq lexpression
reguli`ere (p, q). Soit q un etat de A tel que q 6= q 0 et q 6 F . Definissons
lAFE
A0 = (Q0 , q0 , F, , 0 )
o`
u Q0 = Q \ {q} et pour tous p, s Q0 ,
rps
rqq
r pq
* r qs
rps + rpq rqq
s
p
rqs
ab
1
2
b
3
b
4
Figure III.14. Un AFE avant elimination de letat 2.
notations precedentes, si on desire eliminer letat 2, on obtient
0 (1, 1)
0 (1, 3)
0 (1, 4)
0 (3, 1)
0 (3, 3)
0 (3, 4)
0 (4, 1)
0 (4, 3)
0 (4, 4)
=
=
=
=
=
=
=
=
=
r
r11 + r12 r22
21
= e + a b 0 = e
= ab + a b a
= 0 + a b b = ab b
= 0 + 0 b 0 = 0
= e + 0 b a = e
= b + 0 b b = b
= 0 + b b 0 = 0
= 0 + b b a = bb a
= e + b b b = bb b + e
52
1
ab* b
ab+ab*a
bb* a
3
b
4
bb* b
Figure III.15. AFE equivalent apr`es elimination de letat 2.
Lalgorithme complet
Soit A = (Q, q0 , F, , ) un AFE.
(1.a) Obtention dun
etat initial non final et au quel on ne peut
aboutir. Si letat initial q0 est final ou si il existe q Q tel que2 (q, q0 ) 6= 0,
alors on ajoute un nouvel etat q00 a` lensemble Q detats et on pose (q 00 , q0 ) =
e. On redefinit q00 comme le nouvel etat initial.
(1.b) Obtention dun unique
etat final. Si #F > 1, cest-`a-dire, sil y
a plus dun etat final, on ajoute un nouvel etat f 0 et on pose (q, f 0 ) = e
pour tout q F . Ensuite, on redefinit {f 0 } comme nouvel ensemble detats
finals.
Ainsi, a` la fin de letape 1, on peut supposer disposer dun AFE equivalent A0 = (Q0 , q00 , {f 0 }, , 0 ) possedant un unique etat initial q 00 (non final
et auquel naboutit aucune transition) et un unique etat final f 0 .
(2) Fin ? Si Q0 = {q00 , f 0 }, alors une expression reguli`ere du langage accepte
par A0 est
rq00 f 0 (rf 0 f 0 )
o`
u rq00 f 0 = 0 (q00 , f 0 ) et rf 0 f 0 = 0 (f 0 , f 0 ). Lalgorithme sach`eve. Sinon, on
passe a` letape 3.
(3) Elimination dun
etat. Il existe q Q 0 \ {q00 , f 0 }. On elimine q de
A0 par la methode du pivot presentee ci-dessus. Apr`es pivotage, lensemble
detats est Q \ {q}. On recommence le point 2. A chaque etape, le nombre
detats decrot strictement. Par consequent, lalgorithme sach`eve toujours.
elimine le sommet
Exemple III.2.7. Poursuivons lexemple III.2.6. Si on
3 de lAFE represente a` la figure III.15, il vient
0 (1, 1)
0 (1, 4)
0 (4, 1)
0 (4, 4)
=
=
=
=
r
r11 + r13 r33
31
r
r14 + r13 r33
34
r
r41 + r43 r33
31
r
r44 + r43 r33
34
= e + (ab + ab a) e 0 = e
= ab b + (ab + ab a) e b
.
= 0 + (bb b) e 0 = 0
= bb b + (bb a) e b
2On ne tient pas compte du cas trivial (q , q ) = e. Par contre, si il existe r 6= e tel
0 0
53
4
bb* b+(bb* a)eb
sions reguli`eres sont les generateurs des langages reguliers, alors que les
automates finis en sont les accepteurs.
3. Stabilit
e de la r
egularit
e
Th
eor`
eme III.3.1. Lensemble des langages r
eguliers est stable par union,
Le resultat suivant est souvent utilise pour verifier que certains langages
ne sont pas reguliers.
Corollaire III.3.2. Si L est un langage r
egulier sur = { 1 , . . . , n }, alors
f : : i 7 , i {1, . . . , n}
est un morphisme de monodes preservant les longueurs, i.e., pour tout mot
w , |f (w)| = |w|. Par consequent,
|f (L)| = |L|.
54
Puisque L est regulier, par le theor`eme III.3.1, f (L) est un langage regulier
sur un alphabet unaire. Au vu de la proposition I.3.8, |f (L)| est une union
finie de progressions arithmetiques.
4. Crit`
ere de non-r
egularit
e
3
I
I
|xy| `,
y 6= ,
xy z L.
D
emonstration. Puisque L est r
egulier, il est accepte par un AFD A =
(Q, q0 , F, , ) possedant ` etats. Un mot w = w 1 wn L de longueur n
correspond a` une execution passant par n + 1 etats q 0 , q1 , . . . , qn+1 ,
w
1
2
n
q0
q1
q2 qn
qn+1 F.
t
w
[]t
wj
wi+1
wj
1
i
n
} qj
q0
| {z
| {z
} qi | {z
} qn+1 F
o`
u
signifie que la boucle est empruntee t fois. En posant x, y, z comme
indiques sur le schema, la conclusion en decoule.
x
q0
z
q i =q j
q n+1
Le lemme de la pompe est tr`es souvent utilise pour demontrer que certains langages ne sont pas reguliers.
3En anglais, on trouve souvent lexpression pumping lemma. En fran
cais, on ren-
55
L = {an | n N}.
Nous avons dej`a montre dans lexemple I.3.12 que ce langage netait pas
regulier (en utilisant la proposition I.3.8). Utilisons ici le lemme de la pompe.
Si L etait regulier, il serait accepte par un AFD A ayant k etats. D`es lors,
2
le mot ak est accepte par A et cet automate comprend donc une boucle de
longueur i > 0 (car k 2 k). Par consequent, tout mot de longueur
k 2 + n i, n N
est accepte par A. Or, lensemble des carres parfaits ne contient aucune
progression arithmetique infinie. On en tire que le langage L ne peut etre
regulier.
Remarque III.4.3. Attirons lattention du lecteur sur le fait que des langages non reguliers peuvent neanmoins satisfaire la condition du lemme de la
pompe. En effet, soit L b un langage non regulier arbitraire. Le langage
{a}+ L {b}
Un langage L
est regulier si et seulement si il existe une constante k > 0 telle que pour
tout mot w , si |w| k, alors il existe x, y, z tels que w = xyz,
y 6= et pour tout i 0 et pour tout v ,
Lemme III.4.4 (Lemme de la pompe, version forte).
wv L xy i zv L.
D
emonstration. La condition est n
ecessaire. Supposons que le langage
2
`
1
q`
q1
q0
o`
u q0 est letat initial. Par un raisonnement analogue a` celui developpe dans
la preuve precedente, il existe 0 i < j ` tels que q i = qj et lautomate A
a donc une boucle. On pose x = w1 wi , y = wi+1 wj et z = wj+1 w`
(si i = 0, x = et si j = `, z = ). D`es lors, pour tout i 0,
(q0 , xy i z) = q`
4Ce r
esultat est d
ua
` J. Jaffe (SIGACT News, 1978). Nous avons repris ici une preuve
56
avec |w0 | = k.
avec w0 = xyz, y 6=
III.5. Exercices
57
Remarque III.4.5. Nous voulons faire observer au lecteur que cette derni`
ere
proposition necessite une decomposition de w en xyz qui doit pouvoir etre
appliquee pour tout mot wv, v .
5. Exercices
5.1. Langages r
eguliers.
Exercice III.5.1. Soit le langage
egulier ?
Exercice III.5.3. Le langage {an b2n | n N} est-il r
Exercice III.5.4. Le langage {w {a, b} : |w|a < |w|b } est-il r
egulier ?
n
f (a) = b
et
f (b) = a.
h(a) = h(b) = e
et
h(c) = f.
58
b
b
a
b
a,b
Figure III.18. Expression reguli`ere du langage accepte.
Exercice III.5.14. M
eme question que lexercice precedent pour lAFD
represente a` la figure III.19. Si les mots acceptes sont consideres comme des
0
1
1
0
0,1
Figure III.19. Expression reguli`ere du langage accepte.
representations en base 2 dentiers, en deduire les proprietes arithmetiques
de lensemble dentiers accepte.
CHAPITRE IV
Automate minimal
1. Introduction
Nous savons a` present quun langage est regulier si et seulement si il est
accepte par un automate fini (et en particulier, deterministe). Cependant,
plusieurs AFD peuvent accepter le meme langage. La question posee ici
est de rechercher parmi des automates equivalents, un automate qui serait,
selon un sens encore a` definir, canonique. Par exemple, les automates suivants acceptent tous le langage forme des mots ne comprenant pas deux a
consecutifs.
b b
a,b
b
a
a
b
a,b
a
a,b
b b
a
59
60
2. Congruence syntaxique
D
efinition IV.2.1. Soit L un langage arbitraire. Si w est un mot
immediate (o`
u la somme represente lunion),
X
, si L
L=
( 1 .L) + (L),
avec (L) =
, sinon.
et J. H. Conway decrire both Taylors theorem and the mean value theorem.
Proposition IV.2.3. Soit L un langage. La relation L est une
L = {w {a, b} : |w|a 0
(mod 3)}.
car
car
car
car
abbaba1 .L = aaa1 .L = L
pour u = aa, bu 6 L et abu L
pour u = a, abau L et babu 6 L
a1 .L = ababaa1 .L = {w {a, b} : |w|a 2
(mod 3)}.
61
si |w|a 3 0, alors w 1 .L
et
[w]L
si |w|a 3 1, alors w 1 .L
et
[w]L
1
si |w|a 3 2, alors w .L
et
[w]L
=
=
=
=
=
=
{u {a, b}
{u {a, b}
{u {a, b}
{u {a, b}
{u {a, b}
{u {a, b}
:
:
:
:
:
:
|u| 3
|u| 3
|u| 3
|u| 3
|u| 3
|u| 3
0}
0},
2}
1},
1}
2}.
D
efinition IV.2.6. Dans le cas dun AFD A = (Q, q 0 , F, , ), par analogie
Remarque IV.2.7. Avec la notation que nous venons dintroduire, le langage accepte par lAFD A = (Q, q0 , F, , ) est simplement
q01 .F.
D
emonstration. En effet, par d
efinition, q 1 .F = {u | (q, u) F }.
q0
F
Figure IV.2. q 1 .F = w1 .L si (q0 , w) = q.
62
AL = (QL , q0,L , FL , , L )
I
I
I
QL = {w1 .L | w },
q0,L = 1 .L = L,
FL = {w1 .L | w L} = {q QL | q},
L (q, ) = 1 .q, pour tous q QL , .
63
Remarque IV.3.2. Au vu de la d
efinition de L , il est clair que lensemble
des etats de A, {w 1 .L | w }, est en bijection avec lensemble quotient
/L = {[w]L | w }. En effet, a` chaque classe dequivalence [w] L pour
L correspond un etat w 1 .L de lautomate minimal AL et reciproquement.
Cest pour cette raison que, dans la litterature, on trouve egalement une
definition de lautomate minimal en termes des classes dequivalence de L .
Ainsi, on aurait pu definir lautomate minimal comme suit :
I
I
I
I
QL = {[w]L | w }
q0,L = []L
FL = {[w]L | w L}
L ([w]L , ) = [w]L .
Cette derni`ere definition est equivalente a` celle donnee en IV.3.1 car si [w] L
correspond a` w 1 .L, alors [w]L correspond a` (w)1 .L = 1 .(w1 .L).
Dans la suite, nous utiliserons principalement la definition de lautomate
minimal donnee en IV.3.1.
Remarquons encore que si x L y, alors
L (q0,L , x) = L (q0,L , y)
car il suffit de se rappeler que q0,L = L et d`es lors, il vient
L (q0,L , x) = x1 .L = y 1 .L = L (q0,L , y).
Exemple IV.3.3. Poursuivons lexemple IV.2.5. Il est facile de voir que
car L b
car a L ab
car L aaa
car aa L aab.
lautomate minimal de L sont des ensembles de mots. Dans lexemple precedent, on a un nombre fini detats et chaque etat correspond a` un ensemble
infini de mots.
64
a
2
1
a
a
3
b
a
b
a
b
w L(AL ) L (q0,L , w) FL w1 .L FL w L.
65
D
efinition IV.3.7. Un AFD A = (Q, q0 , F, , ) est accessible si pour tout
etat q Q, il existe un mot w tel que (q0 , w) = q.
Un AFD A = (Q, q0 , F, , ) est reduit si pour tous p, q Q,
p1 .F = q 1 .F entrane p = q.
En dautres termes, un AFD est reduit, si les langages acceptes depuis deux
etats distincts sont distincts ou encore si chaque classe dequivalence pour
la relation A sur Q est un singleton.
Le resultat suivant justifie lappellation minimal.
Th
eor`
eme IV.3.8. Soient L un langage et AL = (QL , q0,L , FL , , L )
est surjectif,
(q0 ) = q0,L ,
, q Q : ((q, )) = L ((q), ),
(F ) = FL .
a
b
b
b b
b
a
a,b
a,b
On effectue
dabord
lanalyse.
66
Passons a
` la
synth`
ese.
o`
u pour la derni`ere egalite, on a applique le lemme IV.2.8. Montrons a`
present que lapplication
: Q QL : q 7 q 1 .F
poss`ede les proprietes indiquees :
I
I
I
D
emonstration. Cela d
ecoule immediatement de la surjectivite de lappli-
67
(ii) Soit B = (Q, q0 , F, , ) un automate deterministe accessible acceptant L. Cet automate est reduit si et seulement si lapplication
: Q QL definie au theor`eme IV.3.8 est une bijection. Dans ce
cas, les automates AL et B sont isomorphes.
D
emonstration. Lautomate minimal est accessible car un
etat quelconque de AL est de la forme w 1 .L pour un mot w et
L (q0,L , w) = w1 .L.
ce qui se reecrit
p1 .F = q 1 .F p = q
egulier si et seulement si
Proposition IV.3.11. Un langage L est r
D
emonstration. Si AL est fini, au vu de la proposition IV.3.6, L est
et de la remarque IV.3.2.
68
On dit alors quun tel mot distingue les etats p et q ou encore que le couple
(p, q) est distingue. Dans lalgorithme qui suit, on notera N ` lensemble des
couples detats qui sont distingues par un mot de longueur ` et qui ne sont
distingues par aucun mot plus court.
Algorithme de recherche des
etats
equivalents
(1) Initialisation : lors de cette etape, on determine les couples detats
distingues par le mot vide (seul mot de longueur ` = 0).
I
I
On pose ` := 0.
Pour tout p F et tout q Q\F , la paire (p, q) est distinguee car le
mot vide appartient a` p1 .F mais pas a` q 1 .F . Soit N0 lensemble
de ces paires.
Si N` = , lalgorithme sach`eve.
Sinon, pour chaque paire (p, q) N` , on passe en revue les paires
(r, s) avec r 6= s qui nappartiennent pas a` N 0 N` . Sil existe
tel que
(r, ) = p et (s, ) = q
ou
(s, ) = p et (r, ) = q,
69
b
a
b
4
3
a
b
a
5
0
4
0
5
0
6
Puisque (1.a, 3.a) = (2, 6), (1.b, 6.b) = (1, 2), (3.a, 4.a) = (6, 5) et (4, 6) =
(5, 6), on a, a` la deuxi`eme etape, le tableau ci-dessous.
1 2 3
1 0 1
2
0
3
4
5
6
4 5
0
0
1 0
0
6
1
0
1
0
Lalgorithme sach`eve car (1.a, 4.a) = (2, 5), (1.b, 4.b) = (1, 1), (2.a, 5.a) =
(1, 4), (2.b, 5.b) = (3, 6), (3.a, 6.a) = (6, 6) et (3.b, 6.b) = (2, 2). On en
conclut que 1 A 4, 2 A 5 et 3 A 6.
Puisque nous pouvons supposer avoir un AFD A accessible, le theor`eme
IV.3.8 nous affirme que lautomate A se projette au moyen de lapplication
sur lautomate minimal du langage L accepte par A et que des etats de A
equivalents pour A sont envoyes sur un meme etat de A L . Ainsi, les etats
de AL vont correspondre aux classes dequivalence de A .
Toujours en vertu du theor`eme IV.3.8, les transitions de lautomate minimal sont definies par
L ((q), ) = ((q, ))
si (resp. L ) est la fonction de transition de A (resp. A L ). Traduit en
termes detats equivalents, cela signifie que si un etat de A L correspond a`
70
{1, 4}, [2]A = {2, 5} et [3]A = {3, 6}. Puisque dans lautomate de depart,
1.a = 2 et 1.b = 1, on a L ((1), a) = (2) et L ((1), b) = (1). Ceci
signifie que, dans lautomate minimal, la lecture de a (resp. b) depuis letat
correspondant a` {1, 4} conduit a` [2] A = {2, 5} (resp. [1]A = {1, 4}). En
continuant de la sorte, on obtient lautomate de la figure IV.7.
b
{1,4}
a
{2,5}
{3,6}
1
b
2
a
Figure IV.8. Un AFD accessible A.
montrer quil est reduit (et quil sagit donc dun automate minimal puisquil
est visiblement accessible). Avec les memes notations que precedemment,
on obtient rapidement le tableau suivant.
1 2 3
1 0 0
2
1
3
4
1
0
0
71
D
emonstration. Si B est un AFD acceptant M , il est clair que (B) accepte M R et quil est accessible. En effet, dans la procedure de construction
par sous-ensembles, on ne consid`ere que les etats accessibles car on recherche
de proche en proche les etats atteints depuis letat initial. Il suffit d`es lors de
montrer que si B est un AFD accessible acceptant un langage M , alors (B)
est un AFD accessible et reduit acceptant M R . Dans ce cas, (A) sera un
AFD accessible acceptant LR et ((A)) sera un AFD accessible et reduit
acceptant (LR )R = L. On conclut alors par la proposition IV.3.10.
Soit B un AFD accessible. Montrons que (B) est reduit. Soient P, Q
deux etats de (B). Supposons que P 1 .F = Q1 .F (o`
u F designe lensemble
des etats finals de (B)). De par la construction par sous-ensembles, letat
P (resp. Q) est constitue detats 4 p1 , . . . , pr (resp. q1 , . . . , qs ) de B R et un
etat est final sil est un sous-ensemble detats de B R contenant un etat final
de B R (donc ici contenant letat initial q 0 de B, i.e., lunique etat final de
B R ).
Si w appartient a` P 1 .F, cela signifie que, dans (B), w est le label dun
chemin debutant dans P et aboutissant dans un etat final. Encore un fois,
de par la construction par sous-ensembles, cela signifie que dans B R on a un
chemin de label w debutant dans un des etats p i et aboutissant dans q0 . Ou
de mani`ere equivalente, dans B, w R est le label dun chemin debutant dans
q0 et aboutissant dans pi . Reciproquement, pour tout i {1, . . . , r}, si w
est label dun chemin dans B debutant dans q 0 et aboutissant dans pi , alors
dans (B), w R appartient a` P 1 .F . Autrement dit, on a
72
b
a
2
a
b
a
a
4
b
Figure IV.9. Un AFD A.
b
a
1
b
a
3
2
a
4
a
b
2
a
b
3
a
4
a,b
b
5
a,b
1
b
a
3
a
4
a,b
Figure IV.12. Lautomate ((A))R .
a,b
IV.5. Applications
73
b
a,b
1
a
3
a
b
w1 .f 1 (M ) = {u | wu f 1 (M )}
= {u | f (wu) M }
= {u | f (w)f (u) M }
= {u | f (u) f (w)1 .M }
= f 1 (f (w)1 .M )
Or M est regulier donc son automate minimal est fini et f (w) 1 .M ne peut
prendre quun nombre fini de valeurs. On en conclut que, quel que soit
w , w1 .f 1 (M ) ne peut prendre quun nombre fini de valeurs. Ainsi,
lautomate minimal du langage f 1 .M est fini.
74
aussi regulier.
D
emonstration. Il suffit de montrer que lautomate minimal du langage
Pref(L) est fini. Soit w . Il vient
w1 .Pref(L) = {u | wu Pref(L)}
= {u | v : wuv L}
= {u | v : uv w1 .L}
= Pref(w1 .L).
D
emonstration. Il suffit de remarquer que
L par
k
L = {u | uk L}.
L = a b .
IV.5. Applications
75
k
L est aussi
un langage regulier.
p = {u | wu L} = {u | L (q0,L , wu) FL }
= {v | p = (uv)1 .L}
= {v | p = v 1 .(u1 .L)}.
k+1
L=
(S(p) k p).
pQL
Si u appartient a`
L, alors, par definition de la racine (k + 1)-i`eme, uu k
appartient a` L et donc uk appartient a` u1 .L. Si on pose p = u1 .L, cela
76
Voici a` present quelques remarques concernant la complexite des algorithmes a` mettre en oeuvre pour rechercher lautomate minimal dun langage
regulier a` partir dun automate donne.
Remarque IV.5.10. On peut montrer que lalgorithme de recherche des
IV.6. Exercices
77
6. Exercices
Exercice IV.6.1. Lautomate de la figure IV.14 est-il accessible et r
eduit? Autrement dit, sagit-il dun automate minimal ? Meme question
a,b
b
a
3
a
b
a
5
b
b
Figure IV.14. Un AFD.
avec lautomate de la figure IV.15. Pour ces deux automates, donner une
a,b
b
a
a
1
b
a
a
b
Figure IV.15. Un autre AFD.
expression reguli`ere du langage accepte.
Exercice IV.6.2. Donner (en utilisant une m
ethode au choix) lautomate
a ba(bb) ,
(a + b) aba(a + b) ,
(ab + ba) ,
le langage forme des mots contenant le facteur aa ou bb,
le langage forme des mots contenant le facteur aa et bb,
(aab) (ba) ,
le langage forme des mots de (aab) (ba) qui sont de longueur paire.
78
de la forme
w1 .L,
w {a, b} .
Exercice IV.6.5. Soit L = {ab, aab, aba, ba, bb, aaa}. Quels sont les dif-
w1 .L,
w {a, b} .
w {a, b} .
Exercice IV.6.7. Soit L, le langage sur {a, b} des mots contenant exacte-
w {a, b} .
IV.16.
On
a,b
a
a
a
b
b
b
IV.6. Exercices
79
L = {an bm | n, m N : n m}.
Caracteriser les etats de lautomate minimal de L et donner la table de
transition de cet automate.
Exercice IV.6.10. Soit lautomate fini d
eterministe A represente a` la fig-
a,b
a
b
b
a
a
CHAPITRE V
Quelques compl
ements sur les langages r
eguliers
1. Transduction
Dans cette section, on definit la notion de transducteur qui, dune certaine mani`ere, peut etre vue comme une generalisation des morphismes. Ensuite, nous montrons que lensemble des langages reguliers est stable pour
limage et limage inverse par transduction.
D
efinition V.1.1. Un transducteur est un 6-uple T = (Q, q 0 , , , , )
o`
u Q, q0 , , sont definis comme dans le cas des AFD, est un alphabet
fini appele alphabet de sortie et : Q est la fonction de sortie.
(On supposera que est une fonction totale.) Un transducteur peut etre vu
comme un moyen pour definir des fonctions. Ainsi, a` chaque mot dentree
w = w1 w` , wi , le transducteur T associe un mot de sortie
T (w) donne par
(q0 , w1 ) ((q0 , w1 ), w2 ) ((q0 , w1 w2 ), w3 ) ((q0 , w1 w`1 ), w` ).
q q 0 .
Exemple V.1.2. Voici un exemple de transducteur.
b/b
a/a
b/bc
1
2
a/a
a/a
b/bc
1 1 2 1
82
/f()
1
Figure V.2. Un transducteur calculant le morphisme f .
Remarque V.1.5. Dans la litt
erature, on trouve dautres mod`eles plus
generaux de transducteurs, comme par exemple, des transducteurs construits non pas sur un AFD mais sur un AFND. Dans ce cas, le transducteur
ne definit plus une fonction de dans mais une relation (rationnelle),
i.e., une partie de . On peut aussi trouver des mod`eles dans lesquels
on precise des etats finals. Dans ce dernier cas, ne sont acceptes que les calculs dont la lecture du mot dentree conduit a` un etat final. Dans ce cours
introductif, nous avons decide de passer ces generalisations sous silence.
Lensemble des langages reguliers est stable par transduction.
egulier et T un transducTh
eor`
eme V.1.6. Soient L un langage r
teur. Le langage
T (L) = {T (w) | w L}
est regulier.
1
(Q0 , q00 , , 0 , , )
I
I
I
et
((q, q 0 , , j), , ((q, ), 0 (q 0 , ), , 0)) 00 .
1La preuve pr
esentee ici est issue de : J.-P. Allouche, J. Shallit, Automatic Sequences,
V.1. Transduction
83
En particulier, si (q 0 , ) = alors
((q, q 0 , , 0), , ((q, ), 0 (q 0 , ), , 0)) 00 .
Enfin, F = {(q, q 0 , , 0) : q F }.
11
(p0 , p00 , x1 , 1) 1 (p0 , p00 , x1 , k1 )
(p0 , p00 , , 0) (p0 , p00 , x1 , 0)
{z
}
|
=q000
w2k
21
2 (p1 , p01 , x2 , k2 )
((p0 , x1 ), 0 (p00 , x1 ), , 0) (p1 , p01 , x2 , 0)
{z
}
|
..
.
0
(p2 , p2 , , 0) (p2 , p02 , x3 , 0)
wrk
r1
r (pr1 , p0r1 , xr , kr )
(pr1 , p0r1 , , 0) (pr1 , p0r1 , xr , 0)
(pr , p0r , , 0) F 00 .
Ceci prouve que le mot w = w11 w1k1 w21 w2k2 wr1 wrkr est accepte par B. Pour lautre inclusion, si w L(B), alors cela signifie que
partant de letat initial q000 , on dispose dun chemin conduisant a` un etat
84
Lensemble des langages reguliers est aussi stable par image inverse par
transduction.
Proposition V.1.8. Soient L un langage r
egulier et T un transduc-
teur. Le langage
est regulier.
T 1 (L) = {x | T (x) L}
D
emonstration. Il est ais
e de construire un AFD acceptant T
1 (L)
a`
partir dun AFD A = (Q, q0 , F, , ) acceptant L et du transducteur T =
(Q0 , q00 , , 0 , , ) donne dans lenonce. Soit lAFD B = (Q 00 , q000 , F 00 , , 00 )
defini par
I
I
I
I
Q00 = Q0 Q,
q000 = (q00 , q0 ),
F 00 = Q0 F et
pour tout , 00 ((q 0 , q), ) = ( 0 (q 0 , ), (q, (q 0 , ))).
85
Pour decrire les ensembles w 1 .L, il est utile dintroduire, pour tout prefixe
p de u, lensemble
Eu (p) = { | 0 , : p = 0 , u = 0 }
forme des suffixes de u qui, completes par un suffixe de p, donnent u. On
remarque quavec cette definition, u appartient toujours a` E u (p).
Soit v appartenant a` w 1 .L. Si |v| |u|, alors v appartient a` L car v
poss`ede u comme suffixe. On en conclut donc que w 1 .L L.
Sinon, |v| < |u|. Dans ce cas, on pose w,u comme etant le plus grand
suffixe de w qui soit prefixe de u. Il est clair que w,u et Eu (w,u ) dependent
uniquement de u et w.
w
u
w = aabbab
et
u = babbaab,
aabbab
| {z } baab
et
aabbab
| {z } abbaab
alors
w
u=
bab baab
.
w = aab bab
De plus, on a
Eu (w,u ) = {baab, abbaab, u}
En effet, les suffixes de w,u sont , b, ab, bab. Parmi eux, bab et b sont
prefixes de u et on a les factorisations suivantes,
0
z}|{
bab baab
u = |{z}
w,u
et
z}|{ z}|{
u = |ba {z b } abbaab.
w,u
86
I
I
o`
u pj est le plus grand prefixe de u qui soit suffixe de p i . (Definition somme toute assez naturelle au vu de la defintion des ensembles
Eu (p).)
Ainsi, pour un mot u donne, il est facile de construire la table de
lautomate. Nous convenons de noter i letat correspondant a` p 1
i .L.
Exemple V.2.2. Soit u = abbab. On a
i
0
1
2
3
4
5
pi
a
ab
abb
abba
abbab
(i, a)
1 car a = p1
1 car p1 suffixe de
1 car p1 suffixe de
4 car abba = p4
1 car p1 suffixe de
1 car p1 suffixe de
(i, b)
0 car p0 suffixe de b
aa
2 car ab = p2
aba
3 car abb = p3
0 car p0 suffixe de abbb
abbaa 5 car abbab = p5
abbaba 3 car p3 suffixe de abbabb
b
0
87
5
b
g,c,t
g,c,t
c,t
a
a
g
g,c,t
agata
a
c,t
88
a
n
est la fonction
L : N N : n 7 #(L n ).
q, r Q.
b
1
a,b
2
1 1 0
1 0 1 .
0 0 2
[M n ]q,r
89
D
emonstration. On proc`
ede par recurrence sur n. Si n = 0 ou n = 1, le
resultat est evident. Supposons la propriete satisfaite pour n et verifions-la
pour n + 1. Il vient
X
[M n+1 ]q,r = [M n .M ]q,r =
[M n ]q,s Ms,r .
sQ
[M n ]
1
r
sa matrice dadjacence. On a
L (n) =
[M n ]q0 ,f .
f F
D
emonstration. Cest
evident.
5 3 8
3 2 3
2 1 1
M 2 = 1 1 2 , M 3 = 2 1 5 , M 4 = 3 2 11 , . . .
0 0 16
0 0 8
0 0 4
Nous allons a` present fournir une methode generale permettant de calculer L (n). En vertu du theor`eme de Cayley-Hamilton, toute matrice annule son polynome caracteristique 3 det(M I). Si #Q = k, la matrice
3On peut faire tout le raisonnement qui suit en consid
erant non pas le polyn
ome
90
n k.
Le probl`eme revient a` reussir a` exprimer L (n) sous la forme dune formule close. Cette question a` propos des suites lineaires recurrentes est en
toute generalite difficile a` resoudre. On dispose du resultat suivant que nous
donnons ici sans demonstration.
Proposition V.3.7. Soit k 1.Si une suite (u n )nN satisfait une relation
de recurrence lineaire a
` coefficients constants de la forme
un = c1 un1 + + ck unk , n k
1 1
0
det 1
1 = (2 )(2 1).
0
0 2
Ainsi, puisque
(2 )(2 1) = 3 + 32 2,
91
M n = 3M n1 M n2 2M n3 .
n 3.
De plus,
L (0) = 1, L (1) = 2 et L (2) = 3
car , a, b, ab, ba, bb appartiennent a` L. Pour determiner une formule close
pour L (n), nous factorisons tout dabord le polynome caracteristique de la
relation de recurrence,
1+ 5
1 5
3
2
X 3X + X + 2 = (X 2)(X
)(X
).
2
2
En vertu de la proposition V.3.7, puisque les trois racines du polynome sont
simples, il existe trois constantes A, B, C telles que
!n
!n
1 5
1+ 5
n
+C
, n 3.
L (n) = A2 + B
2
2
Au vu des conditions initiales, on a le syst`eme suivant
1 = A + B +C
2 = 2A + B 1+2 5 + C 12 5
3 = 4A + B 1+ 5 2 + C 1 5 2
2
2
et on trouve
Par consequent,
(4)
5+3 5
53 5
A = 0, B =
et C =
.
10
10
5+3 5
L (n) =
10
!n
53 5
1+ 5
+
2
10
!n
1 5
.
2
Remarque V.3.9. La pr
esence dun puits, ou plus generalement dun etat
non coaccessible (i.e., depuis lequel on ne peut atteindre aucun etat final),
na pas dinfluence sur le nombre de mots de longueur n presents dans le
langage. Ainsi, il est commode dans les exercices de considerer un automate
emonde prive de tels etats. On pourrait ainsi reprendre lexercice precedent
en ne considerant dans lautomate de la figure V.7 que les etats 1 et 2.
Une autre methode fort utile dans le cadre des equations lineaires recurrentes consiste a` utiliser la notion de serie generatrice. Ainsi, si (u n )nN est
une suite, on note symboliquement
X
Fu (X) =
uk X k
k0
92
mog`ene de degre k
n 0,
un+k =
k
X
ai un+ki
i=1
Fu (X) =
un X n
n0
un+k X n+k +
n0
n0
i=1
ai un+ki
i=1
ai X i
i=1
k
X
ui X i
i=0
k
X X
k
X
k1
X
X n+k +
k1
X
bi X i
i=0
un+ki X n+ki +
k1
X
bi X i
i=0
n0
ai X i Fu (X)
ki1
X
j=0
uj X j +
k1
X
bi X i
i=0
i=1
i=0
do`
u la conclusion car
k ki1
X
X
i=1 j=0
ai uj X i+j =
j=0
ai bj X i+j .
i+j<k
Pour obtenir une expression de (un )nN , il suffit de decomposer Fu en fractions simples puis de developper celles-ci en serie de puissances. Une fois
cela fait, il ne reste plus qu`a identifier les coefficients correspondants.
Nous allons illustrer cette technique sur un exemple.
93
Exemple V.3.11. R
esolvons lexemple V.3.3 en utilisant les series generatrices. Nous savons dej`a que
L (n) = 3 L (n 1) L (n 2) 2 L (n 3),
Considerons la serie generatrice
F (X) =
n 3.
L (n) X n .
n0
On a
F (X) =
n3
n3
[3 L (n 1) L (n 2) 2 L (n 3)] X n + 3X 2 + 2X + 1
= (3X X 2 2X 3 )F (X) 2X 2 X + 1
et donc
F (X) =
2X 2 + X 1
(2X 1)(X + 1)
=
2X 3 + X 2 3X + 1
(2X 1)(X + 1+2 5 )(X +
.
1 5
2 )
F (X) =
1+ 5
X+ 2
X + 12 5
et
De l`a, on tire
+
= 1
(1 5) + (1 + 5) = 2.
5 5
5+ 5
=
, =
.
10
10
Pour le developpement en serie de puissances, il est utile de rappeler les
relations suivantes
X
1
=
k X k.
1X
k0
et
X
1
1
1
=
D
=
k k1 X k1
x
(1 X)2
1X
k1
o`
u Dx est une derivation formelle . Dune mani`ere generale,
portionnel a`
Dxp1 11 X
1
(1 X)p
4Les d
etails et les justifications sortent du cadre de ce cours.
est pro-
k0
Xk.
94
Ainsi, sur notre exemple, il ne reste plus qu`a developper F (X) en serie de
puissances en utilisant la premi`ere relation pour obtenir
X
2
2
1
2
=
)k X k ,
(
=
2
1+ 5
1
+
X
1
+
5
1
+
5
1
+
5
X+
k0
1+ 5
2
et
X+
1 5
2
X
2
2
1
2
)k X k .
(
=
2
1 5 1 + 1 5 X
1 5 k0 1 5
2
2
2
5+ 5
2
5 5
n
(
)
(
)n .
L (n) =
10 1 + 5 1 + 5
10 1 5 5 1
{z
} | {z } |
{z
} | {z }
|
53 5
10
1 5
2
5+3 5
10
1+ 5
2
q"
w
p
q 0 1 (q)
[M k ]p0 ,q0 .
95
4. Monode syntaxique
Lorsquon etudie les langages formels, certaines de leurs proprietes peuvent sexprimer en termes algebriques en introduisant la notion de monode
syntaxique. Le but de cette section est de fournir quelques rudiments concernant cet outil puissant6.
egulier ou non). On definit
D
efinition V.4.1. Soit L un langage (r
Il est facile de verifier quil sagit dune relation dequivalence sur et meme
dune congruence (`a droite et a` gauche), i.e., pour tout ,
u L v (u L v et u L v).
On parle souvent de la congruence syntaxique L et on dit que u et v sont
syntaxiquement equivalents.
Dans cette section, on notera simplement [w] la classe dequivalence pour
L etant convenu que la relation L est sous-entendue. Nous allons voir
quon peut munir lensemble quotient / L , i.e., lensemble des classes
dequivalence pour L , dune structure de monode.
Soit loperation
: /L /L /L : ([x], [y]) 7 [x] [y]
definie par
[x] [y] = [z] si [x] [y] [z]
o`
u represente loperation de concatenation de langages 7. Verifions que
lapplication est bien definie en montrant que si x L x0 et si y L y 0 ,
5Soit P (z) = Pn a z i tel que P (M ) = 0.
i=0 i
Pn
Pn
P (N ) = 0.
6
En effet, on peut par exemple montrer quun langage peut sexprimer a
` partir
densembles finis en utilisant un nombre fini doperations dunion, de concatenation,
dintersection et de complementation (on parle alors a
` juste titre de langage sans etoile,
ou star-free) si et seulement si son monode syntaxique ne contient que des sous-groupes
triviaux. Ce resultat de nature algebrique est d
ua
` M.P. Sch
utzenberger.
7Op
eration tout a
` fait naturelle, puisquune classe dequivalence pour L est un ensemble de mots.
96
xy L x0 y L x0 y 0 L.
D
emonstration. Le neutre est [], i.e., pour tout x , on a
[x] [] = [x].
D
efinition V.4.4. Le monode ( /L , ) est le monode syntaxique de L.
: /L : w 7 [w].
Le resultat suivant fournit un moyen explicite pour rechercher le monode
syntaxique dun langage.
Th
eor`
eme V.4.5. Soient L un langage et w, w 0 deux mots sur .
97
z
w
x
q0
q
w
z
q0
w
Figure V.11. Situation dans lautomate minimal.
Schematiquement, on a la situation representee a` la figure V.11 Ainsi, pour
tous x, y ,
xwy L xw 0 y L.
HL = {fw | w }.
Muni de loperation de composition de fonctions, H L est un monode ayant
id pour neutre. On a fww0 = fw0 fw car pour tout q,
fww0 (q) = q.ww 0 = (q.w).w 0 = fw0 (fw (q)).
R : /L HL : [w] 7 fw
est un isomorphisme de monodes.
D
emonstration. Cela r
esulte directement du theor`eme precedent. En
98
D
emonstration. Si lautomate minimal AL de L est fini, lensemble QL
des etats de AL poss`ede un nombre fini n delements. Le nombre de fonctions
de Q dans Q est au plus nn et par consequent, le monode syntaxique de L
poss`ede au plus nn elements. Pour la reciproque, au vu du theor`eme V.4.5,
si L (q0 , w) 6= L (q0 , w0 ), alors w 6L w0 . Par consequent, le nombre detats
de lautomate minimal de L est majore par le nombre de classes du monode
syntaxique de L. De l`a, si /L est fini, alors lautomate minimal de L est
fini et le langage L est regulier.
b
1
a,b
2
99
b
b
(1,1,3)
(1,2,3)
a
(2,3,3)
b
a
a
b
(2,2,3)
b
(1,3,3)
a
(3,3,3)
a,b
a a
b
b
aa aa
ab ab
ba ba
a b aa ab ba
a b aa ab ba
aa ab aa aa a
ba b aa b ba
aa aa aa aa aa
a ab aa ab a
aa b aa aa ba
100
a
1
2
a
a
3
4
a
sobtient comme
\ .
Le langage L des mots sur ne contenant pas le facteur aa est aussi sans
etoile. En effet,
L = \ ( aa )
et nous avons vu que etait lui-meme sans etoile. Enfin, le langage (ab)
est aussi sans etoile car
(ab) = \ (b + a + aa + bb ).
Comme le montre ce dernier exemple, il peut etre assez difficile de determiner si un langage donner peut ou non etre mis sous une forme sans etoile.
101
Th
eor`
eme V.5.5. Soit (S, ) un semi-groupe fini. Pour tout a S, il
existe des entiers positifs m et r tels que a, . . . , a m , . . . , am+r1 soient distincts et mais tels que am+r = am . De plus, la restriction de loperation a
`
lensemble Ca = {am , . . . , am+r1 } forme un groupe cyclique dordre r.
D
emonstration. Puisque S est fini, parmi a, a 2 , . . . , a#S+1 au moins deux
a
a
a2
m+1
am
a m+r1
(mod r).
102
(mod r).
(am+i ) + (am+j ) = m + i + m + j
(mod r).
D
efinition V.5.6. Soient S un semi-groupe et a S. Lentier m (resp.
r) dont il est question dans le theor`eme V.5.5 est appele lindice (resp. la
periode) de lelement a.
Exemple V.5.7. Prenons comme semi-groupe S, le monode syntaxique
obtenu dans lexemple V.4.8. Si, une fois encore, on sautorise a` noter
[w] simplement w, on trouve les periodes suivantes pour les elements du
monode,
indice m periode r
2
=
1
1
a a2 = aa a3 = aa
2
1
b
b2 = b
1
1
aa aa2 = aa
1
1
1
1
ab ab2 = ab
2
ba ba = ba
1
1
En guise de comparaison, considerons cette fois, le monode syntaxique
donne dans lexemple V.4.9. On trouve,
2 =
a a2 =
a3 = a
2
b b =
b3 = b
ab ab2 = ab3 = ab
indice m periode r
1
1
1
2
1
2
1
2
On voit donc dans le premier exemple que tous les elements sont de periode
1, ce qui nest pas le cas du second exemple.
Avant denoncer le resultat suivant, rappelons quun groupe est trivial
sil est restreint au seul neutre. Si S est un semi-groupe sans neutre (i.e., si
S est un semi-groupe qui nest pas un monode), on introduit le monode S 1
o`
u S 1 = S {1} avec 1, un nouvel element nappartenant pas S. On etend
loperation de S comme suit,
s S, 1 s = s = s 1.
103
Th
eor`
eme V.5.8. Soit (S, ) un semi-groupe fini. Les conditions suivantes
sont equivalentes.
avec i n.
(iii) (i). Soient G un sous-groupe de S et x, y deux elements quelconques de G (pas necessairement distincts). Il existe a, b, c, d G tels que
ax = y,
xb = y,
cy = x,
yd = x.
D
efinition V.5.9. Un semi-groupe satisfaisant les propri
etes du theor`eme
precedent est qualifie daperiodique.
Exemple V.5.10. Au vu de lexemple V.5.7, le monode syntaxique de
lexemple V.4.8 est aperiodique. On pourrait verifier quil ne contient que
des sous-groupes triviaux. En effet, la restriction du produit aux ensembles
Pensez a
` la table de
Cayley dun groupe.
104
I
I
I
6. Exercices
6.1. Transduction.
Exercice V.6.1. Supposons que les positions des lettres dun mot soient
comptees de gauche a` droite. Ainsi,
w = w 1 w n , wi
pour un mot w de longueur n. Construire un transducteur T qui transforme
chaque a se trouvant en position de la forme 3i (resp. 3i + 1, 3i + 2) en abc
(resp. bac, aac) et chaque b se trouvant en position de la forme 3i (resp.
3i + 1, 3i + 2) en bca (resp. bac, bcb), i N. Donner une expression reguli`ere
du langage
T (a b ).
6.2. Probl`
emes de d
enombrement.
Exercice V.6.2. Soit L un langage. On d
enote par L (n), le nombre
n 1.
V.6. Exercices
105
Montrer que
1X
.
3X + 1
En deduire une formule close pour L (n).
F (X) =
X2
ere le langage L = a b .
Exercice V.6.5. On consid`
I
I
I
I
sur forme des mots ne contenant pas le facteur aa. Ce langage est accepte par lautomate fini deterministe A = ({1, 2, 3}, 1, {1, 2}, , ) o`
u la
fonction de transition : {1, 2, 3} {1, 2, 3} est donnee par
1
2
3
I
I
a
2
3
3
b c
1 1
1 1
3 3.
106
b
1
a,b
a
a
a
4
b
5
b
{a, b} qui sont formes exclusivement de b en nombre impair ou qui comprennent un nombre de a qui est multiple strictement positif de 3. Montrer que
le monode syntaxique se decompose en deux sous-groupes cycliques dont on
donnera a` chaque fois un generateur.
Exercice V.6.12. On consid`
ere le langage accepte par lautomate de la
figure V.17. Apr`es avoir verifier que cet automate etait minimal, montrer
que le monode syntaxique de ce langage est isomorphe a` S 3 (le groupe des
permutations de {1, 2, 3}).
Exercice V.6.13. Pour les automates rep
eresentes a` la figure V.18, veri-
demontrer que
V.6. Exercices
107
b
b
a
a
b
b
a
a
6
a
a
7
a,b
2
a
b
3
b
1
2
a
a
b
a
4
a,b
Figure V.19. Un AFD.
et
b2 a3 a3 , b2 a2 b b2 a.
108
mot w realisant une permutation non triviale dun sous ensemble detats de
A, i.e., sil nexiste pas de mot w et de sous-ensemble detats {q 1 , . . . , qr }
tels que
q1 .w = q1 , . . . , qr .w = qr
o`
u est une permutation de {1, . . . , r} distincte de lidentite.
Exercice V.6.16. D
emontrer quun langage regulier est sans etoile si et
CHAPITRE VI
PHRASE
SUJET
VERBE
COMPLEMENT
ARTICLE
NOM
ADJECTIF
Ainsi, sans vouloir formaliser plus que necessaire, avec les r`egles donnees ci-dessus, on peut construire au moyen de substitutions successives des
phrases comme
NICOLAS PORTE UN LIVRE VERT
ou
MICHEL MANGE LE WAGON BLEU.
1N. Chomsky, On certain formal properties of grammars, Inform. and Control, 137
167, 1959.
109
110
(V ) , alors on note
A w 1 | w2 | | w n .
111
w L(G) et
S x 1 A1 y1 x 2 A2 y2 x n An yn w
nombre de derivations a
` droite permettant dobtenir ce meme mot. Ainsi, il est equivalent
de definir une notion, comme le caract`ere non ambigu, sur le nombre de derivations a
`
gauche ou a
` droite.
3Pour plus dinformation a
` propos de lutilisation des grammaires dans lecriture
dun compilateur, voir par exemple la page http://dinosaur.compilertools.net/ o`
u
lon presente les outils Lex, Yacc, Flex et Bison
112
S aSb | .
= {a1 , a1 , . . . , an , an },
la grammaire G = (V, , P, S) o`
u V = {S, T } et les productions de P donnees par
S ST |
T a 1 S a1 | | a n S an .
Le langage genere par la grammaire G sappelle le n-i`eme langage de Dyck
et se note Dn . Il est facile de voir quil sagit exactement du langage forme
des mots bien parenth`eses lorsquon dispose de n niveaux de parenth`esage
(la j-i`eme parenth`ese ouvrante etant symbolisee par a j et la j-i`eme parenth`ese fermante correspondante par a j ). En guise dillustration, considerons
lalphabet = {( ), [ ]} forme de parenth`eses et de crochets et les productions
S ST |
T ( S ) | [ S ].
On obtient par exemple les mots suivants
S ST S(S) (S) ( ),
S ST S(S) ST (S) ST ( )
ST ( ) S[S]( ) S[S]( ) S[ ]( ) [ ]( ),
Noter que, dans un langage de Dyck, il ny a pas de preseance sur lordre des
differentes parenth`eses. Ainsi, les mots [( )] et ([ ]) sont tous deux valides.
Dans le cas de lalphabet = {a, a}, on peut encore montrer quun mot
w appartient au premier langage de Dyck D 1 si et seulement si les deux
conditions suivantes sont satisfaites
I
I
113
2. Arbres danalyse
Dans cette section, nous allons montrer qu`a une derivation correspond
un arbre, appele arbre danalyse, et reciproquement, a` tout arbre danalyse
correspond au moins une derivation. Nous supposerons 4 quaucun second
membre des productions des grammaires rencontrees nest egal a` .
Pour rappel, en theorie des graphes, un arbre est un graphe connexe
sans cycle. Par commodite, nous allons preferer une definition recursive des
arbres. Soit E, un ensemble fini dont les elements sont appeles noeuds. Les
arbres de hauteur 0 sont les elements e de E. On les note (e, ) et e est
la racine de larbre. Si e E et A1 , . . . , An sont des arbres respectivement
de hauteur hi et de racine ei , i = 1, . . . , n, alors, en connectant e aux differents ei , on definit (e, (A1 , . . . , An )) comme etant un arbre de racine e, de
hauteur 1 + supi hi et de sous-arbres A1 , . . . , An . Dans cette definition, le nuple (A1 , . . . , An ) est ordonne. Ainsi, si est une permutation distincte de
lidentite, (e, (A1 , . . . , An )) 6= (e, (A(1) , . . . , A(n) )). On dit que les noeuds
e1 , . . . , en sont les fils de e (ou que e est le p`ere des e i ). Si f E appartient
a` un des sous-arbres Ai , alors f est un descendant de e (ou e est un ancetre
de f ). En particulier, la racine dun arbre de hauteur 0 na pas de fils (ce
qui explique la notation (e, )). Un arbre de racine e ayant trois sous-arbres
A1 , A2 , A3 est represente schematiquement a` la figure VI.1. La hauteur de
e2
e1
e3
A2
A3
A
114
S
A
AAA
a
S
S
a
A
A
A
b
b
a
F(A), est un mot defini recursivement. Si larbre est de hauteur nulle, i.e.,
si A = (B, ), B V , alors F(A) = B. Sinon, il existe des arbres
danalyse A1 , . . . , An tels que A = (B, (A1 , . . . , An )). Dans ce cas, on pose
F(A) = F(A1 ) F(An ).
Loperation envisagee ici est bien evidemment la concatenation des fruits
respectifs des differents sous-arbres.
esentes a` la
Exemple VI.2.4. Si on reprend les arbres danalyse de G repr
figure VI.2, les fruits de ces arbres sont respectivement
A, S, a, AA, AAA, a, Ab, aab.
Il est clair qu`a une derivation correspond un arbre danalyse. On construit cet arbre de proche en proche a` partir de larbre danalyse (S, ). A
chaque fois quune variable est substituee, on greffe le sous-arbre correspondant a` la r`egle qui a ete appliquee. Considerons un exemple.
Exemple VI.2.5. Poursuivons lexemple VI.1.3. Nous avions obtenu la
115
S
A
a
S
A
a
b A
A
A
b A b A
b A
a
A
a
A
A
b A b A
a
A
A
b A b A a
a
116
S
A
b A
b A
b A
a
117
E (E) | E + E | E E | E E | E/E | N
N C | NC
C 0 | 1 | | 9.
Cette grammaire gen`ere des expressions arithmetiques elementaires (on sautorise de plus, pour ne pas alourdir lexpose, a` ecrire des nombres commencant par 0).
Considerons le mot 1 2 + 3 appartenant au langage genere par cette
grammaire. Ce mot est obtenu par la derivation a` gauche
E E +E E E +E N E +E C E +E 1E +E
E
E
E
C
1
N
C
3
1 2 + 3.
118
E
E
N
1
C
2
Ainsi, suivant larbre choisi, les groupements de termes sont realises en partant de la gauche ou de la droite et la valeur assignee nest pas necessairement
la valeur attendue.
Si les operateurs nont pas la meme preseance, la grammaire proposee
peut regrouper un operateur de faible preseance avant un operateur de
preseance plus elevee. En effet, considerons le mot 2+35. A ce mot, il correspond les arbres danalyse representes a` la figure VI.7 . Ainsi, levaluation
de larbre de gauche fournit la valeur (2 + 3) 5 alors que pour larbre de
droite, on trouve 2 + (3 5).
Cet exemple montre bien le probl`eme que pose en pratique lutilisation
dune grammaire ambigue. En effet, le compilateur ou linterpreteur 9 na
pas les moyens de determiner quel arbre danalyse permet dassigner une
valeur correcte a` lexpression envisagee. Ainsi, lors de la specification dun
compilateur, il faut veiller a` employer une grammaire non ambigue.
Revenons sur le probl`eme des expressions arithmetiques. Lecueil principal de la grammaire presentee ci-dessus est quelle ne tient pas compte de
9Le r
ole dun compilateur est de transformer un code source en un autre code.
Par exemple, transformer un texte codant un programme ecrit en C en un code machine
intelligible par le processeur ou le syst`eme dexploitation ou encore, transformer un texte
comprenant des instructions LaTeX en un fichier .dvi affichable a
` lecran.
119
E
E
E
E
5
2
C
5
E
E
N
C
5
1
Figure VI.8. Arbres danalyse de 1 2 + 3 et 2 + 3 5
pour une grammaire non ambigue.
120
la concatenation.
D
emonstration. Avec les m
emes notations que dans la preuve precedente,
10Nous savons d
ej`
a que {a b | n N} est algebrique et non regulier.
n n
121
reguli`ere (`
a gauche) si toute production de G poss`ede une des trois formes
suivantes :
I
I
I
Aa
A Ba
A
o`
u A, B appartiennent a` V et a a` . De mani`ere equivalente, on se convainc
facilement11 quune grammaire est reguli`ere a` gauche si les seconds membres
de ses productions appartiennent tous a` V .
Une grammaire hors contexte est reguli`ere (`
a droite) si toute production
de G poss`ede une des trois formes suivantes :
I
I
I
Aa
A aB
A .
{} (ab) ab(a)
qui est regulier.
Nous donnons a` titre indicatif et sans demonstration le resultat suivant.
egulier si et seulement si il est genere
Proposition VI.4.8. Un langage est r
par une grammaire reguli`ere a
` gauche (resp. a
` droite).
11Par exemple, on peut remplacer une r`
egle de la forme A Bab par les r`egles
A B 0 b et B 0 Ba.
122
5. A propos de la hi
erarchie de Chomsky
Dans ce cours, nous nous limitons volontairement a` letude des langages reguliers et des langages algebriques. A titre indicatif, nous presentons dautres types de grammaires plus generales permettant dobtenir de
nouvelles classes plus larges de langages. Ces differents types ayant ete introduits par Noam Chomsky, il est de coutume de parler de la hierarchie de
Chomsky.
D
efinition VI.5.1. Une grammaire G = (V, , P, S) de type 0, ou gram-
maire non restrictive, est la forme la plus generale de grammaire. Les alphabets V et et le symbole initial S sont definis comme dans le cas des
grammaires hors contexte. Une production de la forme u v precise quune
occurence du mot u 6= peut etre remplacee par v, avec u, v (V ) .
Remarque VI.5.2. Les grammaires hors contexte sont donc des cas particuliers de grammaire non restrictive. En effet, dans une grammaire hors
contexte, le premier membre des r`egles est reduit a` des mots dune lettre sur
lalphabet V .
Exemple VI.5.3. La grammaire non restrictive G = (V, , P, S) telle que
V = {S, A, C}, = {a, b, c} et dont les r`egles sont donnees par
S aAbc |
A aAbC |
Cb bC
Cc cc
n
n
n
gen`ere le langage {a b c | n N}. En effet,
I
I
123
u, v (V ) \ {}
|u| |v|.
Si une grammaire satisfait cette derni`ere condition, on parle parfois de grammaire non contractante ou monotone car la longueur des mots produits crot
a` chaque application dune nouvelle r`egle.
Remarque VI.5.6. Une d
efinition equivalente de grammaire dependant
du contexte G = (V, , P, S) est de specifier les productions de P sous la
forme
N v
o`
u , (V ) , N V , v (V ) \ {}. De cette facon, on met
mieux en evidence le contexte dans lequel se trouve la variable N qui peut
avoir des effets differents suivant les elements qui lentourent. On pourrait
par exemple imaginer deux r`egles distinctes
1 N 1 1 v1 1 et 2 N 2 2 v2 2
avec v1 6= v2 si (1 , 1 ) 6= (2 , 2 ).
esentee dans lexemple VI.5.3 nest pas
Exemple VI.5.7. La grammaire pr
monotone a` cause des productions S et A . Il est facile de verifier
que la grammaire suivante gen`ere encore le meme langage,
S aAbc | abc
A aAbC | abC
Cb bC
Cc cc.
Cette derni`ere est bien une grammaire monotone dependant du contexte.
Remarque VI.5.8. Une fois encore, on peut montrer que tout langage
genere par une grammaire dependant du contexte est recursif 13 (i.e., decide
par une machine de Turing). Plus precisement, les langages generes par une
grammaire dependant du contexte sont exactement les langages decides par
les machines de Turing dont la memoire disponible est bornee de mani`ere
lineaire par la taille des donnees. En dautres termes, on ne sautorise pas un
ruban de longueur arbitraire mais a` chaque execution, la longueur du ruban
disponible est proportionnelle a` la taille des donnees fournies a` la machine
de Turing.
Le tableau suivant recapitule les divers faits enonces dans cette section.
13cf. le cours de calculabilit
e.
124
generateur
langage
accepteur
recursivement
machine de Turing
enumerable
grammaire dependant du contexte dependant du contexte machine de Turing
a` memoire lineaire
grammaire hors contexte
hors contexte
automates a` pile
expression reguli`ere
regulier
AFD
Les automates a` pile, accepteurs des langages algebriques, seront presendans une prochaine section.
Remarque VI.5.9. Au vu du tableau pr
ecedent, on dispose des inclusions
suivantes
Reg Lin Alg DP RE
o`
u les differentes abreviations designent respectivement lensemble des langages reguliers, lineaires (cf. remarque VI.4.9), algebriques, dependants du
contexte et recursivement enumerables.
Remarque VI.5.10. Le lecteur attentif pourrait
emettre une objection
125
S SaB | aB
B bB | .
La derivation a` gauche generant le mot aaa gen`ere trois B qui seront chacun
elimines par lapplication de la r`egle B . Ainsi, on a
S SaB SaBaB aBaBaB aaBaB aaaB aaa.
D
efinition VI.6.2. On appelle variable effa
cable toute variable A telle que
A .
Si une grammaire ne contient aucune variable effacable, alors u v entrane
|u| |v|. On est d`es lors en presence dune grammaire monotone (appliquer
une r`egle ne peut faire diminuer la longueur du mot obtenu).
Nous presentons maintenant un algorithme 14 permettant de detecter les
variables effacables. Posons
E0 = {A V | A P }.
Si E0 = , lalgorithme sach`eve et la grammaire ne poss`ede aucune variable
effacable. Sinon, pour i 0, on definit
Ei+1 = Ei {A V | w Ei : A w P }.
Puisque V est fini, la suite des Ei se stabilise. Il est clair que le plus grand
Ei apparaissant dans cette suite est lensemble des variables effacables. Une
condition darret pour lalgorithme revient a` tester legalite de E i et Ei+1 .
Proposition VI.6.3. Soit G = (V, , P, S) une grammaire hors contexte.
Il existe une grammaire G0 = (V 0 , 0 , P 0 , S 0 ) que lon peut construire effectivement15 telle que
I
I
I
G et G0 sont equivalentes,
S 0 napparat dans aucun second membre des productions de G 0 ,
si appartient a
` L(G) = L(G0 ), alors la seule variable effacable est
S 0 . Sinon, G0 ne contient aucune variable effacable.
D
emonstration. Si S apparat dans un second membre des productions
126
o`
u chaque xi peut prendre la valeur Ai ou . Une r`egle est donc remplacee
par au plus 2n nouvelles r`egles. Il est clair que cette modification nalt`ere
pas le langage genere puisquon a eventuellement enleve, des seconds membres des productions, des variables effacables. (Remarquons quon ne peut
pas simplement supprimer ces variables car une variable effacable peut etre
utilisee dans la production dun mot terminal.)
La derni`ere etape revient a` supprimer (de facon recursive) les r`egles de
la forme A .
I
egles sont
Exemple VI.6.4. Soit la grammaire dont les r`
S ACA
A aAaD | B | C
B bB | b
C cS |
D .
Puisque S apparat dans la production C cS, la premi`ere etape consiste
a` introduire une nouvelle variable S 0 et les r`egles deviennent
S0 S
S ACA
A aAaD | B | C
B bB | b
C cS |
D .
Appliquons lalgorithme de recherche des variables effacables. On trouve
E0 = {C, D}, E1 = {A, C, D}, E2 = {S, A, C, D} et E3 = {S 0 , S, A, C, D} = E.
En suivant la preuve precedente, on remplace les r`egles comme suit
127
S0 S |
S ACA | CA | AA | AC | A | C |
A aAaD | B | C | aAa | aaD | aa |
B bB | b
C cS | c |
D .
Il ne reste plus qu`a eliminer les -productions. En particulier, puisque D
est le premier membre de lunique r`egle D , on peut supprimer D de
tous les seconds membres. On a
S0 S
S ACA | CA | AA | AC | A | C
A aAa | B | C | aa
B bB | b
C cS | c.
Cette derni`ere grammaire gen`ere le meme langage que la grammaire de depart a` lexception du mot vide (en effet, E). Pour obtenir une grammaire
equivalente, il suffit dajouter la r`egle S 0 .
Ainsi, on peut toujours se ramener a` une grammaire essentiellement
monotone. Ladjectif essentiellement stipule quon autorise lunique -production S permettant de generer le mot vide et que le symbole initial
S napparat dans aucun second membre des r`egles.
6.2. Elimination des r`
egles A B.
Remarque VI.6.5. Une r`
egle de la forme A B, A, B V , revient
simplement a` renommer une variable A en B. On dira dune telle r`egle quil
sagit dune 1-production. Dans le cas A A, on parle de 1-production
circulaire.
D
efinition VI.6.6. Soient A, A1 , . . . , An , B des variables dune grammaire
G. Une derivation de la forme
A A1 An B,
o`
u chaque production est une 1-production, est une chane.
Soit A une variable etant le premier membre dune 1-production. Lalgorithme suivant16 permet de determiner toutes les variables apparaissant dans
une chane debutant en A. Posons C 0 = {A} et C1 = . Pour i 0,
Ci+1 = Ci {C V | B Ci \ Ci1 : B C P }.
La procedure sarrete lorsque Ci = Ci+1 . On notera ce dernier ensemble
C(A). Une fois encore, puisque V est fini, lalgorithme sach`eve toujours.
Proposition VI.6.7. Soit G = (V, , P, S) une grammaire essentiellement
monotone. Il existe une grammaire equivalente G 0 ne contenant aucune 1production. De plus, cette grammaire peut etre obtenue de mani`ere effective.
16On utilise ici une approche top-down.
128
D
emonstration. Cela d
ecoule immediatement de la constatation faite a`
la remarque VI.6.5. Pour toute variable A qui est le premier membre dune
1-production, les r`egles de la nouvelle grammaire G 0 qui ont pour premier
membre A sont de la forme A w o`
u
I
w 6 V ,
B C(A) : B w P .
De cette mani`ere, il est clair quon elimine les 1-productions sans pour autant
modifier le langage genere. (Attirons lattention du lecteur sur le fait que
A C(A). Ainsi, si A w P avec w 6 V , alors A w est encore une
r`egle de G0 .)
Si A est une variable napparaissant dans aucun premier membre des 1productions de G, les r`egles correspondantes de G et de G 0 sont identiques.
Les variables, lalphabet des symboles terminaux et le symbole initial de
G0 concident avec ceux de G.
S ACA | CA | AA | CA | aAa | aa | bB | b | cS | c
|
{z
} | {z } | {z } | {z }
S
A aAa | aa | bB | b | cS | c
| {z } | {z } | {z }
A
B bB|b
C cS|c.
129
S G uxv G w
Ti+1 = Ti {A V | w (Ti ) : A w P }.
Puisque V est fini, la suite des Ti se stabilise. Soit T , lensemble des variables
permettant dobtenir un mot sur . Si A nappartient pas a` T , alors A est
inutile.
Proposition VI.6.11. Soit G = (V, , P, S) une grammaire. Avec les no-
egles sont
Exemple VI.6.12. Soit la grammaire dont les r`
130
S AC | BS | B
A aA | aF
B CF | b
C cC | D
D aD | BD | C
E aA | BSA
F bB | b.
En appliquant lalgorithme precedent, on trouve
T0 = {B, F }, T1 = {S, A, B, F }, T2 = {S, A, B, E, F } = T.
En eliminant les r`egles faisant intervenir C ou D, on obtient
S BS | B
A aA | aF
B b
E aA | BSA
F bB | b.
Cette premi`ere etape nest pas suffisante pour eliminer compl`etement les
symboles inutiles. En effet, si on consid`ere lexemple suivant
S A
A Aa | bA | b
B b,
bien que la variable B appartienne a` T , elle ne joue aucun role dans les
derivations obtenues depuis S. En effet, B nest pas accessible depuis S.
Cela signifie que S 6 uBv, u, v (V ) , et donc B ne contribue a`
aucune derivation a` partir de S. La seconde etape permettant deliminer les
symboles inutiles consiste a` conserver uniquement les symboles accessibles.
D
efinition VI.6.13. Soit G = (V, , P, S) une grammaire hors contexte.
131
produire des symboles terminaux. On applique ensuite lalgorithme precedent pour en determiner les variables accessibles depuis le symbole initial.
Tout r`egle faisant intervenir une variable non accessible peut etre supprimee.
algorithmes. Il faut tout dabord rechercher lensemble T des variables permettant dobtenir des symboles terminaux et ensuite eliminer les symboles
inaccessibles. En effet, considerons la grammaire simpliste
S a | AB
A b
B B.
Lensemble T est {S, A}, ainsi une premi`ere reduction donne
S a
A b.
Puisque A est inaccessible, il reste uniquement S a.
Par contre, si on recherche dabord les symboles accessibles, on trouve
A1 = {S, A, B}. La grammaire de depart reste inchangee puisquaucun
symbole nest inaccessible. Si on recherche ensuite les elements de T , on
trouve T = {S, A} et donc on obtient
S a
A b
qui na pas la forme voulue. En effet, dans cet ordre, lelimination des variables nappartenant pas a` T peut creer de nouvelles variables inaccessibles.
6.4. Forme normale de Chomsky.
D
efinition VI.6.17. Une grammaire hors contexte G = (V, , P, S) est
sous forme normale de Chomsky si les r`egles de G sont toutes de lune des
formes suivantes :
I
I
I
A BC o`
u A V , B, C V \ {S},
A a o`
u A V , a ,
S .
Linteret pratique de la mise sous forme de Chomsky est que les arbres
danalyse correspondants seront des arbres binaires 17 (i.e., le nombre de fils
dun noeud est au plus deux). Nous verrons aussi a` la section suivante que
17cf. un cours dintroduction a
` lalgorithmique pour le traitement systematique des
132
disposer dune forme normale pour les grammaires permet de simplifier les
developpements de certaines preuves.
Th
eor`
eme VI.6.18. Soit G = (V, , P, S) une grammaire hors contexte.
On peut construire de mani`ere effective une grammaire equivalente G 0 mise
sous forme normale de Chomsky.
D
emonstration. Au vu des sous-sections pr
ecedentes, on peut supposer
S ,
A a o`
u A V , a ,
A w o`
u A V , w ((V ) \ {S}) et |w| 2.
avec wi , Ai V \ {S}.
S SaB | aB
B bB | .
Pour pouvoir obtenir la forme normale de Chomsky, nous remplacons dabord
cette grammaire par une grammaire equivalente dont le symbole initial napparat dans aucun second membre et qui est essentiellement monotone
133
S0 S
S SaB | aB | Sa | a
B bB | b.
Ensuite, on supprime les 1-productions et on obtient
S 0 SaB | aB | Sa | a
S SaB | aB | Sa | a
B bB | b
et on remarque quaucun symbole nest inutile. En introduisant de nouvelles
variables, on a tout dabord
S 0 SAB | AB | SA | a
S SAB | AB | SA | a
B B 0B | b
A a
B 0 b.
Enfin, pour obtenir des r`egles de longueur au plus deux, on a
S 0 ST | AB | SA | a
S ST | AB | SA | a
B B 0B | b
A a
B0 b
T AB.
6.5. Forme normale de Greibach.
D
efinition VI.6.20. Une grammaire hors contexte G = (V, , P, S) est
sous forme normale de Greibach si les r`egles de G sont toutes de lune des
formes suivantes :
I
I
I
18
134
7. Lemme de la pompe
On dispose dun analogue du lemme de la pompe dans le cadre des
langages hors contexte.
Proposition VI.7.1 (Lemme de la pompe Th
eor`eme de Bar-Hillel). Soit
L un langage hors contexte. Il existe p N \ {0} tel que tout mot z L de
longueur |z| p peut secrire z = uvwxy, u, v, w, x, y avec |vwx| < p,
vx 6= et pour tout n N,
uv n wxn y L.
Pour obtenir ce resultat, nous allons tirer parti de la mise sous forme
normale de Chomsky. Neanmoins, on pourrait obtenir un resultat analogue
sans recourir a` cette simplification.
Lemme VI.7.2. Soit G = (V, , P, S) une grammaire hors contexte mise
Figure VI.9. Arbres danalyse de hauteur 1 pour une grammaire mise sous forme normale de Chomsky.
sont de longueur au plus 1. Supposons a` present le resultat satisfait pour
les arbres de hauteur au plus n et verifions-le pour les arbres de hauteur
n + 1. Pour obtenir un arbre de hauteur n + 1, on applique necessairement
une premi`ere r`egle de la forme A BC. Les sous-arbres de racine B et C
sont chacun de hauteur au plus n. Par hypoth`ese de recurrence, leurs fruits
respectifs sont de longueur au plus 2 n1 . Le fruit de larbre, obtenu par
concatenation des fruits des deux sous-arbres, a donc une longueur majoree
par 2.2n1 = 2n .
mais egaux a
` . Ici, nous autorisons une telle situation. Il est clair que cette generalisation
ne modifie en rien les developpements de la section 2.
135
0
1
2
3
4
136
S uAy,
A vAx
et
A w.
Ce resultat peut etre utilise pour montrer que certains langages ne sont
pas algebriques.
Exemple VI.7.4. Le langage
L = {an bn cn | n N}
nest pas algebrique. Procedons par labsurde. Soit p lentier donne dans
lenonce du lemme de la pompe. Le mot z = a p bp cp est de longueur au
moins p. Il existe donc des mots u, v, w, x, y tels que
ap bp cp = uvwxy
avec |vwx| < p et vx 6= . Par consequent, vwx ne peut contenir simultanement des lettres a, b et c. Ceci contredit le fait que uv n wxn y doive
appartenir au langage pour tout n.
7.1. Th
eor`
eme de Parikh. Un autre resultat peut parfois saverer
utile pour verifier quun langage nest pas algebrique. Nous ne ferons ici que
denoncer le theor`eme de Parikh.
D
efinition VI.7.5. Un sous-ensemble M de N k est dit lin
eaire sil existe
p0 , p1 , . . . , ps Nk tels que
s
X
i pi | 1 , . . . , s N} = p0 + N.p1 + + N.ps .
M = {p0 +
i=1
137
Remarque VI.7.7. La r
eciproque de ce resultat est fausse. En effet, nous
savons que le langage L = {an bn cn | n N} nest pas algebrique. Par contre,
1
(L) = N. 1
est semi-lineaire.
8. Automates `
a pile
Dune part, nous avons vu dans les sections precedentes que les grammaires hors contexte etaient utilisees pour generer les langages algebriques.
Dune certaine facon, les grammaires sont une generalisation des expressions
reguli`eres qui permettent quant a` elles de generer les langages reguliers.
Dautre part, nous avons montre que les automates finis acceptent exactement les langages reguliers. Lensemble des langages reguliers etant
un sous-ensemble strict de lensemble des langages algebriques, pour esperer
trouver lanalogue des automates finis, nous allons etendre les possibilites de
ces derniers par lajout dune pile. Un automate fini est, par definition, une
machine ne disposant que dune memoire finie (le nombre de configurations
qui peuvent etre memorisees est egal a` son nombre detats). Lajout dune
pile20 permet detendre les possibilites de memorisation, puisque, comme
nous allons le voir, la capacite de stockage dune pile peut etre arbitrairement grande.
Une pile est un dispositif du type21 dernier entre, premier sorti. On
c
b
a
Figure VI.12. Representation dune pile.
peut la representer a` laide dun mot fini. Par convention, on notera lalphabet
de pile . Une pile est donc un mot p . Les operations dont on dispose
pour une pile sont
I
I
I
20Dispositif permettant de m
emoriser un nombre arbitraire de symboles appartenant
a
` un alphabet fini.
21LIFO : Last In First Out. Penser par exemple a
` une pile dassiettes.
138
(Q, , , , q0 , F ) o`
u Q est un ensemble fini detats, est lalphabet de
lautomate, est lalphabet de pile,
Q Q
(q, m, x, q 0 , z) .
et
m, x/z
q
139
avec q F.
a, /A
b, A/
b, A/
Il est clair quon peut remplacer un automate a` pile par un automate a` pile
elementaire en ajoutant de nouveaux etats (les constructions sont semblables
a` celles developpees dans le lemme II.2.8).
Proposition VI.8.6. Soit G = (V, , P, S) une grammaire hors contexte.
Lautomate a
` pile A = (Q, , , , q0 , F ) o`
u
I
Q = {q0 , f },
= V ,
140
I
I
F = {f } et
la relation de transition est donnee par
, /S
, A/wR
, /
o`
u r est un suffixe de u, i.e., u = u0 r, car on a pu appliquer certaines
transitions de la forme (, /) pour lire un prefixe u 0 de u et o`
u wv 0 = rv car
pour lire r, puisquon applique uniquement des r`egles de la forme (, /),
il faut que wv 0 debute par r. Ainsi,
[f, u, S] = [f, u0 r, S] ` [f, r, Av 0 ] = [f, r, Av 0 ]
et donc
[f, u0 , S] ` [f, , Av 0 ].
141
avec x, z .
o`
u pour conclure, on applique des transitions (, /) pour lire et depiler yz.
en general pas deterministe car lorsquon se trouve dans letat f et que la pile
a un sommet A, i.e., lorsque lon se trouve dans une configuration [f, w, Ap]
avec w et p , et si la grammaire G poss`ede deux r`egles de la
forme A w1 et A w2 , alors on peut considerer indifferemment les deux
transitions (, A/w1R ) ou (, A/w2R ).
Il nous faut a` present montrer que tout langage accepte par un automate
a` pile est algebrique. Nous allons pour ce faire associer a` un automate a`
pile, une grammaire dont les r`egles sont obtenues a` partir des transitions de
lautomate.
Soit A = (Q, , , , q0 , F ) un automate a` pile o`
u lon peut supposer que
Q ( {}) ( {}) Q ( {}).
Il est clair quil ne sagit pas dune veritable restriction (on autorise a` lire,
empiler ou depiler au plus une lettre; si lautomate na pas la forme voulue,
24Par r
ecurrence sur la longueur de la derivation.
142
143
S h1, , 2i | h1, , 1i
h1, , 1i a h1, A, 1i
(1, a, , 1, A)
h1, , 2i a h1, A, 2i
h1, A, 1i b h2, , 1i
(1, b, A, 2, )
h1, A, 2i b h2, , 2i
h2, A, 1i b h2, , 1i
(2, b, A, 2, )
h2, A, 2i b h2, , 2i
h1, A, 1i a h1, A, 1i h1, A, 1i (1, a, A, 1, AA)
h1, A, 1i a h1, A, 2i h2, A, 1i
h1, A, 2i a h1, A, 1i h1, A, 2i
h1, A, 2i a h1, A, 2i h2, A, 2i
h1, , 1i
h2, , 2i
(On a indique a` chaque fois, de quelle transition provient la r`egle.) Le mot
aabb est accepte par lautomate car on a la suite de configurations
[1, aabb, ] ` [1, abb, A] ` [1, bb, AA] ` [2, b, A] ` [2, , ].
Ce mot est aussi genere par la grammaire en considerant la derivation
S h1, , 2i ah1, A, 2i aah1, A, 2ih2, A, 2i aabh2, , 2ih2, A, 2i
aabh2, A, 2i aabbh2, , 2i aabb.
Bien que cet exemple ne constitue en rien une preuve, on remarque que la
grammaire permet dune certaine facon de tenir compte des lettres lues dans
lautomate et de retenir letat de la pile.
Le resultat suivant peut aussi etre considere comme une consequence du
theor`eme de Chomsky-Sch
utzenberger (theor`eme VI.10.3). A la difference de
ce dernier, la preuve donnee ici est constructive : on associe une grammaire
de mani`ere canonique a` lautomate considere.
Proposition VI.8.9. Tout langage accept
e par un automate a
` pile A est
hors contexte.
D
emonstration. Nous supposons
etre dans les conditions donnees cidessus (i.e., nous disposons dun automate a` pile A modifie auquel on a
associe une grammaire G). Avec les notations qui prec`edent, nous devons
montrer que dans A, [q0 , w, ] ` [q, , ] avec q F si et seulement si il
existe une derivation de la grammaire G telle que S w.
Montrons tout dabord que si [qi , w, A] ` [qj , , ] avec A {},
alors il existe une derivation de G telle que hq i , A, qj i w. On proc`ede
par recurrence sur la longueur de la suite de configurations. Si celle-ci est
nulle, qi = qj , w = , A = et pour conclure, on remarque que hq i , , qi i
est une r`egle de G. Supposons le resultat acquis pour une suite de longueur
n et verifions-le pour une suite de longueur n + 1. Si [q i , w, A] ` [qj , , ]
avec une suite de n + 1 transitions, alors on peut decomposer cette suite
144
et
hq` , A, qj i y.
Do`
u
hqi , A, qj i shqk , B, q` ihq` , A, qj i sxy = w.
hqk , B, qm i x, hqm , A, qj i y
et
w = sxy.
145
D
emonstration. Cela r
esulte immediatement des propositions VI.8.6 et
VI.8.9.
u, v : u L, uv L v = .
sobtient comme la concatenation de deux langages algebriques (cf. proposition VI.4.3). De meme, le langage M = a {bn cn | n N} est aussi
algebrique. Il est clair que
L M = {an bn cn | n N}
nest pas algebrique. Ainsi, cet exemple montre que lensemble des langages
algebriques nest pas stable pour lintersection.
Remarque VI.9.2. Supposons que pour tout langage L , L alg
ebrique
L M = \ (( \ L) ( \ M )),
146
Th
eor`
eme VI.9.3. Soient R un langage r
egulier et L un
D
emonstration. Lid
ee de la demonstration consiste, tout comme dans
le cas de lintersection de deux langages reguliers, a` construire un automate produit simulant simultanement le comportement dun automate fini
deterministe acceptant R et dun automate a` pile acceptant L. Soient
A = (Q, q0 , F, , ) et A0 = (Q0 , , , 0 , q00 , F 0 ) deux tels automates o`
u A0
26
est suppose elementaire . On consid`ere lautomate a` pile
P = (Q Q0 , , , , (q0 , q00 ), F F 0 )
o`
u la relation de transition est donnee par
((qi , qi0 ), , x, (qj , qj0 ), y) si (qi , ) = qj et (qi0 , , x, qj0 , y) 0
et
((qi , qi0 ), , x, (qi , qj0 ), y) si (qi0 , , x, qj0 , y) 0 .
ebriques est stable par morLemme VI.9.4. Lensemble des langages alg
phisme.
D
emonstration. Soient L un langage alg
ebrique genere par G =
10. Un th
eor`
eme de Schu
tzenberger
Nous terminons ce chapitre par une caracterisation des langages acceptes par un automate a` pile. Ainsi, ce resultat montre en particulier quun
langage algebrique peut toujours sobtenir comme limage par un morphisme
de lintersection dun langage regulier et du langage forme de mots transformant la pile vide en elle-meme. Expliquons notre propos.
Dans cette section A = (Q, , , , q0 , F ) est un automate a` pile fixe une
fois pour toutes et suppose elementaire. Si = { 1 , . . . , k }, on consid`ere
lalphabet
= {e1 , . . . , ek , d1 , . . . , dk }
o`
u e1 , . . . , ek , d1 , . . . , dk sont de nouveaux symboles27. Si p represente
letat de la pile, les elements de agissent sur p comme suit :
26Il faut surtout ne pouvoir lire quau plus une lettre de a
` chaque transition.
27e comme empilement et d comme d
epilement
I
I
I
147
, .p = p,
i {1, . . . , k}, ei .p = i p,
si p = i p0 , alors di .p = p0 .
gage DA forme des mots qui transforment la pile vide en elle-meme, i.e.,
DA = {x | x. = }.
avec u , z .
avec x, y .
148
esentation de Chomsky-Sch
utzenberger).
Th
eor`
eme VI.10.3 (Thm. de repr
Soit L un langage accepte par un automate a
` pile A. Il existe un morphisme h : et un langage regulier R tel que
R
L = h(DA
R).
(p, , , q, ) devient p q,
(p, i , , q, ) devient p i q,
e
(p, , i , q, ) devient p i q,
d
(p, , , q, i ) devient p i q.
i 7 i
h : :
e 7
i
di 7 .
VI.11. Exercices
149
Ce morphisme est simplement defini pour effacer les lettres de \ . ReR R, alors on se convainc ais
ciproquement, si W appartient a` DA
ement
que h(W ) est un mot accepte par lautomate.
e
A
b
b
d
A
dA
langages
L = {wwR | w {a, b} }
et
M = {wcwR | w {a, b} }.
Exercice VI.11.2. D
ecrire une grammaire hors contexte generant les lan-
gages
{an bn cm | n, m N},
et
{an bm cm | n, m N}
{an bm | m > n 0}.
150
langage
L = {wf (w) | w {a, b} }
est-il algebrique ?
forme des mots sur {a, b} pour lesquels il existe un prefixe contenant (strictement) plus de b que de a, i.e.,
u, v {a, b} : w = uv et |u|b > |u|a .
Par exemple, baa, abba et abbaaa appartiennent a` L mais aab et ababab ny
appartiennent pas.
VI.11. Exercices
151
a, /AAA
a, /AAA
b, A/
b, A/
b, A/
a, /AAA
b, A/
b, A/
Figure VI.17. Automates a` pile.
Exercice VI.11.13. Montrer que si lautomate a
` pile A = (Q, , , , q 0 , F )
t 1 .G
p,q
p, q Q
{ak | k N}
{ai bj ci dj | i, j 0}
Lensemble des prefixes de longueur finie du mot infini
abaabaaab ban ban+1 b
ebriques ?
Exercice VI.11.15. Les langages suivants sont-ils alg
L = {ai b2i cj | i, j 0},
et
M = {aj bi c2i | i, j 0}
L M.
Exercice VI.11.16. Soit le langage
L = {ww | w {a, b} }.
152
S ACA
A aAa | B | C
B bB | b
C cC | .
Si la grammaire obtenue contient des 1-productions, les eliminer elles aussi
pour obtenir une grammaire equivalente.
Exercice VI.11.20. Mettre sous forme essentiellement monotone la gram-
suivante
S aABA | aBB
A bA | b
B cB | c.
Exercice VI.11.22. Mettre sous forme normale de Chomsky, la grammaire
suivante
S
A
B
C
A | ABa | AbA
Aa |
Bb | BC
CB | CA | bB.
generant le langage
{ww | w {a, b} }.
{w3 | w {a, b} }.
Bibliographie
[1] A. Aho, J. Ullman, Concepts fondamentaux de linformatique, Dunod, Paris, (1993).
[2] A. Aho, R. Sethi, J. Ullman, Compilers: Principles, Techniques, and Tools, AddisonWesley, (1986).
[3] J.-P. Allouche, J. Shallit, Automatic Sequences, Theory, Applications, Generalizations, Cambridge University Press, Cambridge, (2003).
[4] J.-M. Autebert, Langages algebriques, etudes et recherches en informatique, Masson,
Paris, (1987).
[5] J.-M. Autebert, J. Berstel, L. Boasson, Context-Free Languages and Pushdown Automata, Handbook of Formal Languagues, Vol. 1, Springer, (1997).
[6] E. Bach, J. Shallit, Algorithmic number theory, Efficient algorithms, Foundations of
Computing Series, MIT Press, Cambridge, MA, (1996).
[7] J. Berstel, L. Boasson, The set of minimal words of a context-free language is contextfree, J. Comput. System Sci. 55 (1997), 477488
153
154
uv = vu.
I.2
I.3
I.4
Preperiode et periode.
16
II.1
Un AFD.
24
II.2
25
II.3
Un AFND.
26
II.4
27
II.5
28
28
30
II.8
30
II.9
31
II.6
II.7
II.10
un ANFD acceptant
II.11
un AFD acceptant
II.12
Lautomate A3 .
a(ba)
a(ba)
a .
a .
32
32
33
II.13
Un AFD acceptant L3 .
34
II.14
34
II.15
35
II.16
II.17
36
II.18
36
II.19
37
a(ba) .
II.20
Un AFND acceptant
II.21
AFD acceptant
a b
II.22
AFD shuffle.
42
II.23
43
II.24
Un AFND.
43
II.25
43
et
(cd) .
155
38
41
156
II.26
Un AFND.
44
III.1
47
III.2
III.3
III.4
III.5
47
48
{a} .
III.6
III.7
III.8
AFND acceptant
47
48
{a} .
48
48
49
III.9
III.10
49
III.11
AFND acceptant
III.12
50
III.13
Le pivotage.
51
III.14
51
III.15
52
III.16
53
III.17
Le lemme de la pompe.
54
III.18
58
III.19
58
IV.1
59
IV.2
q 1 .F = w1 .L si (q0 , w) = q.
61
IV.3
Un automate minimal.
64
IV.4
64
IV.5
IV.6
49
49
69
IV.7
Un automate minimal.
70
IV.8
Un AFD accessible A.
70
IV.9
Un AFD A.
AR .
IV.10
Lautomate
IV.11
Lautomate (A).
72
72
72
IV.12
Lautomate
((A))R .
72
IV.13
Lautomate ((A)).
73
IV.14
Un AFD.
77
157
IV.15
Un autre AFD.
77
IV.16
78
IV.17
79
V.1
Un transducteur.
81
V.2
82
u.
V.3
wv appartient a`
85
V.4
87
V.5
87
V.6
88
V.7
88
V.8
89
V.9
Projection : Q QL sur AL .
94
V.10
97
V.11
97
V.12
98
V.13
Graphe associe a` HL .
99
100
V.15
Indice et periode.
101
V.16
106
V.17
107
V.18
Deux AFD.
107
V.19
Un AFD.
107
VI.1
Un arbre.
113
VI.2
114
VI.3
115
VI.4
Un arbre danalyse.
116
VI.5
117
119
V.14
VI.6
VI.7
118
VI.8
VI.9
VI.10
158
VI.11
135
VI.12
137
VI.13
138
VI.14
139
VI.15
VI.16
VI.17
Automates a` pile.
{a n bn
| n N}.
140
149
151
Index
Pref(L) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Pref(w). . . . . . . . . . . . . . . . . . . . . . . . . . . .2
Suff(L) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Suff(w) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Notations
DA (pile vide) . . . . . . . . . . . . . . . . . . . 147
D L (derive) . . . . . . . . . . . . . . . . . . . . . 62
Eu (p) (recherche dun mot) . . . . . . . 85
F (etats finals) . . . . . . . . . . . . . . . . 23, 25
L (etoile de Kleene) . . . . . . . . . . . . . . 8
L+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Ln (puissance) . . . . . . . . . . . . . . . . . . . . . 7
Q (etats) . . . . . . . . . . . . . . . . . . . . . . 23, 25
S 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
AL (automate minimal) . . . . . . . . . . 62
(relation de transition) . . . . . . . . . 25
(fonction de transition) . . . . . . . . . 23
L (congruence syntaxique) . . . . . . 95
Ca (sous-groupe). . . . . . . . . . . . . . . . .101
HL (monode des transitions) . . . . . 97
Com(L) (cl
oture commutative) . . . . 10
Pal( ) (palindromes) . . . . . . . . . . . . . 6
(A) (determinise de AR ) . . . . . . . . 70
2 (valeur base 2) . . . . . . . . . . . . . . . . 45
(fonction de Parikh) . . . . . . . . . . . . . 1
L (complexite) . . . . . . . . . . . . . . . 42, 88
tt (shuffle) . . . . . . . . . . . . . . . . . . . . . . 10
L (congruence de Nerode) . . . . . . . 60
k
L (racine dun langage) . . . . . . . . . 74
(mot vide) . . . . . . . . . . . . . . . . . . . . . . . 1
-production . . . . . . . . . . . . . . . . . . . . 124
-transitions . . . . . . . . . . . . . . . . . . . . . . 27
|w| (longueur) . . . . . . . . . . . . . . . . . . . . . 1
|w| (nombre de lettres) . . . . . . . . . . . 1
q 1 .G . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
q0 (etat initial) . . . . . . . . . . . . . . . . . . . 23
wR (miroir). . . . . . . . . . . . . . . . . . . . . . . .6
w1 .L . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Fac(L). . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Fac(w) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
A
adjacence (matrice) . . . . . . . . . . . . . . . 88
AFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
AFE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
AFND. . . . . . . . . . . . . . . . . . . . . . . . . . . .25
algorithme
1-production . . . . . . . . . . . . . . . . . . 127
etats equivalents . . . . . . . . . . . . . . . 68
constr. par sous-ensembles . . . . . 30
obtention expression reguli`ere . . 52
semi-groupe aperiodique. . . . . . .103
symboles inutiles . . . . . . . . . . . . . . 129
variables effacables . . . . . . . . . . . . 125
alphabet . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
ancetre . . . . . . . . . . . . . . . . . . . . . . . . . . 113
arbre danalyse . . . . . . . . . . . . . . . . . . 113
fruit . . . . . . . . . . . . . . . . . . . . . . . . . . 114
automate
emonde . . . . . . . . . . . . . . . . . . . . . . . . 91
a
` pile . . . . . . . . . . . . . . . . . . . . . . . . . 138
elementaire . . . . . . . . . . . . . . . . . 139
atomique . . . . . . . . . . . . . . . . . . . 139
configuration . . . . . . . . . . . . . . . 138
determinsite . . . . . . . . . . . . . . . . 139
equivalent . . . . . . . . . . . . . . . . . . 139
accessible . . . . . . . . . . . . . . . . . . . . . . 65
complet . . . . . . . . . . . . . . . . . . . . . . . . 23
elementaire . . . . . . . . . . . . . . . . . . . . . 27
equivalent. . . . . . . . . . . . . . . . . . .26, 50
fini deterministe . . . . . . . . . . . . . . . . 23
fini etendu . . . . . . . . . . . . . . . . . . . . . 50
fini non deterministe . . . . . . . . . . . 25
159
160
Index
minimal . . . . . . . . . . . . . . . . . . . . . . . . 62
reduit . . . . . . . . . . . . . . . . . . . . . . . . . . 65
sans permutation. . . . . . . . . . . . . .108
Parikh (de) . . . . . . . . . . . . . . . . . . . . . . 1
rationnelle . . . . . . . . . . . . . . . . . . . . . 81
transition . . . . . . . . . . . . . . . . . . . . . . 23
grammaire
equivalente . . . . . . . . . . . . . . . . . . . . 110
algebrique . . . . . . . . . . . . . . . . . . . . .110
dependant du contexte . . . . . . . . 122
hors contexte . . . . . . . . . . . . . . . . . 110
lineaire. . . . . . . . . . . . . . . . . . . . . . . .122
monotone . . . . . . . . . . . . . . . . . . . . . 123
non contractante . . . . . . . . . . . . . . 123
non ambigue . . . . . . . . . . . . . . . . . . 111
non restrictive . . . . . . . . . . . . . . . . 122
production . . . . . . . . . . . . . . . . . . . . 110
reguli`ere . . . . . . . . . . . . . . . . . . . . . . 121
r`egle de derivation . . . . . . . . . . . . 110
symbole
non terminal . . . . . . . . . . . . . . . . 110
terminal . . . . . . . . . . . . . . . . . . . . 110
symbole initial . . . . . . . . . . . . . . . . 110
variable . . . . . . . . . . . . . . . . . . . . . . . 110
Greibach
forme normale . . . . . . . . . . . . . . . . 133
C
Chomsky
-Sch
utzenberger (theor`eme) . . . 148
forme normale . . . . . . . . . . . . . . . . 131
hierarchie (de) . . . . . . . . . . . . . . . . 123
cl
oture commutative . . . . . . . . . . . . . . 10
complexite . . . . . . . . . . . . . . . . . . . . . . . .88
congruence syntaxique . . . . . . . . . . . . 95
constante . . . . . . . . . . . . . . . . . . . . . . . .136
D
depiler . . . . . . . . . . . . . . . . . . . . . . . . . . 138
derivation . . . . . . . . . . . . . . . . . . . . . . . 110
a
` gauche . . . . . . . . . . . . . . . . . . . . . . 111
a
` droite . . . . . . . . . . . . . . . . . . . . . . . 111
descendant . . . . . . . . . . . . . . . . . . . . . . 113
Dyck (langage de) . . . . . . . . . . . . . . . 112
E
empiler . . . . . . . . . . . . . . . . . . . . . . . . . . 138
ensemble
lineaire. . . . . . . . . . . . . . . . . . . . . . . .136
semi-lineaire . . . . . . . . . . . . . . . . . . 136
ultimement periodique . . . . . . . . . 15
etat . . . . . . . . . . . . . . . . . . . . . . . . . . . 23, 25
accessible . . . . . . . . . . . . . . . . . . . . . . 39
coaccessible . . . . . . . . . . . . . . . . . . . . 39
final . . . . . . . . . . . . . . . . . . . . . . . . 23, 25
initial . . . . . . . . . . . . . . . . . . . . . . . 23, 25
etoile (lemme) . . . . . . . . . . . . . . . . . . . . 54
etoile de Kleene. . . . . . . . . . . . . . . . . . . .8
expression reguli`ere . . . . . . . . . . . . . . . 11
equivalente . . . . . . . . . . . . . . . . . . . . . 12
sans etoile. . . . . . . . . . . . . . . . . . . . .100
F
facteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
propre. . . . . . . . . . . . . . . . . . . . . . . . . . .2
factoriel (langage) . . . . . . . . . . . . . . . . . 9
fils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
fonction
complexite (de) . . . . . . . . . . . . . . . . 88
I
indice . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
K
Kleene
etoile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
theor`eme (de) . . . . . . . . . . . . . . . . . . 53
L
langage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
accepte . . . . . . . . . . . . . . . . . 24, 26, 50
algebrique . . . . . . . . . . . . . . . . . . . . .110
commutatif. . . . . . . . . . . . . . . . . . . . .10
concatenation . . . . . . . . . . . . . . . . . . . 7
Dyck . . . . . . . . . . . . . . . . . . . . . . . . . . 112
etoile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
factoriel . . . . . . . . . . . . . . . . . . . . . . . . . 9
hors contexte . . . . . . . . . . . . . . . . . 110
image inverse par morphisme . . . . 9
image par morphisme. . . . . . . . . . . .9
miroir . . . . . . . . . . . . . . . . . . . . . . . . . . 10
non ambigu . . . . . . . . . . . . . . . . . . . 111
Index
prefixe . . . . . . . . . . . . . . . . . . . . . . . . 145
prefixiel . . . . . . . . . . . . . . . . . . . . . . . . . 9
puissance . . . . . . . . . . . . . . . . . . . . . . . . 7
regulier . . . . . . . . . . . . . . . . . . . . . . . . 12
racine k-i`eme . . . . . . . . . . . . . . . . . . . 74
sans etoile. . . . . . . . . . . . . . . . . . . . .100
shuffle . . . . . . . . . . . . . . . . . . . . . . . . . . 10
suffixiel. . . . . . . . . . . . . . . . . . . . . . . . . .9
lettre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
lineaire . . . . . . . . . . . . . . . . . . . . . . . . . . 136
M
matrice (adjacence) . . . . . . . . . . . . . . . 88
miroir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
monode syntaxique . . . . . . . . . . . . . . 96
morphisme . . . . . . . . . . . . . . . . . . . . . . . . 2
effacant . . . . . . . . . . . . . . . . . . . . . . . . 10
non effacant . . . . . . . . . . . . . . . . . . . . 10
mot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
concatenation . . . . . . . . . . . . . . . . . . . 3
constant . . . . . . . . . . . . . . . . . . . . . . . . . 5
longueur . . . . . . . . . . . . . . . . . . . . . . . . 1
periode . . . . . . . . . . . . . . . . . . . . . . . . . . 5
primitif . . . . . . . . . . . . . . . . . . . . . . . . 19
vide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Myhill-Nerode (theor`eme de) . . . . . 67
N
Nerode (congruence) . . . . . . . . . . . . . .60
P
periode . . . . . . . . . . . . . . . 5, 15, 102, 136
p`ere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
palindrome . . . . . . . . . . . . . . . . . . . . . . . . 6
Parikh
fonction . . . . . . . . . . . . . . . . . . . . . . . . . 1
theor`eme . . . . . . . . . . . . . . . . . . . . . . 136
vecteur . . . . . . . . . . . . . . . . . . . . . . . . . . 1
pile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
depiler . . . . . . . . . . . . . . . . . . . . . . . . 138
empiler . . . . . . . . . . . . . . . . . . . . . . . 138
pompe (lemme) . . . . . . . . . . . . . . 54, 134
pompe (lemme, version forte) . . . . . 55
prefixe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
langage . . . . . . . . . . . . . . . . . . . . . . . 145
propre. . . . . . . . . . . . . . . . . . . . . . . . . . .2
prefixiel (langage) . . . . . . . . . . . . . . . . . 9
preperiode . . . . . . . . . . . . . . . . . . . . . . . . 15
161
primitif . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
production . . . . . . . . . . . . . . . . . . . . . . 110
R
r`egle de derivation . . . . . . . . . . . . . . . 110
Rabin M. O.. . . . . . . . . . . . . . . . . . . . . .29
racine primitive. . . . . . . . . . . . . . . . . . .19
rationnelle (fonction) . . . . . . . . . . . . . 81
relation de transition . . . . . . . . . . . . . 25
S
serie generatrice . . . . . . . . . . . . . . . . . . 92
Sch
utzenberger (theor`eme de)104, 148
Scott D. . . . . . . . . . . . . . . . . . . . . . . . . . . 29
semi-groupe . . . . . . . . . . . . . . . . . . . . . 101
aperiodique . . . . . . . . . . . . . . . . . . . 103
indice . . . . . . . . . . . . . . . . . . . . . . . . . 102
neutre . . . . . . . . . . . . . . . . . . . . . . . . 101
periode . . . . . . . . . . . . . . . . . . . . . . . 102
zero . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
semi-lineaire . . . . . . . . . . . . . . . . . . . . . 136
shuffle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
subset construction . . . . . . . . . . . . . . . 30
suffixe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
propre. . . . . . . . . . . . . . . . . . . . . . . . . . .2
suffixiel (langage) . . . . . . . . . . . . . . . . . . 9
symbole . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
initial . . . . . . . . . . . . . . . . . . . . . . . . . 110
inutile. . . . . . . . . . . . . . . . . . . . . . . . .129
non terminal . . . . . . . . . . . . . . . . . . 110
terminal . . . . . . . . . . . . . . . . . . . . . . 110
utile . . . . . . . . . . . . . . . . . . . . . . . . . . 129
syntaxique
conguence . . . . . . . . . . . . . . . . . . . . . . 95
monode. . . . . . . . . . . . . . . . . . . . . . . .96
T
theor`eme
Bar-Hillel . . . . . . . . . . . . . . . . . . . . . 134
Chomsky-Sch
utzenberger . . . . . . 148
Kleene . . . . . . . . . . . . . . . . . . . . . . . . . 53
Myhill-Nerode . . . . . . . . . . . . . . . . . . 67
Parikh . . . . . . . . . . . . . . . . . . . . . . . . 136
Sch
utzenberger . . . . . . . . . . . . . . . . 104
transducteur. . . . . . . . . . . . . . . . . . . . . .81
transition
fonction . . . . . . . . . . . . . . . . . . . . . . . . 23
162
relation . . . . . . . . . . . . . . . . . . . . . . . . 25
U
ultimement periodique . . . . . . . . . . . . 15
V
variable . . . . . . . . . . . . . . . . . . . . . . . . . 110
accessible . . . . . . . . . . . . . . . . . . . . . 130
effacable . . . . . . . . . . . . . . . . . . . . . . 125
inaccessible . . . . . . . . . . . . . . . . . . . 130
vecteur de Parikh . . . . . . . . . . . . . . . . . . 1
Index