Alphabets
Elise Bonzon
http://web.mi.parisdescartes.fr/vbonzon/
elise.bonzon@parisdescartes.fr
Alphabets et langages
Alphabets
Opérations sur les mots
Monoı̈de
Langages
Alphabets et langages
Alphabets
Opérations sur les mots
Monoı̈de
Langages
Alphabet
Alphabet
Un alphabet est un ensemble fini de symboles.
Exemples :
A = {0, 1}
Σ = {a, b, c}
Θ = {if , then, else, a, b}
F = {→, ←, ↑, ↓}
Mot
Mot
Un mot sur l’alphabet X est une séquence finie et ordonnée, éventuelle-
ment 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
Mot
Un mot sur l’alphabet X est une séquence finie et ordonnée, éventuelle-
ment 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.
Ensemble de mots
L’ensemble de mots sur un alphabet X est noté X ∗ (fermeture tran-
sitive).
Par exemple, si X = {a, b, c},
X ∗ = {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, ...}
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
Alphabets et langages
Alphabets
Opérations sur les mots
Monoı̈de
Langages
Concaténation (produit)
w1 = x1 x2 x3 . . . xn ∀i ∈ {1, . . . , n}, xi ∈ X
w2 = y1 y2 y3 . . . yp ∀i ∈ {1, . . . , p}, yi ∈ X
w1 et w2 sont des concaténation de lettres (mots).
w = w1 .w2 = x1 x2 x3 . . . xn y1 y2 y3 . . . yp
Concaténation (produit)
Propriétés
Le produit est associatif
∀w ∈ X ∗ , .w = w . = w
∀w , z ∈ X ∗ , |w .z| = |w | + |z|
Le produit n’est pas commutatif
Puissance
Puissance
Soit un alphabet X et w ∈ X ∗ .
si n = 0
wn =
w .w n−1 si n > 0
Puissance
Puissance
Soit un alphabet X et w ∈ X ∗ .
si n = 0
wn =
w .w n−1 si n > 0
Egalité
w1 = x1 x2 x3 . . . xn ∀i ∈ {1, . . . , n}, xi ∈ X
w2 = y1 y2 y3 . . . yp ∀i ∈ {1, . . . , p}, yi ∈ X
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
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
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
w̃ = xn xn−1 . . . x2 x1
w̃ = xn xn−1 . . . x2 x1
Définition récursive :
w si w =
w̃ =
ũ.a si w = a.u, avec a ∈ X
Alphabets et langages
Alphabets
Opérations sur les mots
Monoı̈de
Langages
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 = hE , .i.
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 = hE , .i.
Exemples :
hIN, +i
hIN, ∗i
hX ∗ , .i : l’ensemble des mots sur l’alphabet X muni de l’opération de
produit est un monoı̈de.
Sous-monoı̈de
Sous-monoı̈de
Soit M = hE , .i un monoı̈de. M 0 est un sous-monoı̈de de M si M 0 =
hE 0 , .i, avec E 0 ⊆ E , est un monoı̈de pour la même loi de composition
interne et le même élément neutre.
Sous-monoı̈de
Sous-monoı̈de
Soit M = hE , .i un monoı̈de. M 0 est un sous-monoı̈de de M si M 0 =
hE 0 , .i, avec E 0 ⊆ E , est un monoı̈de pour la même loi de composition
interne et le même élément neutre.
Pour montrer que M 0 est un sous-monoı̈de de M, il suffit de montrer que
1. l’élément neutre de M appartient à M 0
2. la loi de composition interne est stable pour E 0 : ∀x, y ∈ E 0 , x.y ∈ E 0
Monoı̈de libre
Ensemble de générateurs
Soit M = hE , .i un monoı̈de. Un ensemble de générateurs de M est
un sous ensemble E1 , avec E1 ⊂ E , tel que tout élément de E , sauf
l’élément neutre, est exprimable à l’aide d’une composition de E1 .
Monoı̈de libre
Ensemble de générateurs
Soit M = hE , .i un monoı̈de. Un ensemble de générateurs de M est
un sous ensemble E1 , avec E1 ⊂ E , tel que tout élément de E , sauf
l’élément neutre, est exprimable à l’aide d’une composition de E1 .
Exemple :
{1} est un générateur de hIN, +i
→ Tout entier peut être exprimé comme une somme de 1
L’ensemble des nombres premiers est un générateur de hIN, ∗i
→ Tout entier peut être exprimé comme un produit de nombre premiers
Monoı̈de libre
Monoı̈de libre
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 ∗ .
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 hX ∗ , .i est un monoı̈de libre.
Alphabets et langages
Alphabets
Opérations sur les mots
Monoı̈de
Langages
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 ∗ )
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 ∗ )
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 6∈ B}
Complémentaire : A ⊆ X ∗ , A = X ∗ \ A = {w ∈ X ∗ |w 6∈ A}
Egalité de langages
Deux langages A, B ⊆ X ∗ sont égaux, noté A = B, si et seulement si
A ⊆ B et B ⊆ A.
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}.
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.
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, ab, bab, ba, baa, baab}
⇒ AB 6= BA
Fermeture de Kleene
S∞
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.
Fermeture de Kleene
S∞
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.
Fermeture positive
S∞
Soit A ⊆ X ∗ . On note A+ = i=1 Ai la fermeture positive du
langage A.
Fermeture de Kleene
S∞
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.
Fermeture positive
S∞
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
Opération miroir
Soit A ⊆ X ∗ . On définit l’opération miroir comme étant à = {w̃ |w ∈
A}.
L’opération miroir peut également être notée AR = {w̃ |w ∈ A}.
Opération miroir
Soit A ⊆ X ∗ . On définit l’opération miroir comme étant à = {w̃ |w ∈
A}.
L’opération miroir peut également être notée AR = {w̃ |w ∈ A}.
Théorème
Soit A, B ⊆ X ∗ . On a (A.B)R = B R .AR