INF 55 : Automates avancés L3 Informatique 2013-2014 Mme SOGOBA Jacqueline KONATE Assistant à l'USTTB [email protected] Année 2013-2014
INF 55 : Automates avancésL3 Informatique
2013-2014
Mme SOGOBA Jacqueline KONATEAssistant à l'USTTB
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