Académique Documents
Professionnel Documents
Culture Documents
Master 2 ITA
Samuel Grau
<samuel.grau@club-internet.fr>
Table des matières
Introduction 3
1 Rappels et Définitions 4
1.1 Rappel Historique . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Automates . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.2 L’idée d’Eilenberg . . . . . . . . . . . . . . . . . . . . 7
1.2.3 Automates Généralisés Déterministes . . . . . . . . . . 8
2 Applications 10
2.1 Automates d’expression . . . . . . . . . . . . . . . . . . . . . 10
2.1.1 Élimination des états . . . . . . . . . . . . . . . . . . . 13
2.2 Automates d’expression Déterministes . . . . . . . . . . . . . 17
2.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.2 Propriétés . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Minimisation des Automates d’expression . . . . . . . . . . . 21
2.3.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.2 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4 Langages Rationnels sans préfixes, premiers . . . . . . . . . . 24
Conclusion 26
2
Introduction
Nous prouverons aussi que les langages reconnus par les automates
d’expression déterministes forment une sous-famille propre des langages
rationnels ainsi que certaines méthodes permettant de définir la minimisa-
tion et le déterminisme des automates d’expression. Il sera enfin discuté
des langages rationnels sans préfixes.
3
Chapitre 1
Rappels et Définitions
4
autre automate déterministe équivalent peut-être obtenu grâce au théorème
de Myhill-Nerode. Cependant, pour les automates non déterministes, nous
ne connaissons que des résultats partiels tels que la non unicité de l’automate
minimal.
1.2. Préliminaires
Nous allons tout d’abord définir un alphabet fini de caractères que nous
appelerons Σ. Nommons par la même occasion Σ∗ l’ensemble de tous les
mots formés sur cet alphabet. Les éléments de Σ∗ sont appelés chaı̂nes,
mots ou blocs. Nous utiliserons beaucoup plus souvent le terme mot dans
ce document. Un langage sur Σ est un sous-ensemble de Σ∗ que l’on peut
aussi noter L ⊆ Σ∗ . Afin de mieux apprécier les notions avec lesquelles nous
allons travailler, nous profitons de cette section afin de faire quelques rappels
concernant les propriétés des mots.
Nous noterons dans toute la suite du document que x est préfixe (resp.
suffixe) de y de la manière suivante : x < y (resp. x = y). Si nous souhaitons
ne pas tenir compte des factorisations possibles à l’aide du mot vide pour le
cas d’une factorisation préfixe, nous devons alors donner la définition d’un
préfixe propre pour un mot.
5
Comme nous aurons besoin, lorsque nous parlerons des automates d’ex-
pression déterministes, des ensembles sans préfixes, nous pouvons alors don-
ner la définition suivante :
Définition 1.2.3. Un langage (rationnel) L sur un alphabet Σ est dit sans
préfixe si, pour toutes chaı̂nes distinctes x et y appartenant à L, x n’est pas
préfixe de y et y n’est pas préfixe de x.
Nous avons une bonne quantité d’éléments à présent. Ces éléments nous
permettent maintenant de travailler sur les automates de manière plus adroi-
te. Il va nous falloir nous occuper des automates, les définir, leur trouver des
propriétés et finalement les généraliser, car là, se trouve le but de ce papier.
1.2.1 Automates
Les automates, nous allons les étudier, et pour cela, nous avons besoin
d’effectuer quelques rappels concernant leurs propriétés et définitions. Nous
pourrons, de cette manière, mieux apprécier les nouvelles notions qui seront
introduites dans ce papier. Nous verrons ainsi, durant la progression de notre
investigation, subtilités, qui différencient les automates finis, des automates
généralisés et des automates d’expression.
Mais comme chaque chose débute quelque part, commençons par l’au-
tomate que nous connaissons le mieux et pour lequel nous connaissons un
grand nombre de propriétés, à savoir, l’automate à nombre fini d’états, dont
voici la définition.
Définition 1.2.4 (Automate à nombre fini d’états). Un automate A à
nombre fini d’états, traditionnel, est défini par un quintuplet :
• δ ⊆ Q × Σ × Q, ensemble (fini) de transitions,
• Q un ensemble fini d’états,
A = Q, Σ, δ, I, T
6
Définition 1.2.5 (Automate accessible). Soit A = (Q, Σ, δ, I, T ) un auto-
mate. Alors, on dit que A est accessible si, pour tout état q ∈ Q il existe
un chemin c allant de l’état i à l’état q avec i ∈ I.
7
Définition 1.2.7 (Automate Généralisé). Un automate généralisé A est
défini par un quintuplet :
• δ ⊆ Q × Σ∗ × Q, ensemble (fini) de transitions,
• Q un ensemble fini d’états,
A = Q, Σ, δ, i, T
Tout comme cela est le cas pour les automates conventionnels, nous
allons maintenant pouvoir introduire la notion de déterminisme pour ces
nouveaux types d’automate.
8
Il faut donc noter maintenant que comme Giammarresi et Montalbano
ne nécessitent pas la condition 2, le résultat rapide en est que certains DGAs
(Deterministic Generalized Automaton) sont donc non déterministes. Mais
la condition 2 nous apporte la restriction suivante en fait. On évite la re-
dondance des transitions et on assure l’unicité des transitions pour un bloc
donné.
Définition 1.2.9. Une expression rationnelle α est sans préfixe si, L(α) est
sans préfixe.
9
Chapitre 2
Applications
Nous avons vu que partant d’un automate fini, celui-ci ne peut pas por-
ter plus d’une lettre par transition. Eilenberg [1] a ensuite proposé une
généralisation pour ces automates en leur permettant d’accepter aussi des
mots ou la chaı̂ne vide en ce qui concerne les transitions. Maintenant que
ces deux entités ont été étudiées, pourquoi ne pas étendre à nouveau les au-
tomates afin que leur transitions acceptent une notion un peu plus générale
que les mots, à savoir, des expressions rationnelles. Cela n’est pas du tout
contradictoire cela dit. En effet, n’oublions pas qu’une lettre ou un mot est
10
une expression rationnelle, fort simple, mais une expression rationnelle, tout
de même.
A = Q, Σ, δ, i, t
δ : Q × Q → RΣ
(p, q) 7→ α
Cette nouvelle notation n’est pas sans nous rappeler les notations uti-
lisées en compilation. Et si l’on se rappelle un peu de ce qui a été vu dans
des cas pratiques d’utilisation de ces automates, nous avons vu que ceux-ci
pouvaient apporter un gain considérable pour l’utilisation d’un compilateur
C++ par exemple. On peut aussi remarquer que δ contient exactement |Q|2
transitions, une pour chaque couple d’état, et même si (p, , q) fait partie de
δ, pour un certain p et q de Q, l’automate A ne peut pas aller de p à q
directement.
11
vers des suites de transitions d’expression acceptantes et vers des suites de
transitions de langages acceptants. Autrement dit, plutôt que de reconnaı̂tre
lettre par lettre lors des passages par transitions, nous allons voir comment il
devient possible d’accepter des suites d’expression ou des suites de langages.
Définition 2.1.2. Une séquence acceptante de transition d’expres-
sion est une suite de transitions de la forme :
(p0 = i, α1 , p1 ) · · · (pm−1 , αm , pm = t)
12
dit, il n’existe pas de transition ni entrantes ni bouclantes pour l’état initial
ou plus simplement, il n’existe aucun chemin passant par l’état initial. Il
est alors facile de montrer que tout automate d’expression utile A peut-être
convertit en un automate d’expression utile non-retournant, reconnaissant
le même langage L(A).
ei q ej
(ei · ej ) + ek
p r p r
ek
13
De cette manière, nous avons maintenant que L(Aq ) = L(A) avec Aq
utile et non retournant.
a
a a a
aa∗ b
a b a
b b
b b
ab
a(ab)∗ (aa∗ b + ab)
a
aa∗ b
ab
L’élimination d’un état q préserve tous les chemins étiquetés à partir des
prédécesseurs de q à ses successeurs. Par conséquent, l’élimination d’états
ne change pas le langage accepté par l’automate d’expression A.
14
Algorithme 1 : Éliminer état
Entrées : A un EA utile non retournant et q ∈ Q\{i, t} l’état à
éliminer.
début
{ Sauvegarde des transitions entrantes, sortantes et
bouclantes pour l’état q passé en paramètre };
δe ← {(p, α, q) ∈ δ | p ∈ Q\{t, q}, α ∈ RΣ };
δs ← {(q, γ, r) ∈ δ | r ∈ Q\{i, q}, γ ∈ RΣ };
δb ← {(q, β, q) ∈ δ | q ∈ Q\{i}, β ∈ RΣ };
pour tous les (p, α, q) ∈ δ avec p 6= q faire
{ Pour chacune des transitions entrantes };
pour tous les (q, γ, r) ∈ δ avec r 6= q faire
{ Pour chacune des transitions sortantes };
si ∃ (q, β, q) ∈ δ alors
{ S’il existe une transition bouclant };
Étiquette ← α · β ∗ · γ;
sinon
{ S’il n’existe pas de transition bouclant };
Étiquette ← α · γ;
finsi
si ∃ (p, ν, r) ∈ δ alors
{ Doit-on combiner deux transitions };
Étiquette ← ((Étiquette) + ν);
finsi
Ajouter Transition (A, (p, Étiquette, r));
finprts
finprts
{ Suppression des transitions devenues inutiles };
δ ← δ\(δe ∪ δs ∪ δb );
{ Suppression de l’état q};
Supprimer Etat (A, q);
retourner A;
fin
senter l’algorithme général qui est du coup, on ne peut plus simple. Il s’agit
de l’algorithme 2.
Un autre point important qu’il est nécessaire de soulever ici est l’ordre
dans lequel à lieu l’élimination des états. Ceci peut paraı̂tre annodin au
premier abord mais en y réfléchissant bien, nous allons aboutir à un résultat
intéressant. Nous avons vu que la complexité d’un langage était fortement lié
à la représentation de l’automate minimal le représentant. Nous venons aussi
de montrer que tout langage rationnel peut-être représenté par un automate
d’expression le reconnaissant et que celui-ci peut toujours se réduire en un
15
Algorithme 2 : Élimination totale
Entrées : A un automate d’expression utile non retournant.
Sorties : A un automate d’expression utile non retournant minimal.
début
Q′ ← Q\{i, t};
tant que Q′ 6= ∅ faire
q ← Obtenir Etat Suivant(Q′ );
Eliminer Etat(A, q);
Q′ ← Q′ \{q };
fintq
retourner A;
fin
automate comportant deux états (un final et un initial) et une, voire deux,
transitions. N’est-il pas formidable de se retrouver en présence d’un si petit
automate ?
e3 = a (ab)∗ aa∗ b
16
finale représentant l’expression et que nous pourrions, par la même occasion,
modifier la complexité du langage dans ce nouveau modèle qui tient compte
de la taille des étiquettes de transitions.
– Déterministe
– Minimal
– Accessible et Co-accessible (Utile)
On dit qu’un automate fini est déterministe si pour chaque état, l’état
suivant est défini de manière unique par l’état courant et par le caractère
d’entrée courant ou plus formellement :
17
Un automate d’expression est déterministe si et seulement si, pour cha-
cun des états p de l’automate, tout couple de transitions sortantes possèdent
des langages rationnels disjoints et chacun des langages rationnels ainsi
considérés, sont des langages sans préfixes.
a∗ a∗ b
(a) (b)
Afin de mieux cerner cette nouvelle notion, nous pouvons nous servir
de l’illustration de la figure 2.3. La transition sortante de la figure 2.3(a)
n’est pas sans préfixe car L(a∗ ) n’est pas sans préfixe. Nous avons ai qui
est préfixe de aj pour tout 1 ≤ i ≤ j. Du coup, on peut directement voir
que cet automate d’expression n’est pas déterministe. Par contre, la figure
2.3(b) présente un automate d’expression déterministe car le langage L(a∗ b)
est bel et bien sans préfixe.
2.2.1 Définition
Nous pouvons désormais, maintenant que nous avons aperçu ce qu’était
un automate d’expression déterministe, donner une définition formelle de ce
fameux déterminisme.
Définition 2.2.2. Un automate d’expression A = (Q, Σ, δ, i, t), où |Q| =
m, est déterministe si et seulement si les trois conditions suivantes sont
respectées :
1. Langages non préfixes : Pour tout état q ∈ Q et pour chaque tran-
sition sortant de l’état q
∀ q ∈ Q, δ(t, q) = ∅
18
Que ce passerait-il si jamais l’une de ces trois conditions n’était pas
remplie ? On se retrouverait en présence d’un langage préfixe par exemple
si les langages n’étaient pas disjoints par exemple.
2.2.2 Propriétés
Effectuer l’investigation de ces automates particuliers nous amène bien
naturellement à étudier certaines de leurs propriétés et des conséquences que
celles-ci apportent. C’est ce que nous allons voir dans cette partie. Et nous
commencerons par un lemme.
Théorème 2.2.1. La famille des langages rationnels sans préfixes est fer-
mée par la concaténation et l’intersection mais pas par l’union, complémen-
tarité ou l’étoile.
x = b ∈ L3 et y = bc ∈ L3
19
Un résultat relativement simple, comme cela venait d’être dit, il en est
de même pour le cas de la fermeture par complémentarité.
x = a ∈ L(a∗ b) et y = aa ∈ L(a∗ b)
Comme nous avons traiter deux cas de non fermeture, nous allons appor-
ter la preuve que la fermeture par concaténation de deux langages rationnels
sans préfixe reste bien dans la famille des langages rationnels sans préfixe.
Traitons maintenant les différents cas possibles qui s’offrent à nous. Soit
X = x1 .x2 ∈ L et Y = y1 .y2 ∈ L, nous avons les différents cas suivants
où pour chacun, X 6= Y , X 6= ǫ et Y 6= ǫ mais nous n’en traiterons que la
moitié sans perte de généralités :
cas 1 : |X| = |Y | et |x1 | > |y1 | Or, par définition, on a y1 6< x1 donc X 6< Y et
x1 x2
y1 y2
x1 x2
y1 y2
aux |y1 | première lettres est différent de y1 donc, X 6< Y et comme |X| < |Y | on a
Y 6< X.
Les autres cas sont symétriques et tous donnent le même résultat à peu
de choses près, par symétrie ou évidence.
20
2.3. Minimisation des Automates d’expression
Comme certaines propriétés concernant les automates d’expression ont
pu être vues, nous allons à présent, nous occuper de la minimisation des
automates d’expression. Il est naturel de tenter de réduire la taille d’un au-
tomate autant qu’il nous est possible afin d’économiser de l’espace mémoire
ainsi que de la lisibilité.
2.3.1 Définition
Nous définissons la minimisation d’un DEA (Automate d’Expression
Déterministe) comme la transformation d’un DEA donné en un DEA équi-
valent mais possédant un nombre inférieur d’états. On peut remarquer que
pour tout DEA donné, nous sommes en mesure de construire un DEA mi-
nimal consistant en un état initial et un état final reliés entre eux par une
unique transition en utilisant l’élimination des états pour les DEA vu en
2.1.1.
21
l’état q. On peut alors se demander la chose suivante. Si p ∼ q, cela signifie-
t-il qu’il existe un couple d’états indifférentiables dans les états suivants du
DFA ? Cette propriété est loin d’être vraie, la preuve en est visible en figure
2.4.
a
p bcad r
a b
c
s f
b db
∗
q a b u ca v
Définition 2.3.1. Un DEA utile A est minimal si tous les états de A sont
différentiables les uns par rapport aux autres.
22
←− ← −
de p est maintenant Lp ∪ Lq alors que juste avant le langage gauche de p est
←− ←− −→ − →
Lp et celui de q, Lq . Néanmoins, puisque Lp = Lq , une fois qu’on a enlevé
l’état q le langage droit de p reste, par conséquent, inchangé. Finalement,
nous concaténons les langages et nous obtenons le langage initial, avant la
suppression de l’état q.
←
− ← − − → ←−− → ←
−− →
Lp ∪ Lq .Lq = Lp .Lp ∪ Lq .Lp
←−− → ←
−− →
= Lp .Lp ∪ Lq .Lq
e1 + e2
e1
e2 p
p e3 + e4
e3
e4
e5 q e5 + e6
q
e6
Tout comme pour les DGAs, il n’est pas possible d’assurer l’unicité d’un
DEA minimal pour un DEA donné. En revanche, nous pouvons garantir que
nous obtenons bel et bien “un” DEA minimal. Par exemple, l’automate en
figure 2.4 peut-être minimisé, au moins, de deux manières distinctes.
2.3.2 Algorithme
Le plus difficile dans cette partie, ce n’est pas l’application de l’algo-
rithme en général mais surement l’opération consistant à comparer deux
langages droits. Nous pourrions effectuer une copie de l’automate et elimi-
ner tous les états de l’automate distincts du couple considéré. Il ne resterait
alors qu’à comparer les expressions. Mais, est-ce vraiment judicieux ?
23
inaccessible
a
p r p bcad r
a+b b
c c
s f s f
db
a+b db
q u ca v q u v
a∗ b
inaccessible
p→q q→p
a
bcad
a+b b
a+b a∗ b ca db
db
c
c
(a) (b)
Fig. 2.6 – Deux automates minimaux distincts pour l’automate en Fig. 2.4
On dit qu’un état b dans un DFA A est un état pont si les conditions
suivantes sont maintenues :
1. b est ni un état initial, ni un état final.
2. Pour tout mot w ∈ A, son chemin, dans A, doit passer au moins une
fois par l’état b.
24
Algorithme 3 : Minimisation d’un EA
Entrées : A un EA utile non retournant et q ∈ Q\{i, t} l’état à
éliminer.
début
pour tous les p ∈ Q faire
{ Pour chacun des états p};
pour tous les q ∈ Q faire
{ Pour chacun des états q};
si p 6= q alors
{ Un couple d’états distincts };
si p ∼ q alors
{ Ce couple est indifférentiable };
Supprimer Etat (A, q);
{ Suppression des transitions sortantes };
pour tous les (q, α, r) ∈ δ faire
Supprimer Transition (δ, (q, α, r));
finprts
{ Redirection des transitions entrantes };
pour tous les (r, α, q) ∈ δ faire
Supprimer Transition (δ, (r, α, q));
Ajouter Transition (δ, (r, α, p));
finprts
finsi
finsi
finprts
finprts
retourner A;
fin
Le théorème 2.4.1 nous montre enfin que étant donné un langage ration-
nel sans préfixe L, celui-ci ne peut-être décomposé indéfiniment puisque son
DFA minimal possède un nombre fini d’états.
25
Conclusion
26
Ce que nous pourrions tenter à présent, serait de généraliser les au-
tomates considérés depuis le début de ce document, ainsi que toutes les
propriétés obtenues, aux automates à multiplicité. Nous pourrions peut-
être obtenir quelques résultats supplémentaires, plus larges, mais qui nous
permettraient, au final, de les réappliquer de la cas précis des automates
d’expression. (Reculer pour mieux sauter)
27
Bibliographie
28