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