Title: Dfinition
1Définition
- Une grammaire (ou grammaire de phrases ou
grammaire à structure de phrases) est un
quadruplet ( V, T, S, R ) où - V est un ensemble fini de symboles non terminaux
(alphabet non terminal). - T est un ensemble fini de symboles terminaux
(alphabet terminal).
2- S ? V est le symbole de départ quon nomme aussi
axiome ou symbole initial. - R est un ensemble fini de règles de réécriture
(ou productions ou règles de substitution). Ces
règles sont formées dun terme de gauche, dune
flèche (?) et dun terme de droite. Les termes
gauche et droit peuvent être nimporte quelle
combinaison de symboles de V ou de T, pourvu
quil y ait au moins un symbole de V à gauche. Le
côté droit peut être vide, ce qui est indiqué par
un ?. On parle alors de règle-?.
3Convention
- Les majuscules sont des symboles non terminaux.
- Les minuscules sont des symboles terminaux.
- S est le symbole initial.
- Cette convention permet de simplifier la
description dune grammaire en donnant seulement
la description de R.
4Dérivation
- Une grammaire génère une séquence de symboles
terminaux par dérivation. - Une dérivation est une suite détapes où chaque
étape consiste à remplacer (tant que cest
possible) un patron apparaissant du côté gauche
dune règle de R par le côté droit correspondant. - La chaîne initiale est le symbole de départ de la
grammaire.
5Définition
- Une grammaire régulière est une grammaire avec
les restrictions suivantes - Le côté gauche des règles consiste en un seul
symbole non terminal. - Le côté droit des règles est
- soit un symbole terminal suivi dun symbole non
terminal, - soit un seul symbole terminal,
- soit ?.
6Remarque
- À cause de ces restrictions, une grammaire
régulière permet de générer les symboles de
gauche à droite.
7Remarque
- Il est possible déliminer les règles dont le
côté droit consiste en un seul symbole terminal,
i.e. les règles de la forme N ? x, en les
remplaçant par N ? xX X ? ?où X est un
nouveau symbole napparaissant pas dans la
grammaire initiale.
8Remarques
- Nous allons montrer que les grammaires régulières
génèrent exactement les langages reconnus par les
automates finis. - Malgré les fortes restrictions imposées à la
forme des règles de réécriture des grammaires
régulières, elles génèrent lensemble des
langages reconnaissables par les automates finis.
9Remarques
- Nous verrons dans les sections suivantes comment
la levée des restrictions imposées aux grammaires
régulières permettra la génération de nouveaux
langages.
10Théorème
- Pour chaque alphabet ?, L (G) G est une
grammaire régulière sur ? L (M) M est
un automate fini sur ? - En mots lensemble des langages générés par
toutes les grammaires régulières est égal à
lensemble des langages reconnus par tous les
automates finis.
11Démonstration
- La démonstration indique dabord comment, à
partir dune grammaire G, on peut construire un
automate M tel que L(G) L(M). - Ensuite on montre comment dériver une grammaire G
à partir dun automate M de façon à ce que L(G)
L(M).
12Conversion grammaire / automate Soit G (V, T,
SG, R) une grammaire régulière sur ? 1) Daprès
une remarque précédente, on peut transformer la
grammaire G en une grammaire G (V, T, SG,
R) qui génère le même langage mais nayant pas
de règles dont le côté droit consiste en un seul
symbole terminal.
132) On définit un automate fini non déterministe M
(SM, ?, ?,?,F)comme suit - SM V - ?
T - ? (P, x, Q) il y a une règle de la forme
P ? xQ dans R note il y a lecture dun x
par lautomate ssi il y a génération
dun x par la grammaire. - ? SG - F XX ?
? est une règle de R note une règle de la
forme X ? ? fait disparaître le
symbole non terminal X.
14Conversion automate / grammaire Soit M (SM, ?,
?,?,F) un automate fini non déterministe. La
grammaire G (V,T,SG,R)est définie comme
suit - V SM - T ? - SG ? - R P ?
xQ(P, x, Q) ?? ?Q ??Q?FIl sagit donc tout
simplement de la construction inverse.
15Exemple
- Prenons la grammaire régulière suivanteS ? aA
A ? bB B ? aAS ? bB A ? ? B ? ? - La grammaire na pas de règles dont le côté droit
consiste en un seul symbole terminal alors il
nest pas nécessaire de faire létape 1.
16- Étape 2
- Puisque V S, A, B et T a, b,nous
trouvons lautomate M (S, ?, ?, ?, F) suivant
- S A, B, S
- ? a, b
- ? (S, a, A), (S, b, B), (A, b, B), (B, a, A)
- ? S
- F A, B
17Son diagramme de transition
On voit bien comment faire la transformation
inverse( automate / grammaire ) en utilisant la
même idée que dansla démonstration du
théorème.Lautomate accepte la séquence aba en
passant par les étatsSABA. La grammaire génère
cette chaîne par dérivation S ? aA ? abB ? abaA
? aba Remarque la suite de symboles non
terminaux apparaissantdans cette dérivation est
SABA, i.e. la suite détats de lautomate qui
mène à létat dacceptation.
18Exercice
- Trouver un automate fini qui reconnaît le même
langage que le langage généré par la grammaire
régulière suivante - S ? aA S ? bS A ? aAS ? a S ? b
A ? a
19Étape 1) Transformer la grammaire pour qu elle
nait pas de règles dont le côté droit
consiste en un seul symbole terminal.
20Étape 2) Nous trouvons l automate M (SM, ?, ?,
?, F) suivant. - SM S, A, X - ? a,
b - ? (S, a, A), (S, b, S), (A, a, A), (S,
a, X), (S, b, X), (A, a,
X) - ? S - F X
21Exercice
- Trouver une grammaire régulière qui génère le
même langage que le langage accepté par
lautomate fini suivant
22- Solution Construisons la grammaire G V,
T, SG, R - V SM A, B, C
- T ? a, b
- SG ? A
- R P ? xQ(P, x, Q) ?? ?Q ??Q?F
- A ? bC, A ? bB, C ? aA, C ? aB,
C ? ?, B ??
23Expressions régulières
- Objectifs spécifiques
- Décrire le langage représenté par une expression
régulière donnée. - Construire une expression régulière représentant
un langage donné. - Les grammaires régulières, les expressions
régulières et les automates finis décrivent les
mêmes langages passer dune représentation à
lautre.
24Introduction
- Nous allons développer une autre caractérisation
des langages réguliers. - Nous considérons dabord les langages les plus
simples qui peuvent être formés sur lalphabet ?
le langage vide et les langages contenant une
séquence dun seul symbole, comme a et b.
25Introduction
- Ensuite nous définirons des opérateurs qui nous
permettront de combiner ces langages élémentaires
pour former le langage ? et des langages plus
complexes. - Ces opérateurs sont lunion, la concaténation et
la fermeture.
26Union de deux langages
- Les langages sont des ensembles.
- Lunion de deux langages (L1 et L2) est lunion
de deux ensembles, notée L1 ? L2.
27Exercices
- Effectuer lopération demandée.
- ? ? a, ab, ba
- R ?, a, ab, ba
- ambn m, n?N ?mltn ? ambn m, n?N ?mgtn
- R ambn m, n?N ?m?n
28Théorème
- Lunion de deux langages réguliers L1 et L2 est
aussi un langage régulier.
29Démonstration
- Soient M1 (S1, ?1, ?1, ?1, F1) et M2
(S2, ?2, ?2, ?2, F2) deux automates finis tels
que L1 L(M1) et L2 L(M2). - Construisons un automate fini M (S, ?, ?,
?, F) tel que L(M) L1 ? L2.
30- Puisque L(M) est régulier, ceci démontrera que L1
? L2 est régulier. - Définissons M
- ? ?1 ? ?2
- S S1 ? S2 ? ? où ? est un nouvel état, ? ?
S1 ? S2 . On suppose S1 ? S2 ?, sinonrenommer.
- ? ?1 ? ?2 ? (?,x,q) (?1,x,q)? ?1 ?
(?2,x,q)? ?2. - En mots les transitions de M sont celles de M1
et de M2 plus des transitions partant de létat
initial de M simulant les transitions partant de
létat initial de M1 et de létat initial de M2.
31F1 ? F2 ? ? si ?1?F1 ou ?2? F2 F1 ? F2 sinon.
- F
- En mots les états finaux de M sont les états
finaux de M1 et de M2, auxquels il faut ajouter
létat initial, si létat initial de M1 est final
ou si létat initial de M2 est final. - De toute évidence, M accepte une chaîne ssi elle
est acceptée par M1 ou par M2.
32Exemple
- Voici un exemple qui illustre la construction
utilisée dans le théorème précédent. Soient M1 et
M2 les automates
33- Construisons maintenant un automate M qui
reconnaît L(M1) ? L(M2). L ensemble des états
de M est S ?, 1, 2, 3, 4. - Lalphabet ? a,b.
- Les relations décrivant les transitions de M1 et
M2 sont ?1 (1, a, 1), (1, b, 2) ?2 (3,
b, 3), (3, a, 4). - La relation de transition de M est donc ? ?1
? ?2 ?(?,x,q)(1,x,q)? ?1 ? (3,x,q)? ?2
(1,a,1),(1,b,2),(3,b,3),(3,a,4),(?,a,1),(?,b,2),
(?,b,3),(?,a,4).
34- Comme ni létat initial de M1 ni l état initial
de M2 n est final, l ensembles des états finaux
de M est F 2, 4. - Le diagramme de transitions de M est donc
35- On a
- L(M1) anb n ?N
- L(M2) bna n ?N
- L(M) L(M1) ? L(M2) snt n ?N ?
((sa ?tb) ? (sb ? ta)) anb n ?
N ?bna n ? N . - Les séquences de L(M) ont soit la forme anb ,
soit la forme bna, pour n ?N. - La première transition de M, effectuée à la
lecture du premier symbole, décide de manière non
déterministe si la suite de la reconnaissance
seffectue avec la sous-machine correspondant à
M1 ou avec celle correspondant à M2.
36Remarques sur lexemple
- On voit quil nest pas correct de simplement
fusionner les états initiaux. - Si on avait simplement fusionné les états
initiaux, on aurait obtenu lautomate suivant
Cet automate accepte la séquence aba qui
nappartient pas à L(M1) ? L(M2).
37Exercice
- Donner le diagramme de transitions dun automate
qui accepte lunion des langages acceptés par les
automates suivants. Lalphabet de M1 est a, b
et celui de M2 est c, d.
38- Solution Voici l automate M qui reconnaît
L(M1) ? L(M2). - ? a,b,c,d.
- SM ?, 1, 2, 3, 4.
- ? ?1 ? ?2 ?(?,x,q)(1,x,q)? ?1 ? (3,x,q)? ?2
- (1, a, 2),(2, b, 1)? (3, c, 4),(4, d, 3)
? (?, a, 2),(?, c, 4) (1, a,
2),(2, b, 1),(3, c, 4),(4, d, 3),(?, a, 2),(?, c,
4). - F 2, 4.
39- Voici le diagramme de transitions de l automate
M
40Concaténation de deux langages
- Définition Soient L1 et L2 deux langages sur
lalphabet ?. La concaténation de L1 et L2,
dénotée L1 ? L2, est définie comme suit L1 ?
L2 w1w2 w1 ? L1 ? w2 ? L2 - Autrement dit, L1 ? L2 contient toutes les
séquences formées par la concaténation dune
séquence de L1 avec une séquence de L2.
41Exemple
- Si L1 a, b et L2 c, ad alors L1 ? L2
ac, aad, bc, bad
42Exercices
- Effectuer les concaténations demandées.
- a, ab ? b, ba
- R ab, aba, abb, abba
- b, ba ? a, ab
- R ba, bab, baa, baab
- (a ? aa, bb ) ? bb, ccc
- R aaabb, aaaccc, abbbb, abbccc
43- a ? (aa, bb ? bb, ccc)
- R aaabb, aaaccc, abbbb, abbccc
- ? ? a, ab, abc
- R a, ab, abc
- a, ab, abc ? ?
- R a, ab, abc
44Exercices
- Vrai ou faux? (Tous les langages de ces exercices
sont des langages sur le même alphabet). - Associativité de ? L1 ? (L2 ? L3) (L1 ? L2)
? L3 - R Vrai.
- Commutativité de ? L1 ? L2 L2 ? L1
- R Faux, voir exercice précédent.
- ? élément neutre à gauche et à droite pour ?
? ? L L ? ? L - R Vrai.
45Théorème
- La concaténation de deux langages réguliers L1 et
L2 est aussi un langage régulier.
46Démonstration
- Soient M1 (S1, ?1, ?1, ?1, F1) et M2
(S2, ?2, ?2, ?2, F2) deux automates finis tels
que L1 L(M1) et L2 L(M2). - Construisons un automate fini M (S, ?, ?,
?, F) tel que L(M) L1 ? L2.
47- Puisque L(M) est régulier, ceci démontrera que
L1 ? L2 est régulier. - Définissons M
- S S1 ? S2.
- ? ? 1? ?2
- ? ?1 ? ?2 ? (p,x,q) p ? F1 ? (?2,x,q)? ?2.
- En mots les transitions de M sont celles de M1
et de M2 plus celles qui sont nécessaires pour
que M1 passe le contrôle à M2 ces dernières
transitions relient les états finaux de M1 aux
états atteints depuis létat initial de M2 après
une transition.
48- létat initial de M est létat initial de M1
? ?1.
- En mots Les états finaux de M2 sont des états
finaux de M. Si létat initial de M2 est final,
les états finaux de M1 sont aussi des états
finaux de M. - M accepte une chaîne en se comportant comme M1,
puis après avoir atteint un état final de M1, en
se comportant comme M2.
49Exemple
- Soient les automates M1 (1, 2, a, b, ?1,
1, 2) et M2 (3, 4, a, b, ?2, 3,
4),où ?1 et ?2 sont décrits par les diagrammes
suivants
50- Construisons un automate M qui reconnaît L(M1) ?
L(M2). La construction de la preuve du théorème
précédent nous indique que M (1, 2, 3, 4,
a, b, ?, 1, 4)où ? ?1 ? ?2 ? (p,x,q) p
? 2 ? (3,x,q)? ?2 - (1, a, 1), (1, b, 2), (2, a, 2) ?
(3, b, 3), (3, a, 4), (4, b, 4) ? (2, b,
3), (2, a, 4) - (1, a, 1), (1, b, 2), (2, a, 2), (3, b,
3), (3, a, 4), (4, b, 4), (2, b, 3), (2,
a, 4).
51Donc le diagramme de transitions de M est
52Exercice
- Soient les automates suivants
Construire un automate qui accepte L(M1) ? L(M2)
53- Solution La construction de la preuve du
théorème précédent nous indique que M (1, 2,
3, 4, a, b, c, d, ?, 1, 2, 3, 4) - où ? ?1 ? ?2 ? (p,x,q) p ? 2 ? (3,x,q)?
?2 - (1, a, 2), (1, b, 2), (2, b, 2) ?
(3, c, 3), (3, d, 4), (4, d, 4) ? (2, c,
3), (2, d, 4) - (1, a, 2), (1, b, 2), (2, b, 2), (3, c,
3), (3, d, 4), (4, d, 4), (2, c, 3), (2,
d, 4).
54- Le diagramme de transitions de M
55Fermeture dun langage
- Nous connaissons la fermeture dun alphabet ?,
notée ? (lensemble de toutes les séquences
finies de symboles de ?.) - Nous allons étendre cette opération de fermeture
aux langages en définissant la fermeture dun
langage.
56Définition
- Soit L un langage. La fermeture de L, dénotée L,
est lensemble des séquences formées en
concaténant un nombre fini (0 ou plusieurs) de
séquences de L. - L w1w2...wn n ?N ? wi ? L pour tout
i 1 ...n. - On remarque que pour tout langage L,??L.
57Exemple
- Si L1 a alors
- L1 ?, a, aa, aaa, aaaa, aaaaa, ... .
- Si L2 ab alors
- L2 ?, ab, abab, ababab, abababab, ... .
- Si L3 a, ab alors
- L3 ?, a, ab, aa, aab, aba, abab, aaa,
aaba, aabab, abaa, ...
58Exercices
- Énumérer les premières séquences des langages
suivants - (ab ? cd, ?)
- R ?, ab, cd, abab, abcd, cdab, cdcd, ababab,
... - (ab ? cd, ?)
- R?, abcd, ab, abcdabcd, abcdab, ababcd, abab,
... - ?
- R ?.
59Théorème
- La fermeture dun langage régulier L est un
langage régulier.
60Démonstration
- Soit M (S, ?, ?, ?, F) un automate fini tel que
L L(M). Construisons un automate fini M
(S, ?, ?, ?, F) tel que L(M) L. - M est défini comme suit
- S S ? ?, où ? est un nouvel état, ??S.
- ? est létat initial.
61- F F ? ?. Ceci force lacceptation de ?.
- ? ? ? (p, x, q) p ? F? (?, x, q) ? ?.
- M peut faire toutes les transitions de M et en
plus, à partir de ses états finaux, il simule le
comportement de M dans létat initial ?. Ceci
permet de revenir au début de lautomate pour
reconnaître une nouvelle séquence de L.
62Exemple
- Cet exemple illustre lapplication du théorème
précédent. - Soit lautomate M (1, 2, a, b, ?, 1, 2)
où ? est donné par le diagramme suivant
63- En utilisant la méthode du théorème précédent,
construisons un automate M tel que L(M)
(L(M)). - M (1, 2, ?, a, b, ?, ?, ?, 2) où
- ? ? ?(p, x, q)p??,2?(1, x, q) ? ?
(1,a,1),(1,b,2) ?
(?,a,1),(?,b,2),(2,a,1),(2,b,2).
64- Pour bien comprendre pourquoi M reconnaît
(L(M)), nous divisons la construction du
diagramme de transitions de M en deux étapes.
65- Étape 1 Ajoutons le nouvel état initial
(toujours final) et les arcs qui en émergent.
étape 1
On voit comment M , dans l état initial ?,
simule le comportement de M dans son état
initial. Par exemple, à la lecture du symbole a,
M passe de l état initial à l état 1, tout
comme M.
66 Étape 2 Ajoutons maintenant les arcs qui
émergent de l état final qui correspond à
l état final de M (i.e. l état 2).
étape 2
On voit comment M , dans l état final 2,
simule le comportement de M dans son état
initial.Par exemple, dans l état 2, à la
lecture du symbole a, M passe dans l état 1,
comme M.
67Exercice
- Construire l automate qui accepte la fermeture
du langage accepté par l automate M suivant
68- Solution
- Construisons un automate M tel que L(M)
(L(M)). - M (1, 2, 3, a, b, c, ?, 1, 3)où ? (1,
a, 2), (2, b, 1), (2, c, 3).
69- L automate M a la forme M (S,a, b, c,
?, ?, F où - ? 4 ( un nouvel état),
- S S ? ? 1, 2, 3, 4,
- F F ? ? 3, 4,
70? ? ? (p, x, q) p ? F? (?, x, q) ? ?
? ? (p, x, q) p ? 3, 4 ? (1, x, q) ?
(1, a, 2), (2, b, 1), (2, c, 3) (1,
a, 2), (2, b, 1), (2, c, 3)?(3, a, 2),(4, a,
2) (1, a, 2), (2, b, 1), (2, c, 3), (3,
a, 2),(4, a, 2). Son diagramme de transitions
71- On peut facilement voir que L(M) a(ba)nc n ?
N (ab)nac n ? N. - Par conséquent, par le théorème précédent,L(M )
a(ba)nc n ? N (ab)nac n ?
N .
72Expressions régulières
- Nous allons introduire le concept d expression
régulière, ce qui permettra de représenter les
langages réguliers par des expressions
régulières. - Ces expressions sont essentiellement formées des
symboles associés aux opérateurs précédemment
définis sur lensemble des langages union,
concaténation et fermeture.
73Définition
- Une expression régulière sur un alphabet ? se
définit par les propositions récursives
suivantes - ? est une expression régulière. (? dénote
lexpression vide). - x est une expression régulière, pour tout x ? ?.
- Si p et q sont des expressions régulières alors(
p ? q ) est une expression régulière.
74- Si p et q sont des expressions régulières alors
( p ? q ) est une expression régulière. - Si p est une expression régulière alors p est
aussi une expression régulière. - Les seules expressions régulières sont celles
construites par les 5 cas cités précédemment.
75Remarque
- Il faut respecter cette définition comme on
respecte la syntaxe dun langage (comme Java ou
C) lors de lécriture d un programme. - Notez en particulier lusage des parenthèses.
76Exercices
- Soit ? a, b, c. Parmi les termes suivants,
identifiez des expressions régulières sur ?.
Justifiez. - (a ? (b ? c)).
- R Oui, cest une expression régulière. En effet,
- a, b, c sont des expressions régulières car
ces symboles appartiennent à ? (cas 2). (b ? c)
est une expression régulière (cas 4). Et
enfin,(a ? (b ? c)) est une expression régulière
(cas 3).
77- a ? (b ? c).
- R Non, car les crochets ne sont pas permis
daprès la syntaxe adoptée dans les règles de
construction des expressions régulières (cas 1 à
5). - b.
- R Oui, car b est une expression régulière et
daprès le cas 5, b en est une également.
78- (b).
- R Non, car dans la règle 5 (cas 5), la syntaxe
ne permet pas les parenthèses. - (((a ? b) ? b).
- R Non, car les parenthèses ne sont pas
équilibrés. - (a ? b) ? b.
- R Non, car la règle donnée dans le cas 4 est
violée (pas de parenthèses).
79Définition
- Soit une expression régulière r et un alphabet ?.
Le langage représenté par r, noté L(r), est
défini par les propositions récursives suivantes
- L(?) ?.
- Pour tout x ? ?, L(x) x.
- Si p et q sont deux expressions régulières alors
L((p ? q)) L(p) ? L(q).
80Définition(suite)
- Si p et q sont deux expressions régulières alors
L((p ? q)) L(p) ? L(q). - Si p est une expression régulière alors L(p)
(L(p)).
81Exemple
- Appliquons la définition précédente afin de
déterminer les langages associés à des
expressions régulières complexes. Lalphabet est
? a, b, c. - L( (a ? (b ? c))).
- R L ( (a ? (b ? c)))
- ? Clause 3 de la définition précédente?
- L(a) ? L((b ? c))
82- L(a) ? L((b ? c))
- ?Clause 4 de la définition?
- L(a) ? (L(b) ? L(c))
- ?Clause 2 de la définition?
- a ? (b ? c)
- ?Définition de la concaténation?
- a ? bc
- ?Définition de lunion?
- a, bc.
83- L(((a ? b)? c))
- R L(((a ? b)? c))
- ?Clause 3?
- L((a ? b))? L(c)
- ?Clause 5?
- (L((a ? b)))? (L(c))
- ?Clause 4?
- (L(a) ? L(b))? (L(c))
- ?Clause 2?
- (a ? b)? c
- ?Par définition de la concaténation, non
- par les clauses de construction dun langage
à partir dune expression
régulière? - ab ? c ?Par définition de la fermeture
dun langage? - wn n ? N ? (w ab ? w c).
84Remarque
- Il ne faut pas confondre expression régulière et
langage. Une expression régulière sur un alphabet
? est une séquence de symboles venant de ? ? ?,
?, , ? alors quun langage sur ? est un
ensemble de séquences de symboles pris dans ?. - Notez que ? ne dénote pas la même chose que ?. Le
premier est une expression régulière représentant
le langage ?.
85Exercices
- Donnez le langage représenté par les expressions
régulières suivantes - (a ? (a ? b))
- R L((a ? (a ? b)))
- ? Clause 4?
- L(a) ? L((a ? b))
- ? Clause 3?
- L(a) ? (L(a) ? L(b))
- ? Clause 2?
- a? (a ? b)
- ? Définition de lunion?
- a? a,b
- ? Définition de la concaténation?
- aa, ab.
86- ((a ? a) ? (b ? b))
- R L (((a ? a) ? (b ? b)))
- ? Clause 3?
- L((a ? a) ) ? L((b ? b))
- ? Clause 5?
- (L((a ? a))) ? (L((b ? b)))
- ? Clause 3 ?
- (L((a ? a))) ? (L(b ) ? L(b))
- ? Clause 4?
- (L(a) ? L(a)) ? (L(b ) ? L(b))
- ? Clause 2?
- (a ? a) ? (b ? b))
- ? Définition de la concaténation?
- aa ? (b ? b))
- ? Définition de lunion?
- aa ? b.
87- Pour chacun des langages suivants, donnez une
expression régulière qui le représente - ajbak j,k ? N.
- R (((a ? a) ? b) ? (a ? a)).
- wn n ? N ? (w ab ? w ba).
- R ((a ? b) ? (b ? a)).
88Remarque
- Lexpression qui représente le langage
élémentaire élémentaire ? est ?. En effet,
L(?) (L(?)) ? ?.
89Théorème
- Soit un alphabet ?. Les langages réguliers sur ?
sont précisément les langages représentables par
les expressions régulières sur ?.
90Démonstration
- La démonstration se divise en deux parties
- Montrer que tout langage représentable par une
expression régulière est régulier - Montrer que tout langage régulier est
représentable par une expression régulière.
91- Partie 1 Montrer que si un langage est
représentable par une expression régulière, alors
cest un langage régulier. - On sait que ? est un langage régulier, ainsi que
x pour tout x ? ?. Par conséquent, ? et x
représentent des langages réguliers.
92- Les expressions régulières plus complexes sont
construites à partir dexpressions plus simples
en utilisant lunion, la concaténation et la
fermeture - Selon le théorème 1.99 (vu auparavant), l union
de deux langages réguliers est un langage
régulier. Par conséquent, L((p ? r)), qui est
égal à L(p) ? L(r), est un langage régulier si
L(p) et L(r) sont réguliers. - Selon le théorème 1.106 (vu auparavant), la
concaténation de deux langages réguliers est un
langage régulier. Par conséquent, L((p ? r)), qui
est égal à L(p) ? L(r), est un langage régulier
si L(p) et L(r) sont réguliers.
93- Selon le théorème 1.112 (vu auparavant), la
fermeture d un langage régulier est un langage
régulier. Par conséquent, L(p), qui est égal à
(L(p)), est un langage régulier si L(p) est
régulier.
94- On voit quil nest pas possible de construire
une expression régulière qui ne représente pas un
langage régulier, puisque les expressions
régulières élémentaires représentent des langages
réguliers et que la combinaison dexpressions
régulières représentant des langages réguliers
est une expression régulière représentant un
langage régulier.
95- Partie 2 Montrer que si un langage est régulier,
alors il est représentable par une expression
régulière. - Pour ce faire, nous associerons une expression
régulière r à chaque automate fini M, de manière
à ce que L(r) L(M). - Nous considérerons des diagrammes de transitions
généralisés dont les arcs sont étiquetés par des
expressions régulières.
96- Voici un exemple dune partie d un tel diagramme
Pour passer de létat 1 à létat 2, lautomate
doit lire une séquence de 0 ou plusieurs x,
suivis d un y.
Si ces diagrammes généralisés peuvent être
transformés en expressions régulières, les
diagrammes usuels pourront l être.
97- Soit T le diagramme de transitions de M. Pour
trouver lexpression régulière r telle que L(r)
L(M), il faut appliquer les règles suivantes
jusquà ce que l expression régulière soit
trouvée. - Si T n a pas d état final, r ?.
- Si T a n états finaux, n gt 1, faire n copies
T1,T2,Tn de T, chaque Ti ayant un seul état
final différent des autres Tj. Évidemment, L(T)
L(T1) ? L(T2) ? ? L(Tn).
98Par exemple, si T est le diagramme suivant
On obtient
99Après avoir fait cette transformation, il faut
trouver des expressions régulières r1, r2, , rn
telles que L(ri) L(Ti) , pour i 1, ,
n. On aura alors r ((r1 ? r2) ? ? rn).
100- Si T a un seul état final.
- a) Si, de l état s1 à l état s2 il y a k arcs
étiquetés r1, r2, , rk, les remplacer par un arc
unique étiqueté r ((r1 ? r2) ? ? rk). - Par exemple , les deux parties de diagramme qui
suivent
Deviennent respectivement
101- b) Si, entre chaque paire d états il y a au plus
un arc dans chaque direction - Si T a un seul état, il est nécessairement
initial et final - Si T est
alors r p.
alors r ?.
Si T est
- Si T a deux états, lun initial et lautre final,
il y a au plus quatre arcs
102A. Si l arc t est absent, r ?.
B. Si l arc t est présent, il y a 8 cas. Dans
chaque cas, l expression régulière associée au
diagramme est facile à déduire. Par exemple, si
les seuls arcs présents sont s et t, il peut y
avoir 0 ou plusieurs transitions par larc s,
suivies d une transition par larc t.
L expression est donc (s ? t).
103- La table suivante donne une expression régulière
pour chacun des 8 cas. En changeant la
disposition des parenthèses, il est possible
d obtenir d autres solutions correctes. Dans
cette table, p signifie présent et a
signifie absent .
104(No Transcript)
105iii. Si T a au moins un état qui nest ni initial
ni final soit s0 lun de ces états. La situation
est la suivante (les boucles sont omises car non
pertinentes)
106Enlever s0 et ses arcs incidents. Pour chaque
paire p, q darcs enlevés tels que
ajouter un arc de s1 à s2, avec lexpression ( p
? q) si t est absent (( p ? t) ? q) si t est
présent.
Remarque ce dernier cas permet denlever un état
à lautomate. Un examen des cas traités montre
que le nombre détats doit diminuer jusquà un ou
deux. Le processus termine donc.
107Exemple
- Considérons le diagramme suivant
Trouvons lexpression régulière associée à ce
diagramme en utilisant la méthode de la partie 2
de la démonstration du théorème précédent.
108Il faut appliquer la méthode du cas 3(b)iii,
supprimer cet état 2 et ajouter un arc étiqueté
((a ? b) ? a) entre les états 1 et 3.
Il y a plus dun arc de létat 1 vers létat 3.
Cest le cas 3a. Faisons lunion des expressions
de ces deux arcs et remplaçons les par un seul.
109Il reste deux états lun est initial et lautre
est final. Larc entre létat initial et létat
final est présent. On est donc dans le cas
3(b)iiB. Les arcs nommés s et v dans le théorème
sont absents, mais larc u est présent. Daprès
la table, lexpression régulière correspondant au
diagramme est
((((a ? b) ? a) ? c) ? d)
110Exercice
- Donner une expression régulière qui représente le
langage accepté par lautomate M suivant
111Solution Utilisons la méthode décrite dans la
partie 2 de la démonstration du théorème
précédent. Il serait possible de supprimer létat
5 sans changer le langage accepté par lautomate
ceci simplifierais la démarche subséquente. Nous
appliquerons plutôt la méthode strictement, et la
suppression se fera en temps et lieu.
112- Cas 2 Puisquil y a trois états finaux, il faut
faire trois copies de lautomate
113Cas 3b(iii) Les automates ont un seul état
final. Il y a au plus un arc dans chaque
direction pour chaque paire détats. Létat 5
nest ni initial ni final comme il ny a aucune
paire(arc entrant, arc sortant) de létat 5, on
peut le supprimer.
114Traitons M1 et M2 en parallèle car ils se
ressemblent.
- Cas 3b(iii) Létat 4 des deux automates nest
ni initial, ni final comme il ny a aucune paire
( arc entrant, arc sortant ) de létat 4, on peut
le supprimer.
115- Cas 3b(iii) Létat 3 de M1 et létat 2 de M2
ne sont ni initiaux, ni finaux comme il ny a
aucune paire ( arc entrant, arc sortant ) de ces
états, on peut les supprimer.
116- Cas 3b(ii) Il y a deux états, l un initial,
l autre final. - er1 (a o d) er2 (b o d)
Continuons le traitement de M3.
117- Cas 3b(iii) Létat 2 de M3 nest pas initial,
ni final il faut tenir compte de toutes les
paires (arc entrant, arc sortant) de cet état
avant de le supprimer ( il n y a qu une telle
paire). Létat 3 est ensuite supprimé de manière
similaire.
118Cas 3a Un seul état final, deux transitions de
létat 1 vers létat 4.
119Cas 3b(ii) er3 (((a o d) o a) ? ((b o d) o
b)) En regroupant les résultats, on a er
((er1 ? er2) ? er3) (((a o d) ?(b o d))
?(((a o d) o a)?((b o d) o b))).