INF 55 : Automates avancés L3 Informatique 2013 …Une expression régulière (ER) est une...

51
INF 55 : Automates avancés L3 Informatique 2013-2014 Mme SOGOBA Jacqueline KONATE Assistant à l'USTTB [email protected] Année 2013-2014

Transcript of INF 55 : Automates avancés L3 Informatique 2013 …Une expression régulière (ER) est une...

Page 1: INF 55 : Automates avancés L3 Informatique 2013 …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

INF 55 : Automates avancésL3 Informatique

2013-2014

Mme SOGOBA Jacqueline KONATEAssistant à l'USTTB

[email protected]

Année 2013-2014

Page 2: INF 55 : Automates avancés L3 Informatique 2013 …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

Chapitre 3 :Expressions régulières

et leurs propriétés

2

Page 3: INF 55 : Automates avancés L3 Informatique 2013 …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

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

Page 4: INF 55 : Automates avancés L3 Informatique 2013 …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

Expressions régulières

4

Page 5: INF 55 : Automates avancés L3 Informatique 2013 …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

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

Page 6: INF 55 : Automates avancés L3 Informatique 2013 …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

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

Page 7: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 8: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 9: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 10: INF 55 : Automates avancés L3 Informatique 2013 …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

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

10

Page 11: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 12: INF 55 : Automates avancés L3 Informatique 2013 …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

É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

Page 13: INF 55 : Automates avancés L3 Informatique 2013 …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

Passage d'une ER à un ε-AFND

13

Cas de base

Symbole a

ε

ε

a

Page 14: INF 55 : Automates avancés L3 Informatique 2013 …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

Passage d'une ER à un ε-AFND

14

Induction : cas de l'union

Pour E1∪E

2

ε ε

εε Pour E2

Pour E1

Pour E1∪E

2

Page 15: INF 55 : Automates avancés L3 Informatique 2013 …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

Passage d'une ER à un ε-AFND

15

Induction : cas de la concaténation

ε Pour E2

Pour E1

Pour E1E

2

Page 16: INF 55 : Automates avancés L3 Informatique 2013 …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

Passage d'une ER à un ε-AFND

16

Induction : cas de la fermeture de Kleene/étoile

Pour E*

ε

Pour E εε

ε

Page 17: INF 55 : Automates avancés L3 Informatique 2013 …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

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

17

Page 18: INF 55 : Automates avancés L3 Informatique 2013 …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

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

.

Page 19: INF 55 : Automates avancés L3 Informatique 2013 …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

Conversion d'un ADEF en ER

19

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

A

B

C

a b

cb

b

Page 20: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 21: INF 55 : Automates avancés L3 Informatique 2013 …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

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)

Page 22: INF 55 : Automates avancés L3 Informatique 2013 …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

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 + β

Page 23: INF 55 : Automates avancés L3 Informatique 2013 …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

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*

Page 24: INF 55 : Automates avancés L3 Informatique 2013 …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

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)).

Page 25: INF 55 : Automates avancés L3 Informatique 2013 …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

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

Page 26: INF 55 : Automates avancés L3 Informatique 2013 …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

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 = .∅ ∅

Page 27: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 28: INF 55 : Automates avancés L3 Informatique 2013 …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

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 ).

Page 29: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 30: INF 55 : Automates avancés L3 Informatique 2013 …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

Exemple d'automate pour la différence

30

A B

a

a, b

D

b a

b

aC

a

Page 31: INF 55 : Automates avancés L3 Informatique 2013 …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

Exemple d'automate pour la différence

31

A,C A,D

a

b

a

b

a

B,C

b

b

B,D

a

Page 32: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 33: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 34: INF 55 : Automates avancés L3 Informatique 2013 …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

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)*.

Page 35: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 36: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 37: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 38: INF 55 : Automates avancés L3 Informatique 2013 …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

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)*.

Page 39: INF 55 : Automates avancés L3 Informatique 2013 …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

Exemples : fermeture sous homomorphisme

39

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

Page 40: INF 55 : Automates avancés L3 Informatique 2013 …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

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}.

Page 41: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 42: INF 55 : Automates avancés L3 Informatique 2013 …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

Construction de l'Inverse de l'homomorphisme

42

A

B

C

a

b

b

ba

a

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

Page 43: INF 55 : Automates avancés L3 Informatique 2013 …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

Exemple : Inverse de l'homomorphisme

43

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

A

B

C

1

1

0, 1

0

0

Page 44: INF 55 : Automates avancés L3 Informatique 2013 …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

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

44

Page 45: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 46: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 47: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 48: INF 55 : Automates avancés L3 Informatique 2013 …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

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

Page 49: INF 55 : Automates avancés L3 Informatique 2013 …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

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

Page 50: INF 55 : Automates avancés L3 Informatique 2013 …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

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.

Page 51: INF 55 : Automates avancés L3 Informatique 2013 …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

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