• Aucun résultat trouvé

TD 5 : plus longue sous-s´equence commune

N/A
N/A
Protected

Academic year: 2022

Partager "TD 5 : plus longue sous-s´equence commune"

Copied!
1
0
0

Texte intégral

(1)

TD d’algorithmique avanc´ee

TD 5 : plus longue sous-s´equence commune

Jean-Michel Dischler et Fr´ ed´ eric Vivien

Probl´ ematique

Une s´equence est une suite finie de symboles pris dans un ensemble fini. Si u=ha1, a2, ..., ani est une s´equence, o`ua1,a2, ...,an sont des lettres, l’entiernest lalongueur deu. Une s´equence v=hb1, b2, ..., bmi est une sous-s´equence de u = ha1, a2, ..., ani s’il existe des entiers i1, i2, ..., im (1 ≤ i1 < i2 < ... <

im ≤ n) tels que bk = aik pour k ∈ [1, m]. Par exemple, v = hB, C, D, Bi est une sous-s´equence de u=hA, B, C, B, D, A, Bicorrespondant `a la suite d’indiceh2,3,5,7i.

Une s´equencewest unesous-s´equence communeaux s´equencesuetvsiwest une sous-s´equence deuet dev. Une sous-s´equence commune estmaximaleou est uneplus longue sous-s´equence si elle est de longueur maximale. Par exemple : les s´equences hB, C, B, Ai et hB, D, A, Bi sont des plus longues sous-s´equences communes dehA, B, C, B, D, A, Biet de hB, D, C, A, B, Ai.

R´ esolution par programmation dynamique

1. On cherche `a d´eterminer la longueur d’une sous-s´equence commune maximale `a u=ha1, a2, ..., aniet v=hb1, b2, ..., bmi. On noteL(i, j) la longueur d’une sous-s´equence commune maximale `aha1, a2, ..., aii et hb1, b2, ..., bji (0 ≤ j ≤m, 0 ≤i ≤n). Donnez une r´ecurrence d´efinissant L(i, j). Indication : on pourra distinguer les cas ai =bj etai6=bj.

2. ´Ecrivez alors un algorithme r´ecursif calculant la longueur de la plus longue sous-s´equence commune de deux s´equences.

3. Montrez que cet algorithme est de complexit´e au moins exponentielle dans le cas o`u les deux s´equences n’ont pas d’´el´ements en commun.

4. ´Ecrivez alors un algorithme suivant le paradigme de la programmation dynamique et calculant la longueur de la plus longue sous-s´equence commune de deux s´equences.

5. Quelle est la complexit´e de cet algorithme ?

6. Modifiez l’algorithme pr´ec´edent pour que l’on puisse en plus construireune plus longue sous-s´equence commune et affichez une telle sous-s´equence.

Références

Documents relatifs

Connaissant la plus longue sous-séquence commune au mot vide et n’importe quel mot, on peut en déduire une formule de récurrence sur la longueur de la plus longue sous-séquence

Dans le cas où E est de dimension finie, la sphère S est compacte et l'existence d'un arc d'accumulation est assurée ; mais, faute d'un analogue de la proposition 4 du § 2.2, nous

Quand vous cherchez quelle est la plus longue s´equence croissante que peut prolonger E i , vous pouvez proc´eder par dichotomie dans le tableau V.. Il faut aussi g´erer L, la

[r]

Par exemple, au lieu d’´ecrire sur le terminal les termes de la s´equence, vous les copiez dans un tableau auxiliaire, puis vous parcourez ce tableau auxiliaire en ordre inverse

Il convient de se demander tout d'abord si le rangement peut être fait avec une face du parallélépipède parallèle à une face du cube (le problème est alors à 2

Dans un triangle non isocèle, la hauteur, la bissectrice intérieure et la médiane issues d’un même sommet se classent dans cet ordre par longueur croissante?. Q₁ Existe-t-il

Admettant que le lancer d’une pi` ece donne pile ou face (P ou F) de fa¸ con ´ equiprobable, quelle est la loi de probabilit´ e du nombre de lancers n´ ecessaire pour obtenir pour