Cl^oture et lemme de l’ etoile - LISIC
Transcript of Cl^oture et lemme de l’ etoile - LISIC
Cloture etlemme de l’etoile
Systemes FormelsMaster 1 ISIDIS
Sebastien [email protected]
http://www-lisic.univ-littoral.fr/~verel
Universite du Littoral Cote d’OpaleLaboratoire LISICEquipe CAMOME
Introduction Cloture et langages rationnels Lemme de l’etoile
Objectifs de la seance 05
Connaitre les definitions de cloture
Savoir les proprietes de cloture des langages rationnels
Connaitre le lemme de l’etoile
Savoir que le langage {0n1n, n ∈ IN} n’est pas rationnel
Savoir demontrer qu’un langage n’est pas rationnel par lelemme de l’etoile
Savoir demontrer qu’un langage n’est pas rationnel enutilisant les proprietes de cloture
Reflexion principale du jour :
”- Je suis rationnel, je vous le repete !- Oui repetez-le que je verifie.”
Introduction Cloture et langages rationnels Lemme de l’etoile
Plan
1 Introduction
2 Cloture et langages rationnels
3 Lemme de l’etoile
Introduction Cloture et langages rationnels Lemme de l’etoile
Illustration de cloture
Supposons qu’il existe une operation (binaire) entre les elementsd’un ensemble E .
Exemple introductif
Addition sur l’ensemble des entiers pairs.
L’addition de deux entiers pairs, donne-t-il un entier pair ?
Lorsque l’operation laisse les elements dans le meme ensemble, ondit que l’ensemble est clos pour l’operation consideree
E
*
E
*
Clos Non Clos
Introduction Cloture et langages rationnels Lemme de l’etoile
Illustration de cloture
Supposons qu’il existe une operation (binaire) entre les elementsd’un ensemble E .
Exemple introductif
Addition sur l’ensemble des entiers pairs.
L’addition de deux entiers pairs, donne-t-il un entier pair ?
Lorsque l’operation laisse les elements dans le meme ensemble, ondit que l’ensemble est clos pour l’operation consideree
E
*
E
*
Clos Non Clos
Introduction Cloture et langages rationnels Lemme de l’etoile
Illustration de cloture
Contre-exemple introductif
Donner un exemple d’ensemble et d’operationtels que l’ensemble ne soit pas clos.
Introduction Cloture et langages rationnels Lemme de l’etoile
Interet de la cloture
La propriete de cloture est une propriete algebrique ”forte”.
Utilisation de cloture
Definir par composition :Au lieu de definir l’element E directement, on definit des”sous”-elements et l’operation pour obtenir E :
E = E1 op E2
Montrer qu’un element n’appartient pas a un ensemble :
E = E1 op E2
Si E1 ∈ L clos par op et que E 6∈ L alors E2 6∈ L
Definition une classe, exemple LR :”L’ensemble LR est le plus petit ensemble clos par union,
concatenation et etoile et qui contient le langage vide et les
langages reduits a un seul mot d’une lettre.”
Introduction Cloture et langages rationnels Lemme de l’etoile
Definition langage rationnel (rappel)
Langages rationnels (ou reguliers)
L’ensemble des langages rationnels LR est defini par :
base :
∅ ∈ LR{ε} ∈ LRpour tout a ∈ Σ, {a} ∈ LR.
induction : Si L ∈ LR et M ∈ LR alors :
L ∪M ∈ LRL.M ∈ LRL∗ ∈ LR.
Introduction Cloture et langages rationnels Lemme de l’etoile
Definition langage rationnel (rappel)
Langages rationnels (ou reguliers)
L’ensemble des langages rationnels LR est defini par :
base :
∅ ∈ LR{ε} ∈ LRpour tout a ∈ Σ, {a} ∈ LR.
induction : Si L ∈ LR et M ∈ LR alors :
L ∪M ∈ LRL.M ∈ LRL∗ ∈ LR.
Introduction Cloture et langages rationnels Lemme de l’etoile
Definition langage rationnel (rappel)
Langages rationnels (ou reguliers)
L’ensemble des langages rationnels LR est defini par :
base :
∅ ∈ LR{ε} ∈ LRpour tout a ∈ Σ, {a} ∈ LR.
induction : Si L ∈ LR et M ∈ LR alors :
L ∪M ∈ LRL.M ∈ LRL∗ ∈ LR.
Introduction Cloture et langages rationnels Lemme de l’etoile
Operations et cloture sur les langages rationnels
Resultat de cloture
L’ensemble LR des langages rationnels est clos :
par reunion,
par concatenation
par l’operation etoile ∗.
Introduction Cloture et langages rationnels Lemme de l’etoile
Definitions de cloture
Definition : cloture fonction unaire
Soient E un ensemble et une application f : E → F .E est clos par f (ou E est stable par f ) ssi ∀x ∈ E , f (x) ∈ E
Definition : cloture fonction binaire
Soient E un ensemble et une application f : E × E → F .E est clos par f ssi ∀(x , y) ∈ E 2, f (x , y) ∈ E
Introduction Cloture et langages rationnels Lemme de l’etoile
Interet de la cloture
La propriete de cloture est une propriete algebrique ”forte”.
Utilisation de cloture
Definir par composition :Au lieu de definir l’element E directement, on definit des”sous”-elements et l’operation pour obtenir E :
E = E1 op E2
Montrer qu’un element n’appartient pas a un ensemble :
E = E1 op E2
Si E1 ∈ L clos par op et que E 6∈ L alors E2 6∈ L
Definition une classe, exemple LR :”L’ensemble LR est le plus petit ensemble clos par union,
concatenation et etoile et qui contient le langage vide et les
langages reduits a un seul mot d’une lettre.”
Introduction Cloture et langages rationnels Lemme de l’etoile
Ensemble des Langages Rationnels :Clos par complementation
Complementaire d’un langage rationnel
L langage rationnel sur Σ⇒
L = Σ∗ \ L langage rationnel sur Σ
Demonstration :
L est un langage LR donc il existe un AFD (complet)
A = (Q,Σ,T , q0,F ) tel que L(A) = L
On construit l’automate C suivant :
C = (Q,Σ,T , q0,Q \ F )
Les etats finaux deviennent non-finaux et inversement.
Par construction, L(C ) = L
Introduction Cloture et langages rationnels Lemme de l’etoile
Exemple
cf. Exo 1 fiche 2 :
(a + b + c)∗b
1 2
a,c b
b
a,c
(a + b + c)∗(a + c)
1 2
a,c b
b
a,c
Introduction Cloture et langages rationnels Lemme de l’etoile
Ensemble des Langages Rationnels :Clos par intersection
Intersection de langages rationnels
L1 et L2 langages rationnels sur Σ⇒
L1 ∩ L2 langage rationnel sur Σ
Demonstration :Rappel ( ?) loi de De Morgan : L1 ∩ L2 = L1 ∪ L2
LR clos par complementation, donc L1 et L2 sont deslangages rationnels,
LR clos par union, donc L1 ∪ L2 est un langage rationnel,
LR clos par complementation, donc L1 ∪ L2 = L1 ∩ L2 est unlangage rationnel �
Introduction Cloture et langages rationnels Lemme de l’etoile
Construction (instructive) de l’intersection
L1 et L2 langages rationnels sur Σ et les AFD tels que :
A1 = (Q1,Σ,T1, q1,0,F1) tel que L(A1) = L1
A2 = (Q2,Σ,T2, q2,0,F2) tel que L(A2) = L2
Automate reconnaissant le langage intersection
On definit l’automate suivant :
C = (Q1 × Q2,Σ,TC , [q1,0, q2,0],F1 × F2)
avec pour tout couple [p, q] ∈ Q1 × Q2 et toute lettre σ ∈ Σ,
TC ([p, q], σ) = [T1(p, σ),T2(q, σ)]
Par construction, L(C ) = L1 ∩ L2.
Introduction Cloture et langages rationnels Lemme de l’etoile
Exemple
Exercice
A1 automate qui reconnait (a + b)∗ab(a + b)∗
A2 automate qui reconnait (a + b)∗aaPuis automate qui reconnait L(A1) ∩ L(A2)
Introduction Cloture et langages rationnels Lemme de l’etoile
Exemple
Exercice
A1 automate qui reconnait (a + b)∗ab(a + b)∗
A2 automate qui reconnait (a + b)∗aaPuis automate qui reconnait L(A1) ∩ L(A2)
1 2 3a b
a a,bb
12
3a
ba
b
a
b
Introduction Cloture et langages rationnels Lemme de l’etoile
Exemple
Exercice
A1 automate qui reconnait (a + b)∗ab(a + b)∗
A2 automate qui reconnait (a + b)∗aaPuis automate qui reconnait L(A1) ∩ L(A2)
1 2 3a b
a a,bb
12
3a
b
a
b
a
b
a
bb
b
b
b
b
b
bb
aa
aa
aa
a
a
Introduction Cloture et langages rationnels Lemme de l’etoile
Une reflexion
Pour montrer qu’un langage est rationnel :
On peut construire l’automate fini le reconnaissant
On peut definir l’expression reguliere equivalente
On peut decomposer le langage comme une union,intersection, etc. de langages rationnels.
Comment prouver qu’un langage est non-rationnel ?
On peut utiliser le lemme (theoreme) de l’etoile...
Au fait, pourquoi il existe des langages non-rationnel ?...
Introduction Cloture et langages rationnels Lemme de l’etoile
Une reflexion
Pour montrer qu’un langage est rationnel :
On peut construire l’automate fini le reconnaissant
On peut definir l’expression reguliere equivalente
On peut decomposer le langage comme une union,intersection, etc. de langages rationnels.
Comment prouver qu’un langage est non-rationnel ?
On peut utiliser le lemme (theoreme) de l’etoile...
Au fait, pourquoi il existe des langages non-rationnel ?...
Introduction Cloture et langages rationnels Lemme de l’etoile
Une reflexion
Pour montrer qu’un langage est rationnel :
On peut construire l’automate fini le reconnaissant
On peut definir l’expression reguliere equivalente
On peut decomposer le langage comme une union,intersection, etc. de langages rationnels.
Comment prouver qu’un langage est non-rationnel ?
On peut utiliser le lemme (theoreme) de l’etoile...
Au fait, pourquoi il existe des langages non-rationnel ?...
Introduction Cloture et langages rationnels Lemme de l’etoile
Une reflexion
Pour montrer qu’un langage est rationnel :
On peut construire l’automate fini le reconnaissant
On peut definir l’expression reguliere equivalente
On peut decomposer le langage comme une union,intersection, etc. de langages rationnels.
Comment prouver qu’un langage est non-rationnel ?
On peut utiliser le lemme (theoreme) de l’etoile...
Au fait, pourquoi il existe des langages non-rationnel ?...
Introduction Cloture et langages rationnels Lemme de l’etoile
Intuition du theoreme
L langage rationnel reconnu par un automate comportant n etats.
Lors de la lecture d’un mot de longueur m ≥ n, l’execution del’automate passe deux fois par le meme etat.
a1 a2 a6 a7
a3
a4
a5
si u = a1a2(a3a4a5)a6a7 ∈ L et |u| ≥ n alors a1a2(a3a4a5)∗a6a7 ∈ L
Enonce intuitif
”Quand un mot w a un facteur v de longueur plus grande que lenombre d’etats de l’automate, la lecture de v boucle forcementquelque part.”
Introduction Cloture et langages rationnels Lemme de l’etoile
Enonce
Theoreme de l’etoile
Si L un langage rationnel, alors il existe un entier n ≥ 1 tel que :
pour tout mot w de L de longueur ≥ n,
pour toute factorisation de w en xvy avec v facteur delongueur ≥ n,
il existe des mots r , s et t tels que :
(i) 0 < |s| ≤ n(ii) ∀i ≥ 0, xrs i ty ∈ L
Introduction Cloture et langages rationnels Lemme de l’etoile
Demonstration
A = (Q,Σ,T , q0,F ) automate fini deterministe a n etats telque L(A) = L.
Soit un mot w = xvy de L avec |v | ≥ n : w = a1a2 . . . a|w |Notons que T ∗(q0, a1a2 . . . a|w |) ∈ F
La lecture de w passe forcement 2 fois par un meme etatq ∈ Q
Il existe 2 indices de lettre j et k avec j < k , |x | < j ≤ |xv |,|x | < k ≤ |xv | tels que :
q = T ∗(q0, a1a2 . . . aj) = T ∗(q0, a1a2 . . . ak)
Posons :xr = a1a2 . . . ajs = aj+1a2 . . . akty = ak+1a2 . . . a|w |
Alors pour tout i ≥ 0, xrs i ty ∈ L
j < k donc |s| > 0. En prenant j et k minimaux, |s| ≤ n
Introduction Cloture et langages rationnels Lemme de l’etoile
Mister Big example (a retenir par tous les moyens !)
Le langage L = {0n1n | n ≥ 0} n’est pas rationnel.
Demonstration :
Supposons L rationnel.
Alors L verifie le theoreme de l’etoile et il existe n ≥ 1verifiant les conditions du theoreme.
Soit le w = 0n1n ∈ L de longueur 2n > n.
Soit la factorisation w = xvy avec x = ε, v = 0n et y = 1n.Notons que |v | ≥ n.
Montrons que pour toute factorisation de v = rst avec0 < |s| ≤ n, il existe un entier i ≥ 0 tels xrs i ty 6∈ L.
r = 0k , s = 0k′et t = 0k′′
avec k + k ′ + k ′′ = n et k ′ > 0.Pour i = 0, xrty = 0k+k′′
1n 6∈ L car k + k ′′ < n
Contradiction avec le resultat du theoreme,donc L n’est pas un langage rationnel.
Introduction Cloture et langages rationnels Lemme de l’etoile
Mister Big example (a retenir par tous les moyens !)
Le langage L = {0n1n | n ≥ 0} n’est pas rationnel.
Demonstration :
Supposons L rationnel.
Alors L verifie le theoreme de l’etoile et il existe n ≥ 1verifiant les conditions du theoreme.
Soit le w = 0n1n ∈ L de longueur 2n > n.
Soit la factorisation w = xvy avec x = ε, v = 0n et y = 1n.Notons que |v | ≥ n.
Montrons que pour toute factorisation de v = rst avec0 < |s| ≤ n, il existe un entier i ≥ 0 tels xrs i ty 6∈ L.
r = 0k , s = 0k′et t = 0k′′
avec k + k ′ + k ′′ = n et k ′ > 0.Pour i = 0, xrty = 0k+k′′
1n 6∈ L car k + k ′′ < n
Contradiction avec le resultat du theoreme,donc L n’est pas un langage rationnel.
Introduction Cloture et langages rationnels Lemme de l’etoile
Une derniere reflexion
Finalement
Le lemme de l’etoile formalise le faitqu’un automate possede une memoire de taille finie.
Avec un automate fini,il n’est pas possible d’enregistrer (de distinguer)
une infinite de prefixes.
Introduction Cloture et langages rationnels Lemme de l’etoile
Objectifs de la seance 06
Connaitre les definitions de cloture
Savoir les proprietes de cloture des langages rationnels
Connaitre le lemme de l’etoile
Savoir que le langage {0n1n, n ∈ IN} n’est pas rationnel
Savoir demontrer qu’un langage n’est pas rationnel par lelemme de l’etoile ou en utilisant la cloture
Reflexion principale du jour :
”- Je suis rationnel, je vous le repete !- Oui repetez-le que je verifie.”