TD 7 Programmation Dynamique

publicité
TD 7 : programmation dynamique
Licence 3 Info et Math/Info
TD 7
Programmation Dynamique
Exercice 1 On définit la récurrence V (i, j) = max(V (i − 1, j + 1) + F (i), V (i − 1, j)) pour
tout i > 0, j ≥ 0, où F (i) est le i-ème nombre de Fibonacci. On aura aussi les cas de base
suivants : V (0, j) = 0 pour tout j ≥ 0. Donner un algorithme de programmation dynamique
pour calculer V (n, m) étant donnés n et m.
Exercice 2 On se donne une chaîne de caractères s[1..n] qui est un texte dont la ponctuation a disparu (par exemple "untextedontlaponctuationadisparu"). Vous avez accès à un
dictionnaire dict() tel que dict(w) retourne 1 ssi w est un mot du dictionnaire, 0 sinon. On
suppose cette opération en temps constant. Donner un algorithme de programmation dynamique en O(n2 ) qui permet de vérifier que s est une séquence de mots valides du dictionnaire.
Enrichir votre algorithme pour qu’il retourne aussi la séquence de mots valides.
Exercice 3 Soient n et k ≤ n deux entiers, et p1 , . . . , pn ∈ [0, 1] des probabilités. On réalise
n lancés de pièces. On veut calculer la probabilité qu’on ait k faces sachant que pour la pièce
i, la probabilité d’obtenir face est pi . Donner un algorithme de programmation dynamique
pour résoudre le problème en O(n2 ). On supposera que les multiplications de nombres réels
se font en temps constant.
Exercice 4 Plus longue sous-séquence commune Etant donnée deux séquences x[1..n]
et y[1..m], on cherche la longueur de la plus longue sous-séquence commune (pas nécessairement des positions consécutives). Par exemple, avec ABCBDAB et BDCABA, il y a
BDAB, BCAB et aussi BCBA.
1. Trouver une plus longue sous-séquence commune à AAACCGT GAGT T
et CACCCCT AACGT C.
2. Si x a n éléments, combien de sous-séquences de x existe-t-il ?
3. Quelle serait la complexité en temps d’un algorithme brute-force ?
4. Donner un algorithme de programmation dynamique en θ(n.m) pour résoudre ce problème.
5. Modifier votre algorithme pour pouvoir afficher une plus longue sous-séquence commune.
1
Téléchargement