Clôture et lemme de l`étoile - LISIC

Transcription

Clôture et lemme de l`étoile - LISIC
Clôture et
lemme de l’étoile
Systèmes Formels
Master 1 ISIDIS
Sébastien Verel
[email protected]
http://www-lisic.univ-littoral.fr/~verel
Université du Littoral Côte d’Opale
Laboratoire LISIC
Equipe CAMOME
Introduction
Clôture et langages rationnels
Lemme de l’étoile
Objectifs de la séance 05
Connaitre les définitions de clôture
Savoir les propriétés de clôture des langages rationnels
Connaitre le lemme de l’étoile
Savoir que le langage {0n 1n , n ∈ IN} n’est pas rationnel
Savoir démontrer qu’un langage n’est pas rationnel par le
lemme de l’étoile
Savoir démontrer qu’un langage n’est pas rationnel en
utilisant les propriétés de clôture
Réflexion principale du jour :
”- Je suis rationnel, je vous le répète !
- Oui répétez-le que je vérifie.”
Introduction
Clôture et langages rationnels
Plan
1
Introduction
2
Clôture et langages rationnels
3
Lemme de l’étoile
Lemme de l’étoile
Introduction
Clôture et langages rationnels
Lemme de l’étoile
Illustration de clôture
Supposons qu’il existe une opération (binaire) entre les éléments
d’un ensemble E .
Exemple introductif
Addition sur l’ensemble des entiers pairs.
L’addition de deux entiers pairs, donne-t-il un entier pair ?
Introduction
Clôture et langages rationnels
Lemme de l’étoile
Illustration de clôture
Supposons qu’il existe une opération (binaire) entre les éléments
d’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’opération laisse les éléments dans le même ensemble, on
dit que l’ensemble est clos pour l’opération considérée
E
E
*
Clos
*
Non Clos
Introduction
Clôture et langages rationnels
Illustration de clôture
Contre-exemple introductif
Donner un exemple d’ensemble et d’opération
tels que l’ensemble ne soit pas clos.
Lemme de l’étoile
Introduction
Clôture et langages rationnels
Lemme de l’étoile
Intérêt de la clôture
La propriété de clôture est une propriété algébrique ”forte”.
Utilisation de clôture
Définir par composition :
Au lieu de définir l’élément E directement, on définit des
”sous”-éléments et l’opération pour obtenir E :
E = E1 op E2
Montrer qu’un élément n’appartient pas à un ensemble :
E = E1 op E2
Si E1 ∈ L clos par op et que E 6∈ L alors E2 6∈ L
Définition une classe, exemple LR :
”L’ensemble LR est le plus petit ensemble clos par union,
concaténation et étoile et qui contient le langage vide et les
langages réduits à un seul mot d’une lettre.”
Introduction
Clôture et langages rationnels
Définition langage rationnel (rappel)
Langages rationnels (ou réguliers)
L’ensemble des langages rationnels LR est défini par :
Lemme de l’étoile
Introduction
Clôture et langages rationnels
Définition langage rationnel (rappel)
Langages rationnels (ou réguliers)
L’ensemble des langages rationnels LR est défini par :
base :
∅ ∈ LR
{} ∈ LR
pour tout a ∈ Σ, {a} ∈ LR.
Lemme de l’étoile
Introduction
Clôture et langages rationnels
Définition langage rationnel (rappel)
Langages rationnels (ou réguliers)
L’ensemble des langages rationnels LR est défini par :
base :
∅ ∈ LR
{} ∈ LR
pour tout a ∈ Σ, {a} ∈ LR.
induction : Si L ∈ LR et M ∈ LR alors :
L ∪ M ∈ LR
L.M ∈ LR
L∗ ∈ LR.
Lemme de l’étoile
Introduction
Clôture et langages rationnels
Opérations et clôture sur les langages rationnels
Résultat de clôture
L’ensemble LR des langages rationnels est clos :
par réunion,
par concaténation
par l’opération étoile ∗.
Lemme de l’étoile
Introduction
Clôture et langages rationnels
Lemme de l’étoile
Définitions de clôture
Définition : clôture 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
Définition : clôture 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
Clôture et langages rationnels
Lemme de l’étoile
Intérêt de la clôture
La propriété de clôture est une propriété algébrique ”forte”.
Utilisation de clôture
Définir par composition :
Au lieu de définir l’élément E directement, on définit des
”sous”-éléments et l’opération pour obtenir E :
E = E1 op E2
Montrer qu’un élément n’appartient pas à un ensemble :
E = E1 op E2
Si E1 ∈ L clos par op et que E 6∈ L alors E2 6∈ L
Définition une classe, exemple LR :
”L’ensemble LR est le plus petit ensemble clos par union,
concaténation et étoile et qui contient le langage vide et les
langages réduits à un seul mot d’une lettre.”
Introduction
Clôture et langages rationnels
Ensemble des Langages Rationnels :
Clos par complémentation
Complémentaire d’un langage rationnel
L langage rationnel sur Σ
⇒
∗
L̄ = Σ \ L langage rationnel sur Σ
Démonstration :
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 états finaux deviennent non-finaux et inversement.
Par construction, L(C ) = L̄
Lemme de l’étoile
Introduction
Clôture et langages rationnels
Lemme de l’étoile
Exemple
cf. Exo 1 fiche 2 :
(a + b + c)∗ b
a,c
b
b
1
2
a,c
(a + b + c)∗ (a + c)
a,c
1
b
b
2
a,c
Introduction
Clôture et langages rationnels
Lemme de l’étoile
Ensemble des Langages Rationnels :
Clos par intersection
Intersection de langages rationnels
L1 et L2 langages rationnels sur Σ
⇒
L1 ∩ L2 langage rationnel sur Σ
Démonstration :
Rappel ( ?) loi de De Morgan : L1 ∩ L2 = L1 ∪ L2
LR clos par complémentation, donc L1 et L2 sont des
langages rationnels,
LR clos par union, donc L1 ∪ L2 est un langage rationnel,
LR clos par complémentation, donc L1 ∪ L2 = L1 ∩ L2 est un
langage rationnel Introduction
Clôture et langages rationnels
Lemme de l’étoile
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 définit 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
Clôture et langages rationnels
Exemple
Exercice
A1 automate qui reconnait (a + b)∗ ab(a + b)∗
A2 automate qui reconnait (a + b)∗ aa
Puis automate qui reconnait L(A1 ) ∩ L(A2 )
Lemme de l’étoile
Introduction
Clôture et langages rationnels
Lemme de l’étoile
Exemple
Exercice
A1 automate qui reconnait (a + b)∗ ab(a + b)∗
A2 automate qui reconnait (a + b)∗ aa
Puis automate qui reconnait L(A1 ) ∩ L(A2 )
1
1
b
a
b
2
a
b
3
a
a,b
a
b
a
2
b
3
Introduction
Clôture et langages rationnels
Lemme de l’étoile
Exemple
Exercice
A1 automate qui reconnait (a + b)∗ ab(a + b)∗
A2 automate qui reconnait (a + b)∗ aa
Puis automate qui reconnait L(A1 ) ∩ L(A2 )
a
1
b
2
b
3
b
b
1
b
a,b
a
b
a
a
a
a
b
b
b
b
2
a
a
a
a
b
3
a
a
b
b
a
a
b
Introduction
Clôture et langages rationnels
Une réflexion
Pour montrer qu’un langage est rationnel :
On peut construire l’automate fini le reconnaissant
On peut définir l’expression régulière équivalente
On peut décomposer le langage comme une union,
intersection, etc. de langages rationnels.
Lemme de l’étoile
Introduction
Clôture et langages rationnels
Une réflexion
Pour montrer qu’un langage est rationnel :
On peut construire l’automate fini le reconnaissant
On peut définir l’expression régulière équivalente
On peut décomposer le langage comme une union,
intersection, etc. de langages rationnels.
Comment prouver qu’un langage est non-rationnel ?
Lemme de l’étoile
Introduction
Clôture et langages rationnels
Une réflexion
Pour montrer qu’un langage est rationnel :
On peut construire l’automate fini le reconnaissant
On peut définir l’expression régulière équivalente
On peut décomposer le langage comme une union,
intersection, etc. de langages rationnels.
Comment prouver qu’un langage est non-rationnel ?
On peut utiliser le lemme (théorème) de l’étoile...
Lemme de l’étoile
Introduction
Clôture et langages rationnels
Une réflexion
Pour montrer qu’un langage est rationnel :
On peut construire l’automate fini le reconnaissant
On peut définir l’expression régulière équivalente
On peut décomposer le langage comme une union,
intersection, etc. de langages rationnels.
Comment prouver qu’un langage est non-rationnel ?
On peut utiliser le lemme (théorème) de l’étoile...
Au fait, pourquoi il existe des langages non-rationnel ?...
Lemme de l’étoile
Introduction
Clôture et langages rationnels
Lemme de l’étoile
Intuition du théorème
L langage rationnel reconnu par un automate comportant n états.
Lors de la lecture d’un mot de longueur m ≥ n, l’exécution de
l’automate passe deux fois par le même état.
a4
a5
a1
a2
a3
a6
a7
si u = a1 a2 (a3 a4 a5 )a6 a7 ∈ L et |u| ≥ n alors a1 a2 (a3 a4 a5 )∗ a6 a7 ∈ L
Enoncé intuitif
”Quand un mot w a un facteur v de longueur plus grande que le
nombre d’états de l’automate, la lecture de v boucle forcement
quelque part.”
Introduction
Clôture et langages rationnels
Lemme de l’étoile
Enoncé
Théorème de l’étoile
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 de
longueur ≥ n,
il existe des mots r , s et t tels que :
(i) 0 < |s| ≤ n
(ii) ∀i ≥ 0, xrs i ty ∈ L
Introduction
Clôture et langages rationnels
Lemme de l’étoile
Démonstration
A = (Q, Σ, T , q0 , F ) automate fini déterministe à n états tel
que L(A) = L.
Soit un mot w = xvy de L avec |v | ≥ n : w = a1 a2 . . . a|w |
Notons que T ∗ (q0 , a1 a2 . . . a|w | ) ∈ F
La lecture de w passe forcement 2 fois par un même état
q∈Q
Il existe 2 indices de lettre j et k avec j < k, |x| < j ≤ |xv |,
|x| < k ≤ |xv | tels que :
q = T ∗ (q0 , a1 a2 . . . aj ) = T ∗ (q0 , a1 a2 . . . ak )
Posons :
xr = a1 a2 . . . aj
s = aj+1 a2 . . . ak
ty = ak+1 a2 . . . 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
Clôture et langages rationnels
Lemme de l’étoile
Mister Big example (à retenir par tous les moyens !)
Le langage L = {0n 1n | n ≥ 0} n’est pas rationnel.
Introduction
Clôture et langages rationnels
Lemme de l’étoile
Mister Big example (à retenir par tous les moyens !)
Le langage L = {0n 1n | n ≥ 0} n’est pas rationnel.
Démonstration :
Supposons L rationnel.
Alors L vérifie le théorème de l’étoile et il existe n ≥ 1
vérifiant les conditions du théorème.
Soit le w = 0n 1n ∈ 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 avec
0 < |s| ≤ n, il existe un entier i ≥ 0 tels xrs i ty 6∈ L.
0
00
r = 0k , s = 0k et t = 0k avec k + k 0 + k 00 = n et k 0 > 0.
00
Pour i = 0, xrty = 0k+k 1n 6∈ L car k + k 00 < n
Contradiction avec le résultat du théorème,
donc L n’est pas un langage rationnel.
Introduction
Clôture et langages rationnels
Une dernière réflexion
Finalement
Le lemme de l’étoile formalise le fait
qu’un automate possède une mémoire de taille finie.
Avec un automate fini,
il n’est pas possible d’enregistrer (de distinguer)
une infinité de préfixes.
Lemme de l’étoile
Introduction
Clôture et langages rationnels
Lemme de l’étoile
Objectifs de la séance 06
Connaitre les définitions de clôture
Savoir les propriétés de clôture des langages rationnels
Connaitre le lemme de l’étoile
Savoir que le langage {0n 1n , n ∈ IN} n’est pas rationnel
Savoir démontrer qu’un langage n’est pas rationnel par le
lemme de l’étoile ou en utilisant la clôture
Réflexion principale du jour :
”- Je suis rationnel, je vous le répète !
- Oui répétez-le que je vérifie.”