4. Relations entre mots

Ici, nous présentons quelques relations classiques entre mots. Tout d'abord, intuitivement, un mot est préfixe (respectivement suffixe puis sous-chaîne) d'un autre mot, s'il en est un début (respectivement une fin, puis un morceau).


Préfixe, suffixe et sous-chaîne

Si x et y sont deux chaînes quelconques sur A, alors

  • x est un préfixe de y (x ∈ Pref(y)) s'il existe z dans A* tel que y = xz, autrement dit x ∈ Pref(y) si et seulement si ∃z ∈ A*, y = xz;
  • x est un suffixe de y (x ∈ Suff(y)) s'il existe z dans A* tel que y = zx, autrement dit x ∈ Suff(y) si et seulement si ∃ z ∈ A*, y = zx;
  • x est une sous-chaîne (ou facteur) de y s'il existe w et z dans A* tel que y = wxz, autrement dit x ∈ Fact(y) si et seulement si ∃ w, z ∈ A*, y = wxz.

Si x ≠ y (c'est-à-dire si z ≠ ε), alors le préfixe ou le suffixe est dit propre.

Par exemple, dans la chaîne 001110, 00 est un préfixe, 10 est un suffixe et 0111 est une sous-chaîne.

Remarques :


Occurrence

Une occurrence d'une chaîne x dans une chaîne y est une apparition de x à un endroit précis dans la chaîne y.

Par exemple, avec A = {a,b}, le mot y = ababababa comporte quatre occurrences de la sous-chaîne x = aba.

Par ailleurs, notons que dans A* défini sur A = {x1,x2, ..., xn}, il est possible de définir plusieurs relations d'ordre :

Exercices et tests :

Exercice 4.1. Soit x=abbcc un mot sur l'alphabet A={a,b,c} :

Solution

Exercice 4.2. Soient u1, u2 et v trois mots de A*. Montrer que si u1 ∈ Pref(v) et u2 ∈ Pref(v) alors soit u1 ∈ Pref(u2), soit u2 ∈ Pref(u1). Aide

Solution

Exercice 4.3. Soit les mots suivants sur l'alphabet A={a,b,c} :

  1. a
  2. abcd
  3. bc
  4. dbc
  5. ab
  6. cd
  7. cdab
  8. abdd

Trier ces mots selon les trois exemples d'ordre vus dans cette section. On supposera l'ordre suivant sur l'alphabet : a<b<c<d

Solution


mardi, 25/11/03 16:25