Alphabets et Langages Elise Bonzon http://web.mi.parisdescartes.fr/ bonzon/ elise.bonzon@parisdescartes.fr 1 / 29
Alphabets et langages Alphabets Opérations sur les mots Monoïde Langages 2 / 29
Alphabets et langages Alphabets Opérations sur les mots Monoïde Langages 3 / 29
Alphabet Alphabet Un alphabet est un ensemble fini de symboles. Exemples : A = {0, 1} Σ = {a, b, c} Θ = {if, then, else, a, b} F = {,,, } 4 / 29
Mot Mot Un mot sur l alphabet X est une séquence finie et ordonnée, éventuellement vide, d éléments de l alphabet. C est une concaténation de lettres. Par exemple, abbac et ba sont deux mots de l alphabet {a, b, c}. 5 / 29
Mot Mot Un mot sur l alphabet X est une séquence finie et ordonnée, éventuellement vide, d éléments de l alphabet. C est une concaténation de lettres. Par exemple, abbac et ba sont deux mots de l alphabet {a, b, c}. Mot vide Le mot vide, noté ɛ, correspond à la suite de symboles vide. 5 / 29
Longueur d un mot Longueur d un mot La longueur d un mot w est le nombre de symboles constituant ce mot. On la note w. Le mot vide est de longueur 0. Par exemple, abbac = 5, ba = 2 et ɛ = 0. 6 / 29
Longueur d un mot Longueur d un mot La longueur d un mot w est le nombre de symboles constituant ce mot. On la note w. Le mot vide est de longueur 0. Par exemple, abbac = 5, ba = 2 et ɛ = 0. Ensemble de mots L ensemble de mots sur un alphabet X est noté X (fermeture transitive). Par exemple, si X = {a, b, c}, X = {ɛ, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab,...} 6 / 29
Notations Soit w X w est la longueur de w X est l alphabet x est une lettre de X w x est le nombre d occurences de x dans w. Exemple, avec X = {a, b} abb a = 1 abb b = 2 7 / 29
Alphabets et langages Alphabets Opérations sur les mots Monoïde Langages 8 / 29
Concaténation (produit) Concaténation (produit) de lettres Soit un alphabet X et w 1, w 2 X tels que w 1 = x 1 x 2 x 3... x n i {1,..., n}, x i X w 2 = y 1 y 2 y 3... y p i {1,..., p}, y i X w 1 et w 2 sont des concaténation de lettres (mots). Concaténation (produit) de mots Soit un alphabet X et w 1, w 2 X des concaténation de lettres. Alors w tel que : w = w 1.w 2 = x 1 x 2 x 3... x n y 1 y 2 y 3... y p est une concaténation de mots. 9 / 29
Concaténation (produit) Propriétés Le produit est associatif w 1, w 2, w 3 X, w 1.(w 2.w 3) = (w 1.w 2).w 3 = w 1.w 2.w 3 ɛ est l élément neutre du produit w, z X, w.z = w + z Le produit n est pas commutatif w X, ɛ.w = w.ɛ = w 10 / 29
Puissance Puissance Soit un alphabet X et w X. { w n ɛ si n = 0 = w.w n 1 si n > 0 11 / 29
Puissance Puissance Soit un alphabet X et w X. { w n ɛ si n = 0 = w.w n 1 si n > 0 Par exemple, soit X = {a, b} et w = abb w 0 = ɛ w 1 = abb w 2 = w.w = abbabb w 3 = w.w 2 = abbabbabb 11 / 29
Egalité Egalité de deux mots Deux mots sont égaux s ils sont de même longueur et s ils ont des lettres identiques de positionnements identiques. Soit un alphabet X et w 1, w 2 X tels que w 1 = x 1 x 2 x 3... x n i {1,..., n}, x i X w 2 = y 1 y 2 y 3... y p i {1,..., p}, y i X On a w 1 = w 2 si et seulement si p = n et i [1, n], x i = y i. 12 / 29
Préfixe et suffixe Préfixe, suffixe Soit un alphabet X et w, u X. u est un préfixe de w si et seulement si v X tel que w = u.v 13 / 29
Préfixe et suffixe Préfixe, suffixe Soit un alphabet X et w, u X. u est un préfixe de w si et seulement si v X tel que w = u.v u est un suffixe de w si et seulement si v X tel que w = v.u 13 / 29
Préfixe et suffixe Préfixe, suffixe Soit un alphabet X et w, u X. u est un préfixe de w si et seulement si v X tel que w = u.v u est un suffixe de w si et seulement si v X tel que w = v.u Soit X = {a, b}, w = babb Les préfixes de w sont ɛ, b, ba, bab, babb Les suffixes de w sont ɛ, b, bb, abb, babb 13 / 29
Préfixe et suffixe propres Préfixe et suffixe propres Soit un alphabet X et w, u X. u est un préfixe propre de w si et seulement si u est un préfixe de w et u est différent de w. u est un suffixe propre de w si et seulement si u est un suffixe de w et u est différent de w. 14 / 29
Préfixe et suffixe propres Préfixe et suffixe propres Soit un alphabet X et w, u X. u est un préfixe propre de w si et seulement si u est un préfixe de w et u est différent de w. u est un suffixe propre de w si et seulement si u est un suffixe de w et u est différent de w. Soit X = {a, b}, w = babb Les préfixes propres de w sont ɛ, b, ba, bab Les suffixes propres de w sont ɛ, b, bb, abb 14 / 29
Miroir d un mot Miroir d un mot Soit un alphabet X et w X tel que w = x 1 x 2 x 3... x n, avec i {1,..., n}, x i X. Le miroir de w, noté w, est défini par w = x n x n 1... x 2 x 1 15 / 29
Miroir d un mot Miroir d un mot Soit un alphabet X et w X tel que w = x 1 x 2 x 3... x n, avec i {1,..., n}, x i X. Le miroir de w, noté w, est défini par w = x n x n 1... x 2 x 1 Définition récursive : { w si w = ɛ w = ũ.a si w = a.u, avec a X 15 / 29
Alphabets et langages Alphabets Opérations sur les mots Monoïde Langages 16 / 29
Monoïde Monoïde Un ensemble E muni d une opération interne associative (notée.) et possédant un élément neutre est un monoïde, noté M = E,.. 17 / 29
Monoïde Monoïde Un ensemble E muni d une opération interne associative (notée.) et possédant un élément neutre est un monoïde, noté M = E,.. Exemples : IN, + IN, X,. : l ensemble des mots sur l alphabet X muni de l opération de produit est un monoïde. 17 / 29
Sous-monoïde Sous-monoïde Soit M = E,. un monoïde. M est un sous-monoïde de M si M = E,., avec E E, est un monoïde pour la même loi de composition interne et le même élément neutre. 18 / 29
Sous-monoïde Sous-monoïde Soit M = E,. un monoïde. M est un sous-monoïde de M si M = E,., avec E E, est un monoïde pour la même loi de composition interne et le même élément neutre. Pour montrer que M est un sous-monoïde de M, il suffit de montrer que 1. l élément neutre de M appartient à M 2. la loi de composition interne est stable pour E : x, y E, x.y E 18 / 29
Monoïde libre Ensemble de générateurs Soit M = E,. un monoïde. Un ensemble de générateurs de M est un sous ensemble E 1, avec E 1 E, tel que tout élément de E, sauf l élément neutre, est exprimable à l aide d une composition de E 1. 19 / 29
Monoïde libre Ensemble de générateurs Soit M = E,. un monoïde. Un ensemble de générateurs de M est un sous ensemble E 1, avec E 1 E, tel que tout élément de E, sauf l élément neutre, est exprimable à l aide d une composition de E 1. Exemple : {1} est un générateur de IN, + Tout entier peut être exprimé comme une somme de 1 L ensemble des nombres premiers est un générateur de IN, Tout entier peut être exprimé comme un produit de nombre premiers 19 / 29
Monoïde libre Ensemble de générateurs indépendants Soit M = E,. un monoïde. Un ensemble de générateurs indépendants de M est un ensemble de générateurs tels que tout élément de E sauf l élément neutre est exprimable d une et d une seule façon sous forme d une composition de générateurs. 20 / 29
Monoïde libre Ensemble de générateurs indépendants Soit M = E,. un monoïde. Un ensemble de générateurs indépendants de M est un ensemble de générateurs tels que tout élément de E sauf l élément neutre est exprimable d une et d une seule façon sous forme d une composition de générateurs. Exemple : {1} est un générateur indépendant de IN, + Tout entier peut être exprimé d une et d une seule façon comme une somme de 1 L ensemble des nombres premiers n est pas un générateur indépendant de IN, Tout entier peut être exprimé comme un produit de nombre premiers, mais il y a plusieurs décompositions possibles. Par exemple, 12 = 2 3 2 = 2 2 3. 20 / 29
Monoïde libre Monoïde libre Un monoïde possédant un ensemble de générateurs indépendants X sera dit libre et sera noté X. 21 / 29
Monoïde libre Monoïde libre Un monoïde possédant un ensemble de générateurs indépendants X sera dit libre et sera noté X. Soit X un alphabet. Le monoïde X,. est un monoïde libre. 21 / 29
Alphabets et langages Alphabets Opérations sur les mots Monoïde Langages 22 / 29
Langage Langage Un langage sur un alphabet X est une partie de X. C est donc un ensemble de mots. L X où L P(X ) 23 / 29
Langage Langage Un langage sur un alphabet X est une partie de X. C est donc un ensemble de mots. L X où L P(X ) Soit X = {a, b} un alphabet. est un langage {ɛ} est un langage {a, ba, bba} est un langage {w X w = a n, n IN} est un langage 23 / 29
Opérations sur les langages Union : A, B X, A B = {w X w A ou w B} Associative Commutative Elément neutre : ensemble vide Notée + dans la théorie des langages Intersection : A, B X, A B = {w X w A et w B} Associative Commutative Elément neutre X Différence : A, B X, A \ B = {w X w A et w B} Complémentaire : A X, A = X \ A = {w X w A} 24 / 29
Opérations sur les langages Egalité de langages Deux langages A, B X sont égaux, noté A = B, si et seulement si A B et B A. 25 / 29
Opérations sur les langages Egalité de langages Deux langages A, B X sont égaux, noté A = B, si et seulement si A B et B A. Produit de langages Soit deux langages A, B X. Le produit de A et B est noté A B = {u.v u A et v B}. 25 / 29
Opérations sur les langages Attention! produit de langages. produit de mots Par la suite, nous les noterons de la même façon, le contexte fera la différence. 26 / 29
Opérations sur les langages Attention! produit de langages. produit de mots Par la suite, nous les noterons de la même façon, le contexte fera la différence. Soit un alphabet X = {a, b}, un langage A = {ɛ, a, ab} et un langage B = {b, ba}. A B = A.B = AB = {b, ba, ab, aba, abb, abba} B A = B.A = BA = {b, ba, bab, ba, baa, baab} = {b, bab, ba, baa, baab} AB BA 26 / 29
Opérations sur les langages Théorème Le produit de langages est distributif par rapport à l union. A, B, C X A.(B C) = (A.B) (A.C) (B C).A = (B.A) (C.A) 27 / 29
Théorème Alphabets et langages Opérations sur les langages Le produit de langages est distributif par rapport à l union. A, B, C X A.(B C) = (A.B) (A.C) (B C).A = (B.A) (C.A) Ce théorème reste vrai pour des unions infinies A, B i X A.( i=1 B i) = i=1 (A.B i) ( i=1 B i).a = i=1 (B i.a) 27 / 29
Théorème Alphabets et langages Opérations sur les langages Le produit de langages est distributif par rapport à l union. A, B, C X A.(B C) = (A.B) (A.C) (B C).A = (B.A) (C.A) Ce théorème reste vrai pour des unions infinies A, B i X A.( i=1 B i) = i=1 (A.B i) ( i=1 B i).a = i=1 (B i.a) Attention! Le produit de langages n est pas distributif par rapport à l intersection. A, B, C X, A.(B C) (A.B) (A.C) 27 / 29
Opérations sur les langages Fermeture de Kleene Soit A X. On note A = i=0 Ai l opération étoile (ou fermeture par étoile, ou fermeture de Kleene, ou fermeture itérative) du langage A. Note : Comme A 0 = {ɛ}, on a toujours ɛ A 28 / 29
Opérations sur les langages Fermeture de Kleene Soit A X. On note A = i=0 Ai l opération étoile (ou fermeture par étoile, ou fermeture de Kleene, ou fermeture itérative) du langage A. Note : Comme A 0 = {ɛ}, on a toujours ɛ A Fermeture positive Soit A X. On note A + = i=1 Ai la fermeture positive du langage A. 28 / 29
Opérations sur les langages Fermeture de Kleene Soit A X. On note A = i=0 Ai l opération étoile (ou fermeture par étoile, ou fermeture de Kleene, ou fermeture itérative) du langage A. Note : Comme A 0 = {ɛ}, on a toujours ɛ A Fermeture positive Soit A X. On note A + = i=1 Ai la fermeture positive du langage A. Théorème Soit A X. On a A + = A.A = A.A 28 / 29
Opérations sur les langages Opération miroir Soit A X. On définit l opération miroir comme étant : A R = { w w A} 29 / 29
Opérations sur les langages Opération miroir Soit A X. On définit l opération miroir comme étant : A R = { w w A} Théorème Soit A, B X. On a (A.B) R = B R.A R 29 / 29