inf 55 : automates avancés l3 informatique 2013 …une expression régulière (er) est une...

Post on 18-Jun-2020

12 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

INF 55 : Automates avancésL3 Informatique

2013-2014

Mme SOGOBA Jacqueline KONATEAssistant à l'USTTB

jacqueline.konate@gmail.com

Année 2013-2014

Chapitre 3 :Expressions régulières

et leurs propriétés

2

Expressions régulières (ER)et leurs propriétés

➢ Expressions régulières➢ Équivalence de modèles➢ Langages réguliers et propriétés de fermeture ➢ Langages non réguliers

3

Expressions régulières

4

Expression régulière

● Une expression régulière (ER) est une description algébrique d'un langage régulier.

● Très proche des AFND: utilisée comme alternative aux automates finis non-déterministes.

● Si E est une expression régulière, alors L(E) est le langage qu'il définit.

● Les expressions régulières se définissent de manière récursive.

5

6

1) Si a est un symbole, alors a est une expression régulière ER, et L(a) = {a}.

Il faut noter que {a} est le langage contenant unechaîne, et que cette chaîne est de longueur 1.

2) ε est une ER, et L(ε) = {ε}.3) ∅ est une ER, et L(∅) = .∅

Définition

Opérateurs

7

Propriété 1 : si E1 et E

2 sont des expressions régulières,

alors E1+E

2 est régulier, et L(E

1+E

2) = L(E

1)∪L(E

2).

union: l'ensemble des chaînes u tels que u est dans L(E1)

ou u est dans L(E2).

Propriété 2 : si E1 et E

2 sont des expressions régulières,

alors E1E

2 est régulier, et L(E

1E

2) = L(E

1)L(E

2).

Concaténation: l'ensemble des chaînes uv tel que u est dans L(E

1) et v est dans L(E

2).

Propriété 3 : Si E est une ER, alors E* est une ER et L(E*)=(L(E))*.Fermeture de Kleene: l'ensemble des chaînes u

1u

2...u

n ,

où chaque ui ∈L(E) avec 0≤i≤ n , n>0.

Priorité des opérateurs

8

1) L'ordre de priorité est : a) * (l'étoile de Kleene),b) . (la concaténation),c) + (l'union).

2) Les parenthèses peuvent être utilisées partout où il est nécessaire pour regrouper les opérandes.

Exemples

9

L(01) = {01}. L(01+0) = {01, 0}. L(0(1+0)) = {01, 00}.Noter l'ordre de priorité des opérateurs.

L(0*) = {ε, 0, 00, 000, ...}. L((0+10)*(ε+1)) = l'ensemble des u ∈{0,1}* tels qu'il n'y ait pas dans u deux 1 consécutifs.

Équivalence des expressions régulières avec les automates

10

Théorèmes

11

Théorème 1 : pour toute expression régulière ER, il existe un automate qui accepte le même langage.

Théorème 2 : pour tout automate, il existe une ER définissant son langage.

Équivalence des modèles

12

X Y : tout langage défini par la classe X est aussi défini par la classe Y

ER ADEF

AFNDε‑AFND

Passage d'une ER à un ε-AFND

13

Cas de base

Symbole a

ε

ε

a

Passage d'une ER à un ε-AFND

14

Induction : cas de l'union

Pour E1∪E

2

ε ε

εε Pour E2

Pour E1

Pour E1∪E

2

Passage d'une ER à un ε-AFND

15

Induction : cas de la concaténation

ε Pour E2

Pour E1

Pour E1E

2

Passage d'une ER à un ε-AFND

16

Induction : cas de la fermeture de Kleene/étoile

Pour E*

ε

Pour E εε

ε

Passage d'un ADEF à une expression régulière

17

Système d'équations associé à un ADEF

18

Soit A = (Q, ∑, q0, δ, F) un automate fini. Soit

SE(A) le système d’équations donné par: X

q = ∑

δ(q,a)=q′ aX

q' + (si q ∈F alors ε sinon )∅

Théorème : Soit A = (Q, ∑, q

0, δ, F) un

automate fini. Alors, L(A) = Lq0

.

Conversion d'un ADEF en ER

19

Soit Σ = {a, b, c} et A l’automate suivant:

A

B

C

a b

cb

b

Conversion d'un ADEF en ER

20

Le système d'équation suivant peut être associé à A :

XA = {a}.X

1 ∪ {b}.X

C

XC = {b}.X

C ∪ {c}.X

B ∪ {ε}

XB = {b}.X

A

où Xi est le mot accepté à partir de l'état i.

Conversion d'un ADEF en ER

21

En utilisant les expressions régulières, le système d'équations précédent peut s'écrire :

XA = a.X

A + b.X

C (1)

XC = b.X

C + c.X

B + ε (2)

XB = b.X

A (3)

Conversion d'un ADEF en ER

22

Résolution du système

(Lemme d’Arden) : Si ε ∉α alors α*β est la solution unique de l'équation suivante : X = αX + β

Conversion d'un ADEF en ER

23

Exemple de résolution

XA = a.X

A + b.X

C (1)

XC = b.X

C + c.X

B + ε (2)

XB = b.X

A (3)

On remplace XB dans (2) et on obtient :

XC = b.X

C + c.(b.X

A) + ε = b.X

c + cb.X

A + ε

On applique le lemme à l'équation (2) et on obtient:X

C = b*(cb.X

A + ε) = b*cb.X

A + b*

Conversion d'un ADEF en ER

24

On remplace XC dans l'équation (1) et on

obtient :X

A = a.X

A + b(b*cb.X

A + b*)

= (a + bb*cb).XA + b.b* = (a + b+cb).X

A + b+

On applique le lemme à l'équation (1) et on obtient:X

A = (a + b+cb)*b+

Le langage reconnu par l'automate (L(A)) est celui de l'expression régulière X

A (L(X

A)).

Langages réguliers et propriétés de fermeture

Eléments neutres et éléments absorbants

26

∅ est l'élément neutre pour l'union (+). R + = R.∅

ε est l'élément neutre pour la concaténation. εR = Rε = R.

∅ est l'élément absorbant pour la concaténation.

∅R = R = .∅ ∅

Propriétés de fermeture

27

Définition : Une propriété de fermeture déclare que certaines opérations sur des langages appartenant à une catégorie donnée produit des résultats (langages) qui appartiennent aussi à la même catégorie.

Pour les langages réguliers, il est possible de prouver une propriété de fermeture.

Propriétés de fermeture

28

Si R et S sont des expressions régulières dont les langages sont respectivement L et M, alors :

Union : L ∪ M est est régulier. Intersection : L ∩ M est aussi régulier. Concaténation : LM Étoile de Kleene : L* = L0 ∪ L1 ∪ … est aussi régulier. L* est le langage obtenu en réunissant tous Ln (n ≥ 0 ).

Fermeture sous différence

29

Si L et M sont des langages réguliers, alors L – M = {u ∈∑*/ u ∈L et u ∉M}.

Construction de l'automate différence : Soit C = A – B. La construction de C se fait ainsi :

Construire l'automate produit de A et B. Les états finals de C sont des couples d'états contenant des états finals de A et aucun état final de B.

Exemple d'automate pour la différence

30

A B

a

a, b

D

b a

b

aC

a

Exemple d'automate pour la différence

31

A,C A,D

a

b

a

b

a

B,C

b

b

B,D

a

Fermeture sous complémentation

32

Le complément d'un langage L ( avec un alphabet Σ tel que L ⊆ ∑*) est ∑* – L. Puisque ∑* est régulier, le complément d'un langage régulier est toujours régulier.

Fermeture sous miroir

33

Soit un langage L, LR est l'ensemble des mots dont le miroir appartient à L.

Exemple: L = {0, 01, 100}; LR = {0, 10, 001}.

Soit A un automate, pour construire son miroir, il faut :

Inverser le sens des flèches de transition, Transformer les états accepteurs en états initiaux,

Transformer les états initiaux en états accepteurs.

Miroir d'une ER

34

Cas de base: si E est un symbole : a, ε, ou , alors E∅ R = E.

Induction: si E est F+G, alors ER = FR + GR. FG, alors ER = GRFR

F*, alors ER = (FR)*.

Exemple : Miroir d'une ER

35

Soit E = 01* + 10*.

ER = (01* + 10*)R = (01*)R + (10*)R

= (1*)R0R + (0*)R1R

= (1R)*0 + (0R)*1= 1*0 + 0*1.

Homomorphismes

36

Un homomorphisme sur un alphabet est une fonction qui donne une chaîne pour chaque symbole de cet alphabet.

Exemple: h(0) = ab; h(1) = ε.

Cas des chaînes : h(a1...a

n) = h(a

1)...h(a

n).

Exemple: h(01010) = ababab.

Fermeture sous homomorphismes

37

Soient L un langage régulier et h un homomorphisme sur son alphabet, alors h(L) = {h(u) | u ∈L} est aussi un langage régulier.

Exemples

38

Soient h(0) = ab et h(1) = ε. Soit L le langage de l'expression régulière 01* + 10*.

Alors h(L) est le langage de l'expression régulière abε* + ε(ab)*.

abε* + ε(ab)* peut être simplifié ε* = ε, alors abε* = abε. ε est l'identité sous concaténation.

Ainsi εE = Eε = E pour toute ER E. D'où, abε* + ε(ab)* = abε + ε(ab)*

= ab + (ab)*.

Exemples : fermeture sous homomorphisme

39

Puisque L(ab) ⊆ L((ab)*), alors h(L) = (ab)*.

Inverse de l'homomorphisme

40

soit h un homomorphisme et L un langage dont l'alphabet est le langage résultant de h.h-1(L) = {u | h(u) ⊆ L}.

Exemple : Inverse de l'homomorphisme

41

Soient h(0) = ab et h(1) = ε. Soit L = {abab, baba}. h-1(L) = le langage avec deux 0 et un nombre quelconque de 1 = L(1*01*01*).

NB: aucune chaîne ne correspond à baba; toute chaîne avec exactement deux 0 correspond à abab.

Construction de l'Inverse de l'homomorphisme

42

A

B

C

a

b

b

ba

a

h(0) = ε h(1) = ab

Exemple : Inverse de l'homomorphisme

43

h(0) = ε h(1) = ab

A

B

C

1

1

0, 1

0

0

Langage non-régulier et lemme de l'itération

44

Langage non-régulier

45

Théorème (Lemme de l’itération/l'étoile, Pumping lemma)Il permet d’établir que de nombreux langages ne sont pas réguliers. Il donne une condition nécessaire pour qu'un langage soit régulier. Le raisonnement se fait par l'absurde.

Énoncé du lemme : soit L langage régulier. Alors∀u ∈L, ∃n ∈Ν (dépendant de L), |u| ≥ n, ∃x,y,z ∈∑* tels que u = xyz et 1. y ≠ ε. 2. |xy| ≤ n. 3. ∀k ∈Ν, xykz ∈L. k est la constance d'itération.

Langage non-régulier

46

Principe des tiroirs Soit un graphe de n nœuds. Un mot de longueur supérieur à n passe au moins deux fois par le même nœud.

Application à la théorie des automates :Soit u un mot de longueur m qui est reconnu par un automate dont le nombre d'états est n. Si m ≥ n alors, le calcul de l'automate sur le mot u passe nécessairement au moins deux fois par le même état.

Langage non-régulier

47

Preuve du théorème Soit L un langage régulier. Alors, il existe un automatedéterministe A = (Q, ∑, q

0, δ, F) tel que L(A) = L.

Soit n = |Q| et soit u = a1...

a

m ∈L tel que |u| = m ≥ n.

Soit pi = δ*(q

0, a

1, …, a

i ) pour i ≤ m. Alors, ∃ i et j

avec 0 ≤ i < j ≤ n tels que qi = qj . On pose x = a

1, …, a

i, y = a

i+1 ... a

j et z = a

j+1, …, a

m. Alors,

on a: 1. u = xyz . 2. |xy| ≤ n. 3. δ*(q

i , y) = q

j = q

i et donc δ*(q

i , yk ) = q

i , ∀ k ≥ 0.

Donc, xykz ∈L ∀k ≥ 0.

Lemme de l'étoile

48

Preuve

q0

qi

x = a1 … a

i

y = ai+1

… aj

z = aj+1

… am

Tout mot plus long que le nombre des états entraîne le passage à nouveau par un état

Exemple d'application du lemme

49

Soit L le langage sur l'alphabet ∑ = {a,b} tel que ∀u ∈ L, u = anbn, ∀n ≥ 0. Est-il régulier ?

Supposons L régulier. Alors, il existe un automate d'états finis A qui le reconnaît. Soit P le nombre d'états de A.

Soit k la constante d'itération de L. Soit v = akbk. Selon le lemme, ∃v = xyz tel que 1. y ≠ ε2. |xy| ≤ k (y n'est pas loin du début du mot)3. ∀k ∈Ν, xykz ∈L

Exemple d'application du lemme

50

Puisque |xy| ≤ k donc x et y sont composés uniquement de lettres a. Posons l = |y|, l ≥ 0. Donc xymz = a(k+(m-1)k) bk pour tout entier l ≥ 0. Puisque xymz ∈L,alors (k + l(m-1)) = k, ∀m ≥ 0 et donc l =|y|=0, ce qui est en contradiction avec l'hypothèse N°1. Donc L n'est pas régulier.

Bibliograbphie1- J. Hopcroft, R. Motwani, J. Ullman : « Introduction to AutomataTheory, Languages and Computation », 2nd edition,Addison-Wesley, 2001.2- Yassine Lakhnech : « Automates et langages ».3- Marie-Paule Muller : «LANGAGES - GRAMMAIRES - AUTOMATES », 2005.4- F. Barthélemy : «Notes de cours sur les automates », 2012.5- « Cours automates », Lycée Louis-Le-Grand, 2003 –2004.

51

top related