Académique Documents
Professionnel Documents
Culture Documents
Frdric Olive 1
2010 / 2011
Langages rguliers
1.1 Alphabets - Mots - Langages
1.2 Langages rguliers . . . . .
1.3 Expressions rgulires . . .
1.4 Automates finis dterministes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Rsiduels - Minimisation
2.1 Langages rsiduels . .
2.2 Automate des rsiduels
2.3 Congruence de Nerode
2.4 Minimisation . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
21
. 21
. 22
. 24
. 26
Le Thorme de Kleene
3.1 Automates finis non dterministes . . . .
3.2 Equivalence des AFN et des AFD . . . .
3.3 Des expressions rgulires aux automates
3.4 Des automates aux expressions rgulires
3.5 Lemme de ltoile . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Bibliographie
9
9
13
14
16
31
31
34
38
40
45
47
Introduction
Quels sont les problmes susceptibles dun traitement informatique ? Cette
interrogation est fondamentale pour lInformatique. Dune certaine manire, elle
revient demander quel est lobjet de cette discipline. De plus, elle revt une dimension tout fait pratique : linformaticien appel crire un programme doit
sassurer que le traitement du problme qui loccupe est effectivement automatisable. Ce point est plus litigieux quil ny parait : on peut facilement exhiber deux
problmes trs voisins, dont lun relve dun algorithme standard, alors quon sait
de lautre quaucun programme ne pourra jamais le rsoudre. Mais lapproche de
cette question pratique ncessite le recours des outils thoriques. Essentiellement
parce que pour identifier les problmes qui acceptent un traitement algorithmique,
il nous faut dfinir rigoureusement les deux concepts en jeu : celui de problme
et celui dalgorithme. Le premier nopposera pas grande rsistance : nous lui rglerons mme son compte avant la fin de cette introduction ! Pour le deuxime, ce
sera une autre paire de manches. dire vrai, nous nauront pas de trop de ce cours
pour donner un premier aperu de la manire dont les thoriciens lont formalis.
Venons-en donc la premire interrogation : quest-ce quun problme ? On
distingue plusieurs grandes familles de problmes : les problme dvaluation,
doptimisation, dapproximation, dnumration, de comptage, de dcision. Les
plus importantes sont sans doute celles des problme dvaluation, pour lesquels
on cherche calculer la valeur dune fonction sur diffrentes entres, et celle des
problmes de dcision, o lon veut dterminer si les entres vrifient une proprit fixe. Par exemple, le calcul du pgcd de couples dentiers pris en entre
constitue un problme dvaluation. A contrario, dterminer si un x IN pris en
entre est premier est un problme de dcision.
Quelle que soit la famille considre, il est important de noter quun problme dinformatique comporte une infinit dinstances. Cest dans ce cadre
que prend sens la notion dalgorithme. Ainsi, il serait absurde dimaginer un al5
gorithme rpondant la seule question : 132 683 est-il premier ? . 1 Cest lorsquun problme comporte un nombre abitrairement grand dinstances que lautomatisation de son traitement devient utile et pertinente. Ce qui est crucial dans la
mthode de multiplication que nous connaissons tous, par exemple, cest quelle
permette de calculer le produit de deux nombres quelconques, selon une recette qui sapplique de la mme manire, quels que soient les nombres en jeu. . .
Par ailleurs, dans le contexte de formalisation qui est le notre, on ne perd pas
de gnralit se restreindre aux problmes de dcision. Si lon parvient donner
une dfinition rigoureuse de cette classe de problmes, la formalisation des autres
familles sen suivra aisment. Par consquent, dans ce cours le terme problme signifiera problme de dcision . Ce que nous exprimons encore en
crivant que pour nous, tout problme est de la forme :
Entre : x I ;
Question : x satisfait-il la proprit P ?
o I dsigne un ensemble quelconque, dont les lments sont appels instances
ou entres du problme, et P est une proprit des lments de I .
Une dernire considration permettra de finaliser notre dfinition du concept
de problme. Il est facile de se convaincre quun programme ne manipule des objets abstraits que par le biais dune reprsentation de ces objets. Et la manire
dont il opre est lie cette reprsentation. Ainsi, lalgorithme de multiplication
voqu plus haut est intimement li la reprsentation dcimale des entiers. (Pour
vous en convaincre, essayez dappliquer cet algorithme des nombres crits en
caractres Romain !) Les entres dun problme dinformatique sont donc les codages dobjets abstraits, plutt que ces objets eux-mmes. Et un codage nest rien
dautre quun mot sur un alphabet donn (assorti de rgles permettant den dcoder la signification). En somme, pour un programme, une instance dun problme
est toujours un mot. Et rsoudre le problme consiste dcider si cette entre
appartient lensemble des mots qui satisfont une certaine proprit P. Or un
ensemble de mots, cest exactement ce que nous appellerons bientt un langage
formel. Ainsi, pour un informaticien, rsoudre un problme cest reconnaitre
un langage, cest dire identifier les mots qui le constituent. Avec la notation
introduite plus haut, un problme sera donc toujours associ un langage L et
sexprimera sous la forme :
Entre : un mot x ;
Question : x appartient-il au langage L ?
Ceci clt notre entreprise de formalisation du concept de problme, sous rserve de se mettre bien daccord sur ce que nous appelons langage . Cest lun
des objectifs de ce cours.
Nous lavons annonc, la question quest-ce quun algorithme ? est autrement plus difficile clarifier. Les termes algorithme, programme, procdure,
se rfrent tous lide de succession doprations atomiques, selon un ordre qui
dpend des objets pris en entre. Dans le cas de lalgorithme de multiplication
usuel, par exemple, les oprations atomiques sont les produits de deux nombres
infrieurs 9 (facile excuter, ds lors que lon connait les tables de multiplication), et la squence de produits lmentaires effectuer dcoule facilement de
lcriture dcimale des nombres multiplier. La gnralisation de ces considrations, en vue de dfinir le mot algorithme, mne la notion de modle de
calcul . Un modle de calcul est un objet mathmatique form densembles, de
fonctions, de relations , qui abstrait les proprits voques plus haut en dfinissant une notion trs simple dopration atomique et en prcisant scrupuleusement
comment ces oprations se succdent sur une entre donne pour former un calcul.
Tenter de prciser davantage ces aspects nous emmnerait trop loin. Concluons
simplement en annonant que les automates, qui sont au cur de ce cours, forment
prcisment un premier exemple le plus simple qui soit de modle de calcul.
Chapitre 1
Langages rguliers
1.1
10
Chapitre 1.
Langages rguliers
11
alors X = V .
P REUVE . Il sagit dtablir que tout u V appartient X. Montrons cela par
rcurrence sur la longueur de u : Si |u| = 0, alors u = et donc u X par (i).
Supposons la proprit vraie pour tout mot de longueur un entier n 0 fix. Soit
alors u un mot de longueur n + 1. Puisque n + 1 > 0, u peut scrire u = ax, o a
est une lettre et x est un mot de longueur n. Par hypothse de rcurrence, on peut
affirmer que x X. Mais alors, en appliquant (ii), on a aussi u = ax X. Ainsi,
lhypothse de rcurrence est vraie au rang 0 et sa validit au rang n entrane sa
validit au rang n + 1. Par consquent, elle est vraie pour tout n IN : cest le
rsultat cherch.
Etant donne une proprit P portant sur les mots de V , convenons de noter
P(u) le fait quun mot u satisfait la proprit P.
Le miroir dun mot w V , not wR , est le mot obtenu en inversant lordre des
lettres de w. Autrement dit, si w scrit w = w1 . . . wn sur V , alors wR = wn . . . w1 .
Un palindrome est un mot w tel que w = wR .
E XEMPLES .
abbaaR = aabba ; 100R = 001.
ressasser, eluparcettecrapule, 10101 et xyyx sont des palindromes.
Dfinition 7 (Langage formel). Un langage formel sur un alphabet V est une
partie de V . Autrement dit, cest un ensemble de mots sur V .
E XEMPLES .
Les ensembles {00, 01, 110, 1010} et {w {0, 1} t.q. |w|1 = 1} sont des
langages sur lalphabet {0, 1}. Le premier est fini, le second infini (il contient,
par exemple, la suite infinie de mots : 1, 01, 001, 0001, . . . ).
12
Chapitre 1.
Langages rguliers
Ln .
n0
Ainsi L est-il constitu des mots de de V qui sobtiennent par concatnation dun
nombre quelconque (eventuellement nul) de mots de L. On appelle toile stricte
de L lensemble des mots obtenus par concatnation dun nombre non nul de mots
de L. On note L+ ce langage. Autrement dit :
L+ =
Ln .
n1
13
Lemme 10 Pour tout langage L, L est le plus petit langage contenant L et clos
pour la concatnation.
P REUVE . Montrons dabord que L est bien clos pour la concatnation : si x, y
L , alors il existe n, p IN tels que x Ln et y L p . Autrement dit, il existe
x1 , . . . , xn L et y1 , . . . , y p L tels que x = x1 . . . xn et y = y1 . . . y p . Par consquent
xy = x1 . . . xn y1 . . . y p Ln+p L . Par ailleurs, si L0 est un langage contenant L et
clos pour la concatnation, on a, pour tout n IN : x1 , . . . , xn L, x1 . . . xn L0 .
S
Do : Ln L0 pour tout n, et donc L = n Ln L0 .
Lemme 11 Soient A, B,C trois langages sur un alphabet V . Alors :
(AB)C = A(BC).
(A B)C = AC BC.
(A B)C AC BC et linclusion rciproque est fausse en gnral.
A B A B .
(A ) = A .
(A B) = (A B ) .
P REUVE . Exercice.
Le miroir dun langage L, not LR , est lensemble des miroirs des mots de L.
Autrement dit : LR = {wR t.q. w L}.
1.2
Langages rguliers
14
Chapitre 1.
Langages rguliers
Autrement dit, REG est le plus petit ensemble de langages sur V qui contienne
le langage vide et tous les langages rduit un mot de longueur 1, et qui soit clos
pour lunion, la concatnation et la fermeture de Kleene. Ou encore : les langages
rguliers sont les langages obtenus partir des atomes , {} et {a}, a V ,
par un nombre fini dapplications des trois oprations prcites.
E XEMPLES .
- Pour tout mot u V , le langage {u} est rgulier. En effet, si u scrit
a1 . . . an sur V , alors le langage {u} scrit comme la concatnation {u} = {a1 }
{a2 } . . . {an }. La rgularit de {u} se dduit alors de celle de chaque {ai } et du
fait que REG est clos pour la concatnation des langages.
- Tout langage fini est rgulier. En effet, un ensemble fini de mots L = {u1 , . . . , uk }
scrit : L = {u1 } {u2 } {u3 } {un }. Cest donc une union finie de langages rduits un seul mots et on a vu que de tels langages sont rguliers. La
conclusion dcoule du fait que REG est clos pour lunion.
- Lensemble de tous les mots, V , est rgulier. Si V = {a1 , . . . , a p }, il dcoule
du rsultat prcdent que le langage {a1 , . . . , a p } est rgulier. Mais V nest autre
que la fermeture de Kleene de ce langage, et la conclusion dcoule de la fermeture
de REG pour cette opration.
- Sur lalphabet {a, b}, lensemble {an b p | n, p IN} des mots qui scrivent
comme une suite de a suivie dune suite de b, est rgulier. En effet : le langage {an | n IN} = {a} est rgulier, comme fermeture de Kleene du langage
rgulier {a} ; pour la mme raison, {b p | p IN} = {b} est rgulier. Le langage
{an b p | n, p IN}, concatn des deux prcdents, est alors rgulier, par fermeture
de REG pour la concatnation.
1.3
Expressions rgulires
Dfinition 13 (Expressions rgulires). Lensemble ER des expressions rgulires sur un alphabet V est le plus petit des langages L sur lalphabet V {+, , , }
qui satisfont :
1. L, L et a L pour chaque a V ;
2. si , L, alors + , et sont dans L.
A chaque expression rgulire sur V on associe un langage sur V selon les
modalits suivantes :
1. L() = ; L() = {} ;
15
P REUVE . : il sagit de montrer que tout langage rgulier est dnot par une
expression rgulire. On sappuie sur la dfinition inductive de REG. Lassertion
est clairement vraie des atomes de cette dfinition : le langage est dnot par
lexpression rgulire ; le langage {} est dnot par lexpression rgulire ;
pour tout a V , le langage {a} est dnot par lexpression rgulire a. Soient
maintenant A, B deux langages dnots par des expressions rgulires , . Alors
A B, AB, A sont eux aussi dnots par des expressions rgulires, savoir,
respectivement : + , , . Ceci clt la preuve de la premire inclusion.
: nous devons montrer que pour toute expression rgulire , le langage
L() est rgulier. On sappuie sur la dfinition inductive de lensemble des expressions rgulires. Lassertion est clairement vraie des atomes de cette dfinition :
L(), L() et L(a) (a V ) sont rguliers. Supposons maintenant que les langages
L() et L( ) associs deux expressions rgulires et soient rguliers. Alors
les langages associs aux expressions + , et valent respectivement :
L() L( ), L()L( ) et L() . Ces langages sont rguliers, puisque L() et
L( ) le sont et puisque REG est ferm pour lunion, la concatnation et la fermeture de Kleene. Ceci clt la preuve inductive de linclusion .
Dfinition 15 (Expressions rgulires quivalentes). Deux expressions rgulires
, sont dites quivalentes si elles dnotent le mme langage. On note alors
.
16
Chapitre 1.
Langages rguliers
Les proprits des oprations usuelles sur les langages se transcrivent en proprits des oprations portant sur les expressions rgulires. Voici les principales :
Proposition 16 Soient , , trois expressions rgulires sur un alphabet V . On
a:
1. + +
2.
3.
4. + +
5. ( ) ( )
6. ( + ) + + ( + )
7. ( + ) +
8. ( + ) +
9. +
10.
11.
12. +
P REUVE . Exercice.
Concluons cette section par une dernire notation : on notera souvent + lexpression . Clairement, L( + ) = L()+ .
1.4
Dans lintroduction de ce cours, nous avons voqu la notion de reconnaissance des langages dont limportance tient au fait quelle permet de formaliser
tous les problmes de dcision susceptibles dintresser les informaticiens. Rappelons que reconnatre un langage, cest dcider pour nimporte quel mot sil appartient ou non au langage. Le propos de cette section, cest de montrer que la
reconnaissance des langages rguliers est un problme facile, en ce quil peut tre
rsolu par un modle particulirement simple de machines : les automates
finis.
Lautomate fini dterministe est un modle de calcul rudimentaire comportant :
17
- un ruban dentre sur lequel est crit le mot analyser. Ce ruban est divis en
case, et le mot dentre est stock raison dune lettre par case.
- une tte de lecture, qui parcourt les cases du ruban en examinant leur contenu ;
- une unit de contrle, laquelle parviennent les informations collectes par la
tte de lecture. Lunit de contrle est caractrise par lensemble des tats dans
lesquels elle peut se trouver et par son programme, appel fonction de transition de
lautomate, qui lui permet dvoluer dun tat un autre. Cette volution dpend
de ltat courant de lunit de contrle mais aussi du caractre transmis par la tte
de lecture.
Ce dispositif est illustr Figure 1.4. Pour conclure cette description informelle,
prcisons la manire dont lautomate fonctionne et le biais par lequel il renvoit sa
rponse positive ou ngative quant lappartenance du mot dentre un langage fix : parmi les tats possibles de lUC, lun est qualifi dinitial, et certains
sont dits acceptant. Lorsquil dmarre son calcul sur une entre w, lautomate est
dans ltat initial et la tte de lecture est positionne sur la premire lettre de w.
Puis il lit une par une les lettres de w, en changeant dtat au gr des caractres
lus. Lorsque la tte de lecture a scann la dernire lettre de w, le calcul sarrte.
Le mot lu est alors considr comme accept par lautomate si ltat de lUC
lissue du calcul est un tat acceptant.
w1 w2 w3
...
wn
Ruban dentre
Tte de lecture
Unit de contrle
18
Chapitre 1.
Langages rguliers
5. F est une partie de Q dont les lments sont appels tats acceptants ou
tats finaux.
a
n
1
2
p = p1
p2
. . .
pn .
Ltat pn est alors appel rsultat du calcul. On dit aussi que le calcul de A sur w
w
partir de p termine dans ltat pn . On note p q le fait que le calcul de A sur
w
L(A ) = {w V | q0 F}.
Pour dcrire un automate, il faut dabord en prciser lalphabet, lensemble des
tats, ltat initial et les tats finaux. Il y a ensuite plusieurs manires de spcifier
sa fonction de transition. La plus immdiate, puisque son domaine est fini, cest
den donner une description extensive. Ainsi, on pourra considrer un AFD A =
(V, Q, , q0 , F) dfini par : V = {a, b}, Q = {p1 , p2 , p3 }, q0 = p1 , F = {p3 }, et
dont la fonction de transition est donne explicitement sous la forme :
(p1 , a) = p2 (p1 , b) = p1
(p2 , a) = p3 (p2 , b) = p1
(p3 , a) = p3 (p3 , b) = p1
ou encore, avec les conventions dcriture tablies plus haut, sous la forme :
a
: p1 p2 p1 p1
p2 p3 p2 p1
p3 p3 p3 p1
19
On choisira le plus souvent de condenser ces critures sous forme dun tableau,
appel table de transition de lautomate :
a b
p1 p2 p1
p2 p3 p1
p3 p3 p1
Dans certains cas, on prfrera donner la table de passage de lautomate, qui
prcise, pour chaque tat, les symboles qui permettent daccder aux autres tats :
p1 p2 p3
p1 b a
p2 b a
p3 b a
La flche situe au coin de ce tableau en prcise le sens de lecture : ainsi, le
symbole situ lintersection de la deuxime ligne et de la troisime colonne
indique que lautomate peut passer de ltat p1 ltat p2 en lisant la lettre a (i.e.,
a
a
il existe une transition p1 p2 ). La transition inverse, p2 p1 , nexiste pas.
Enfin, la description que nous utiliserons le plus frquement passe par la reprsentation du graphe de lautomate : celui-ci sobtient en dessinant un cercle
tiquet par q pour chaque tat q de lautomate, puis en reprsentant chaque trana
sition p q par une flche tiquete par a joignant les cercles correspondant
aux tats p et q. On convient de plus de double-cercler les tats finaux et de
pointer dune flche sans origine ltat initial. Ce qui donne, pour lautomate pris
en exemple plus haut, le graphe suivant :
b
p1
Y
p2
p3
Cette reprsentation offre deux avantages : dabord, elle donne une description exhaustive de lautomate : alphabet, tats, fonction de transition, mais aussi
tat initial et tats finaux. Ensuite, elle permet une visualisation trs intuitive du
fonctionnement de lautomate : pour simuler son calcul sur un mot w = w1 . . . wn
donn, il suffit de parcourir le graphe, partir de ltat initial, conformment au
chemin dict par la suite de lettres w1 , . . . , wn . Il est facile de voir, par exemple,
que le calcul de cet automate sur le mot babaa scrit :
b
p1 p1 p2 p1 p2 p3
20
Chapitre 1.
Langages rguliers
Du coup, on voit immdiatement que ce mot est accept par lautomate, puisque
p3 est un tat final. Par contre, le calcul de lautomate sur aaba donne la suite
a
p1 p2 p3 p1 p2 ,
et ce mot est refus par lautomate, puisque p2 nest pas final. En fait, avec un
tout petit peu dexprience, on se convainc que lautomate ainsi dcrit accepte
exactement les mots de {a, b} qui se terminent pas deux a conscutifs.
Pour fixer les ides, terminons par un nouvel exemple : on considre lautomate daphabet V = {a, b, c}, densemble dtats Q = {1, 2, 3, 4}, dtat initial
q0 = 1, densemble dtats acceptants F = {4}, et dont la fonction de transition
est donne en extention par :
(1, a) = 1 (1, b) = 2 (1, c) = 1
(2, a) = 3 (2, b) = 2 (2, c) = 1
(3, a) = 1 (3, b) = 2 (3, c) = 4
(4, a) = 4 (4, b) = 4 (4, c) = 4
ou encore, par :
a
: 1 1 1 2 1 1
2 3 2 2 2 1
3 1 3 2 3 4
4 4 4 4 4 4
Alors la table de transition, la table de passage et le graphe de cet automate sont
les suivants :
a b c
1 2 3 4
1 1 2 1
1 ac b
2 3 2 1
2 c b a
3 1 2 4
3 a b c
4 4 4 4
4 abc
a,c
*/
1S
b
c
2S
b
a
b
a,b,c
Chapitre 2
Rsiduels - Minimisation
2.1
Langages rsiduels
22
Chapitre 2.
Rsiduels - Minimisation
ux
t b /
pour lequel on a card (Q) = 2 alors que le langage reconnu, a b, admet trois
rsiduels distincts : a b, et .
2.2
23
P REUVE . Il est facile de voir que (q0 , u) = (L, u) = L/u. Par consquent, (q0 , u)
F ssi L/u {L/w, w L} ssi w L tel que L/u = L/w. Puisque nous cherchons
prouver que u L ssi (q0 , u) F, nous sommes ramens la question suivante :
A-t-on : u L w L tel que L/u = L/w ?
Limplication est claire (il suffit de prendre w = u). Pour limplication rciproque, rappelons que L/u = L/w signifie : pour tout x V , ux L wx L.
En particulier, w = w L entrane u L, et donc, u L. Ceci clt la dmonstration.
E XEMPLE . Les rsiduels du langage L dnot par lexpression rgulire ab + ba
sont
1. L = L/,
2. b = L/a = L/ab,
3. a = L/b = L/ba,
4. = L/aa = L/bb.
Ce qui donne pour L lautomate des rsiduels suivant :
b
?b
a,b
>
b
a g
a
On sait quun langage reconnaissable L V est reconnu non par un, mais
par une infinit dautomates dterministes. Chacun de ces automates a un nombre
24
Chapitre 2.
Rsiduels - Minimisation
2.3
Congruence de Nerode
25
P REUVE . Par dfinition de [ ] on a [p] [q] ssi p q pour tous [p], [q] [ Q ]
u
et tout a V . Il sensuit que [q0 ] [q] est un calcul de A / sur le mot u si, et
u
seulement si, q0 q est un calcul de A sur u. Comme de plus [q] [ F ] ssi q F,
on voit facilement que u tiquette un calcul acceptant de [ A ] si, et seulement si,
il tiquette un calcul acceptant de A . Ainsi, u L([ A ]) ssi u L(A ), ce qui
prouve le rsultat attendu.
Dfinition 34 (Congruence de N ERODE). Soit A = (V, Q, , q0 , F) un automate
dterministe. La congruence de N ERODE de A est la relation dquivalence
dfinie sur Q par :
p q si L p = Lq .
26
Chapitre 2.
Rsiduels - Minimisation
Il est facile de vrifier que est effectivement une congruence sur A . Notons
de plus que, par dfinition des langages L p , Lq :
p q si w V : (p, w) F (q, w) F
Proposition 35 Soit A un automate dterministe complet reconnaissant un langage L. Lautomate minimal AL de L est gal au quotient A /, o est la
congruence de Nerode de A .
P REUVE . Puisque est une congruence sur A , lautomate A / reconnat L
(Lemme 33). Reste montrer que lensemble [ Q ] des tats de A / est de cardinal minimal. Or, [ Q ] = {[q], q Q} et cet ensemble est clairement quipotent
{Lq , q Q} qui, nous lavons vu, concide avec {L/u, u V } (Corollaire 23).
Par consquent, card ([ Q ]) est gal au nombre de rsiduels de L, qui minimise
de nombre dtats de tout AFD complet qui reconnat L (Corollaire 23). Do le
rsultat.
2.4
Minimisation
Les considrations qui prcdent fournissent une stratgie pour construire lautomate minimal de L partir dun automate A = (V, Q, , q0 , F) qui reconnat L :
il nous faut identifier les classes dquivalence de la congruence de N ERODE sur
A puis fabriquer A / . Cette dernire tape est facile : elle se fait essentiellement
par fusion les tats quivalents de A . Lessentiel de la procdure de minimisation
consiste donc identifier les tats quivalents.
Rappelons que p, q Q satisfont p q si L p = Lq , cest dire si pour tout
u V : u L p u Lq . Considrons maintenant les relations dquivalence
suivantes, dfinies sur Q par "affaiblissement" de la congruence de N ERODE :
pour chaque n IN, on note V n = {u V , |u| n} et on dfinit la relation n
par : p n q ssi L p V n = Lq V n ou, de manire quivalente, par :
p n q ssi u V n : u L p u Lq .
(2.1)
2.4 Minimisation
27
(2.2)
Cette dernire quation permet de calculer pas pas les classes dquivalence
modulo n . On commence par identifier les tats 0 -quivalents. Lquation (2.1)
donne : p 0 q ssi u V 0 : u L p u Lq ssi L p Lq . Or L p
p F. Do : p 0 q ssi p, q F ou p, q
/ F. Ainsi, 0 dfinit deux classes
dquivalences exactement : F et Q \ F. partir de l, on peut dterminer les
classes dquivalence modulo 1 : deux tats satisfont p 1 q si p 0 q et si pour
tout a V , (p, a) 0 (q, a). Autrement dit, les classes de 1 sont obtenues en
sparant, dans chaque classe de 0 , les tats qui sont "envoys" par une mme
lettre sur des 0 -classes diffrentes. Ce mme raisonnement permet de calculer
2 partir de 1 , puis, de proche en proche, toutes les relations n . Le point
cl, pour obtenir la relation de N ERODE initiale, cest de constater quil existe
ncessairement un entier n tel que n et concident.
Proposition 36 Il existe n IN tel que pour tout i 0 : n = n+i = .
P REUVE .Exercice.
1
b
/
@
5
b
3 t
@
a
b
4X
6 t
28
Chapitre 2.
Rsiduels - Minimisation
3 : 3 = 2 , do 2 = .
Lautomate quotient A / sobtient alors, conformment la Dfinition 32,
a
en fusionnant les tats quivalents et en transformant toute transition p q de
a
a /
1T
b
3 t
/
? 25
a,b
6 t
4I o
3
a
b I
2 ^o
b
a
5^
6
b
a ab8I
a
2.4 Minimisation
29
Chapitre 3
Le Thorme de Kleene
3.1
Nous allons considrer dans cette section une gnralisation des automates
finis. Cette gnralisation sloigne de lintuition labore prcdement de lautomate vu comme une formalisation simplifie dordinateur rels, parce quelle
comporte une part de non dterminisme, incompatible avec le comportement dun
programme. Pourtant, les automates finis non dterministes que nous allons introduire (AFN en abrg) constituent un outil trs efficace de description des langages formels, et nous ne tarderons pas en mesurer lutilit.
Informellement, les automates non dterministes sont obtenus en enrichissant
le fonctionnement des AFD de deux nouvelles capacits :
on autorise des transitions sur le mot vide (i.e., qui se font sans dplacement
de la tte de lecture sur le mot dentre),
on permet qu une lettre et un tat fixs correspondent plusieurs transitions. Ainsi, lorsquil est dans un tat p et quil lit une lettre a, lautomate
peut choisir de manire non dterministe dvoluer vers diffrents nouveaux
tats.
Formellement, les dfinitions des AFN et des AFD sont similaires : dans les
deux cas, il faut prciser un alphabet, un ensemble dtats, une fonction de transition, un tat initial et un ensemble dtats finaux. Elles diffrent cependant dans la
nature de la fonction de transition : dans un automate dterministe, la fonction de
transition associe tout couple constitu dun tat et dune lettre, un unique tat
q Q accessible en une transition. Dans un automate non dterministe, la fonction
prend un couple constitu dun tat et dune lettre ou du mot vide et lui associe un
31
32
Chapitre 3.
Le Thorme de Kleene
(q1 , 1) = {q1 , q2 }
(q2 , 1) =
(q3 , 1) = {q4 }
(q4 , 1) = {q4 }
(q1 , ) =
(q2 , ) = {q3 }
(q3 , ) =
(q4 , ) =
pourra scrire :
0
q2 {q3 }
q3
q4
: q1 {q1 } q1 {q1 , q2 } q1
q2 {q3 } q2
0
q3
0
q3 {q4 }
q4 {q4 } q4 {q4 }
q1 {q1 } {q1 , q2 }
q2 {q3 }
{q3 }
q3
{q4 }
q4 {q4 } {q4 }
33
q1
q1 0, 1
ou q2
q3
q4
q2 q3 q4
1
0,
1
0, 1
0,1
/'
q1
q2
0,
q3
/'
q4
n
1
2
p1
p2
. . .
pn .
On dit alors que le calcul considr termine dans ltat pn . Notons que le fait
marquant cest la possibilit pour un AFN, dadmettre plusieurs calculs sur w
partir de p.
Un calcul de A sur w est un calcul de A sur w partir de q0 . Un tel calcul est
dit acceptant sil termine dans un tat acceptant. La dfinition des AFN permettant
une multiplicit de calculs sur un mot fix, il peut se produire en particulier que
certains calculs sur w soient acceptants alors que dautres ne le sont pas. Do
limportance de la dfinition qui suit :
On dit que w est accept par A sil existe un calcul de A sur w qui termine
dans un tat acceptant. Le langage accept (ou reconnu) par A est lensemble
des mots w V accepts par A . On le note L(A ). Autrement dit, L(A ) est le
langage :
{w V | il existe un calcul acceptant de A sur w.}.
E XEMPLE . Considrons lautomate A suivant :
/
1 n
a
b
a
2I
a,b
34
Chapitre 3.
b
Le Thorme de Kleene
1 2 2 2 3,
1 2 2 3 1.
Les deux premiers terminent dans un tat non acceptant. Par contre, le dernier est
un calcul acceptant et cela suffit pour affirmer que baaa L(A ).
3.2
Dans cette section, nous montrons que les automates non dterministes reconnaissent les mmes langages que leurs analogues dterministes. Cette quivalence
est suprenante de prime abord : on aurait pu penser que les capacits supplmentaires dont bnficient les AFN leur permettraient de reconnaitre une plus large
classe de langages. Tel nest en fait pas le cas. Mais cest prcisment la robustesse de ce concept dautomate (cest--dire, la possibilit de modifier sensiblement la formulation du concept sans modifier lobjet quil recouvre) qui fonde la
pertinence de ce modle de calcul.
Rappelons que deux automates sont quivalents sils reconnaissent le mme
langage.
Thorme 37 Tout automate non dterministe est quivalent un automate dterministe.
E LMENTS DE PREUVE . Nous devons montrer que pour chaque automate non dterministe N = (V, Q, , q0 , F) il existe un automate dterministe D qui reconnait
le mme langage. La construction procde en deux tapes :
Dans un premier temps, on construit un AFN quivalent N ne comportant
plus d-transitions. Lide, pour ce faire, est de supprimer toutes les -transitions
a
et dajouter une transition p q, pour a V , chaque fois quil existe un chemin de p vers q dans le graphe de lautomate dont toutes les artes sont tiquetes
par , sauf une, qui est tiquete par a. Formellement, on introduit la notion dclture dun tat q Q comme tant lensemble E (q) des tats accessibles partir
de q par une suite d-transitions. En dautres termes, E (q) est le plus petit en
semble dtats qui contient q et tel que p E (q) et p p0 entranent p0 E (q).
On dfinit un nouvel AFN N 0 = (V, Q, q0 , 0 , F 0 ) sans -transitions en posant :
F 0 = {p Q | E (p) F 6= }
35
qE (p)
a
(q, a).
36
Chapitre 3.
Le Thorme de Kleene
Proposition 38 Lensemble REC est clos pour lunion, la concatnation des langages et la fermeture de Kleene. Autrement dit, si L1 et L2 sont reconnaissables,
alors L1 L2 , L1 L2 et L1 sont reconnaissables.
P REUVE . Soient donc L1 , L2 deux langages sur un alphabet V , reconnus, respectivement, par des automates finis A1 = (V, Q1 , 1 , s1 , F1 ) et A2 = (V, Q2 , 2 , s2 , F2 ).
Nous allons construire, partir de A1 et A2 , des automates reconnaissant les langages L1 L2 , L1 L2 et L1 , prouvant ainsi lappartenance de ces trois nouveaux
langages REC. Reprsentons ces automates en mettant uniquement en vidence
leur tat initial et leurs tats finaux :
A1
A2
A2
37
1 (q, a) si q Q1
2 (q, a) si q Q2
(q, a) Q V : (q, a) =
{s , s } si q = s et a =
1 2
si q = s et a V
Il est alors facile de montrer quun mot w est accept par A ssi il existe un calcul
w
A1
A2
A2
38
Chapitre 3.
Le Thorme de Kleene
Corollaire 39 Tout langage rgulier est reconnaissable par un automate fini. Autrement dit : REG REC.
P REUVE . Il sagit de montrer linclusion REG REC. Compte tenu de la dfinition inductive de REG (voir Dfinition 12), il suffit de prouver que :
(i) REC contient les langages , {} et {a} (pour chaque lettre a) ;
(ii) REC est clos pour lunion, la concatnation des langages et la fermeture de
Kleene.
Lassertion (ii) vient prcisment dtre tablie par le Thorme 38. Reste
donc prouver (i). Le rsultat est immdiat : est reconnu par lautomate rduit
un unique tat initial et non acceptant ; {} est reconnu par lautomate rduit
un unique tat initial et acceptant ; pour chaque lettre a, {a} est reconnu par lautomate deux tats, lun initial, lautre acceptant, admettant une unique transition
tiquete par a et joignant ltat initial ltat final.
3.3
AF pour a :
Et donc :
AF pour a b :
/
39
/
I
? Q
/
b
a
b
a /
Ceci tmoigne du fait que lalgorithme utilis plus haut ne garantit aucune
forme de "minimalit" de lautomate calcul. Mais du moins sommes nous assurs
de la correction de cet algorithme et de sa capacit, quelle que soit la complexit
de lexpression rgulire prise en entre, fournir un automate quivalent.
40
3.4
Chapitre 3.
Le Thorme de Kleene
L p = {w V | p q avec q F}.
Autrement dit, L p est lensemble des mots w tel que le calcul de A sur w partir
de p est acceptant. On peut aussi remarquer que L p serait le langage reconnu
par A si p tait son tat initial. En particulier, Lq0 (o q0 est ltat initial) est le
langage reconnu par lautomate. Supposons maintenant que V = {a, b} et que les
a
si p
/F
si p F
41
3
b
1
O
b
t a
/
@
4 t
X1 = bX1 + aX4
X2 = aX1 + bX4
X = aX1 + bX2
3
X4 = bX4 +
Le point cl, dans la recherche de lexpression rgulire associe un automate A , cest que le systme dquations associ admet toujours une solution
(X1 , . . . , Xk ), et que cette solution se calcule facilement.
Lemme 40 (Lemme dA RDEN). Soient A, B deux langages sur V tels que
/ A.
Alors lquation
X = AX B
(3.1)
admet A B comme unique solution.
P REUVE . Dabord, A B est solution de (3.1) puisque A(A B) B = A+ B B =
A B. Ensuite, cest la plus petite des solutions : si X vrifie (3.1), une rcurrence
simple permet dtablir :
n 0 : X = An+1 X An B AB B
(3.2)
42
Chapitre 3.
Le Thorme de Kleene
1
1
X1 = A1 X1 An Xn B1
..
.
X = An X An X B
n
n
n n
1 1
admet une unique solution, qui est un n-uplet (L1 , . . . , Ln ) de langages rguliers.
Ainsi, pour le systme voqu plus haut :
X1 = bX1 + aX4
X2 = aX1 + bX4
X = aX1 + bX2
3
X4 = bX4 +
(1)
(2)
(3)
(4)
(5)
(6)
(7)
Or le langage reconnu par lautomate est lensemble des mots qui admettent un
calcul acceptant partir de ltat initial. Autrement dit, L(A ) = L3 et lautomate
est quivalent lexpression rgulire qui dnote L3 , cest--dire ab ab + bb .
Ce procd se gnralise de la faon suivante : soit A un automate dterministe (V, Q, , q0 , F). On suppose que V = {a1 , . . . , ak } et Q = {1, . . . , n}, et on
crit les quations (E1 ), . . . , (En ) associ aux tats de A :
43
o i = si ltat i est acceptant, sinon. On rsoud alors le systme en appliquant lalgorithme suivant :
1
2
3
4
pour i = 1, . . . , n faire
si Xi apparait dans le membre droit de lquation (Ei ) alors
Ecrire (Ei ) sous la forme Xi = Xi + ;
Remplacer (Ei ) par lquation Xi = ;
fin
Remplacer chaque occurence de Xi par le membre droit de lquation
(Ei ) dans les quations (Ei+1 ), . . . , (En );
fin
/ A ce stade de lalgorithme, chaque quation (Ei ) exprime Xi en fonction de
Xi+1 , . . . , Xn . En particulier, (En ) permet dexprimer Xn comme une expression
rgulire constante. / ;
6
7
pour i = n 1, . . . , 1 faire
Calculer Xi en fonction des valeurs de Xi+1 , . . . , Xn ;
fin
retourner (X j ), o j est ltat initial.
2
x
y,z
4/
3 ^o
x
1 t
y
z
z
4 zj
44
Chapitre 3.
Le Thorme de Kleene
x (yX3 + zX4 )
xx (yX3 + zX4 ) + yX3 + zX3
xX3 + yX2 + zX4
yX3 + zX4 +
x (yX3 + zX4 )
xx (yX3 + zX4 ) + yX3 + zX3
(x+ y + y + z)X3 + x+ zX4
(x y + z)X3 + x+ zX4
xX3 + y((x y + z)X3 + x+ zX4 ) + zX4
yX3 + zX4 +
x (yX3 + zX4 )
(x y + z)X3 + x+ zX4
xX3 + y((x y + z)X3 + x+ zX4 ) + zX4
(x + y(x y + z))X3 + (yx+ z + z)X4
(x + y(x y + z)) (yx+ z + z)X4 )
y(x + y(x y + z)) (yx+ z + z)X4 + zX4 +
x (yX3 + zX4 )
(x y + z)X3 + x+ zX4
(x + y(x y + z)) (yx+ z + z)X4 )
y(x + y(x y + z)) (yx+ z + z)X4 + zX4 +
(y(x + y(x y + z)) (yx+ z + z) + z)X4 +
(y(x + y(x y + z)) (yx+ z + z) + z)
45
3.5
Lemme de ltoile
n
1
2
q0
q1
. . .
qn
wi+1
wj
w j+1
i
n
1
q0
. . .
{qi . . . q j }t . . .
qn
wi+1
wj
46
Chapitre 3.
Le Thorme de Kleene
Bibliographie
[Aut92] J.-M. Autebert. Calculabilit et Dcidabilit : une Introduction. Collection ERI. Masson, 1992.
[Car08] O. Carton. Langages formels, Calculabilit et Complexit. Capes
Agreg. Vuibert, 2008.
[CLR94] T. Cormen, C. Leiserson, and R. Rivest. Introduction lalgorithmique.
Dunod, 1994.
[DW83] M.D. Davis and E.J. Weyuker. Computability, Complexity, and Langages. Academic press, 1983.
[HU79] J. Hopcroft and J. D. Ullman. Introduction to Automata Theory, Languages and Computation. Addison-Wesley, 1979.
[Koz97] Dexter Kozen. Automata and computability. Springer-Verlag, New
York, 1997.
[Sip97]