Dfinition - PowerPoint PPT Presentation

1 / 119
About This Presentation
Title:

Dfinition

Description:

V est un ensemble fini de symboles non terminaux (alphabet non terminal). T est un ... R est un ensemble fini de r gles de r criture (ou productions ou ... – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 120
Provided by: Pat145
Category:

less

Transcript and Presenter's Notes

Title: Dfinition


1
Dé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-?.

3
Convention
  • 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.

4
Dé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.

5
Dé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 ?.

6
Remarque
  • À cause de ces restrictions, une grammaire
    régulière permet de générer les symboles de
    gauche à droite.

7
Remarque
  • 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.

8
Remarques
  • 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.

9
Remarques
  • 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.

10
Thé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.

11
Dé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).

12
Conversion 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.
13
2) 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.
14
Conversion 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.
15
Exemple
  • 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

17
Son 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.
18
Exercice
  • 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
21
Exercice
  • 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 ??

23
Expressions 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.

24
Introduction
  • 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.

25
Introduction
  • 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.

26
Union de deux langages
  • Les langages sont des ensembles.
  • Lunion de deux langages (L1 et L2) est lunion
    de deux ensembles, notée L1 ? L2.

27
Exercices
  • 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

28
Théorème
  • Lunion de deux langages réguliers L1 et L2 est
    aussi un langage régulier.

29
Dé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.

31
F1 ? 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.

32
Exemple
  • 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.

36
Remarques 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).
37
Exercice
  • 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

40
Concaté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.

41
Exemple
  • Si L1 a, b et L2 c, ad alors L1 ? L2
    ac, aad, bc, bad

42
Exercices
  • 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

44
Exercices
  • 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.

45
Théorème
  • La concaténation de deux langages réguliers L1 et
    L2 est aussi un langage régulier.

46
Dé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.

49
Exemple
  • 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).

51
Donc le diagramme de transitions de M est
52
Exercice
  • 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

55
Fermeture 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.

56
Dé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.

57
Exemple
  • 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, ...

58
Exercices
  • É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 ?.

59
Théorème
  • La fermeture dun langage régulier L est un
    langage régulier.

60
Dé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.

62
Exemple
  • 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.
67
Exercice
  • 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 .

72
Expressions 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.

73
Dé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.

75
Remarque
  • 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.

76
Exercices
  • 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).

79
Dé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).

80
Dé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)).

81
Exemple
  • 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).

84
Remarque
  • 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 ?.

85
Exercices
  • 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)).

88
Remarque
  • Lexpression qui représente le langage
    élémentaire élémentaire ? est ?. En effet,
    L(?) (L(?)) ? ?.

89
Thé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 ?.

90
Dé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).

98
Par exemple, si T est le diagramme suivant
On obtient
99
Aprè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

102
A. 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)
105
iii. 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)
106
Enlever 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.
107
Exemple
  • 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.
108
Il 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.
109
Il 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)
110
Exercice
  • Donner une expression régulière qui représente le
    langage accepté par lautomate M suivant

111
Solution 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

113
Cas 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.
114
Traitons 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.

118
Cas 3a Un seul état final, deux transitions de
létat 1 vers létat 4.
119
Cas 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))).
Write a Comment
User Comments (0)
About PowerShow.com