Sie sind auf Seite 1von 4

RO : Programmation Dynamique

N. Brauner

Universite Grenoble Alpes

Exercice 1 : Sac-`
a-dos multi-objets
z = max 8x1 + 9x2 + 6x3
4x1 + 3x2 + 2x3
x1 ,
x2 ,
x3

11
entier

Question 1 Trouver la solution optimale en utilisant la programmation dynamique.

Exercice 2 : (W.L. Winston)


Dans un atelier qui fabrique des pi`eces metalliques, la machine `a souder est un poste
critique qui ne doit pas tomber en panne. Lachat dune nouvelle machine co
ute 1000=
C.
Les co
uts de maintenance de cette derni`ere pendant son cycle de vie, qui est de 3 ans, sont
de 60=
C la premi`ere annee, 80=
C la deuxi`eme et 120=
C la troisi`eme annee. Elle doit etre
obligatoirement remplacee par une nouvelle au bout de 3 ans. Pour lachat dune nouvelle
machine, le fournisseur fait une reprise sur lancienne machine. En fonction de lanciennete
de celle-ci, la reprise offerte est de 800=
C si la machine a moins de 1 an, 600=
C au bout de 2
ans et 500=
C en fin de vie. Latelier veut trouver une politique optimale de remplacement
de la machine pendant les 5 annees `
a venir, qui minimise le co
ut total.
Question 1 Decrire les etats et exprimer le principe de sous-optimalite.
Question 2 Trouver la solution optimale sur 5 an en utilisant la programmation dynamique.
Question 3 Si lentreprise estime que dans 5 ans cette technologie sera obsol`ete et que la
machine ne sera pas remplacee, quelle serait alors la politique optimale ?

Exercice 3 : Rendu de monnaie Vous voulez programmer le rendu de monnaie dun


distributeur automatique pour quil donne le moins de pi`eces possible. Le distributeur
contient differents types de pi`eces de valeurs {v1 , ..., vn }. La somme `a rendre est notee
S. On suppose que les pi`eces disponibles permettent datteindre exactement la valeur S.
Dans un premier temps, on consid`ere que les pi`eces sont en nombre illimite.
Question 1 Trouvez la solution optimale avec les valeurs de pi`eces {1, 4, 5} et la valeur
S = 12 en utilisant la programmation dynamique.
Question 2 Indiquez comment resoudre le probl`eme general `a laide de la programmation
dynamique ? Vous donnerez les sous-probl`emes optimaux `a traiter, les cas de bases et une
relation de recurrence entre les solutions optimales des sous-probl`emes.
Question 3 Indiquez comment modifier votre programmation dynamique si le nombre de
pi`eces de valeur vi est en quantite limitee qi ?

Exercice 4 : (W.L. Winston )


Potir a 6000 =
C`
a investir. Il y a trois projets possible. Si di =
C sont investis dans le projet
i, alors ri (di ) est obtenu comme valeur nette. Les valeurs des ri (di ) sont comme suit :
r1 (d1 ) =
r2 (d2 ) =
r3 (d3 ) =
r1 (0)

7d1
3d2
4d3

+ 2000
+ 7000
+ 5000

(si d1 > 0)
(si d2 > 0)
(si d3 > 0)

= r2 (0) = r3 (0) = 0

La somme `
a placer dans chaque projet doit etre un multiple de 1000=
C. Potir veut investir
=
ses 6000 C et son but est de maximiser sa valeur nette gagnee.
Question 1 Modeliser le probl`eme mathematiquement.
Question 2 Resoudre le probl`eme en utilisant la programmation dynamique.
Question 3 Representez graphiquement les etats et la solution optimale.

Exercice 5 : Neige (C. Rapine)


Vous avez decide de profiter de vos vacances et des abondantes chutes de neige de ces
derniers jours pour vous initier au surf. Vous louez votre materiel en station ; le magasin
propose 3 tarifs :
La location `
a la journee co
ute f1 = 25 =
C
=
Un forfait 2 jours `
a f2 = 40 C
Un forfait 4 jours `
a f4 = 60 =
C
Vous avez consulte les previsions meteo sur les 10 jours `a venir. Ces previsions sont donnees
dans le tableau ci-dessous, o`
u bt(j) = 1 indique quil fait beau temps la journee j.
j
bt(j)

1
1

2
0

3
1

4
1

5
0

6
1

7
1

8
0

9
1

10
1

Table 1 Previsions meteorologiques sur les 10 jours `a venir


Pour etre dans les meilleures conditions possible, vous voulez surfer seulement les jours
de beau temps, et vous desirez surfer tous les jours de beau temps. Votre probl`eme est de
decider quand louer votre surf et pour quelles durees pour minimiser vos co
uts.
On note C(j) le co
ut minimal de location pour pouvoir surfer tous les jours de beau temps
entre le jour j et la fin de vos vacances.
Question 1 Quelle est la valeur de C(j) qui vous interesse ? Quelles valeurs de C(j) peut-on
calculer directement (instances de base) ?
Imaginons que nous soyons au matin du jour j, devant la porte du magasin, et que vous
navez pas encore loue de surf.
Question 2 Si vous decidez de louer un surf pour 2 jours, quel est alors que co
ut minimal
que vous pouvez esperer payer entre j et la fin de vos vacances ?
Question 3 Dans quel cas est-il possible de decider de ne pas louer de surf ce matin l`a ?
Question 4 Ecrire le principe de sous-optimalite pour calculer C(j)

Question 5 Calculer dans un tableau les valeurs de C(j) et en deduire le co


ut minimum que
vous aller payer. Vous detaillerez le calcul de C(6)
Considerons maintenant quau lieu de vouloir surfer tous les jours de beau temps, vous
souhaitez seulement surfer au moins 4 jours pendant vos vacances. On note D(j, k) le co
ut
minimal de location pour pouvoir surfer au moins k jours de beau temps entre le jour j
et la fin de vos vacances.
Question 6 Quelles sont les valeurs de D(11, k) ?
Question 7 Ecrire le principe de sous-optimalite pour calculer D(j, k). Pour faciliter lecriture
on note bt(j, j 0 ) le nombre de jours de beau temps entre le matin de j et le matin de j 0 (c-`a-d
bt(j, j 0 ) = bt(j) + bt(j + 1) + + bt(j 0 1).

Exercice 6 : Dans un jeu televise, apr`es avoir repondu `a un certain nombre de questions,
le montant du gain va etre decide de la facon suivante : on va vous fournir `a la suite 10
nombres tires au hasard de facon uniforme entre 0 et 1. A chaque nombre, vous avez soit
la possibilite de dire STOP, et le gain sera de 1 000 000 de fois le nombre retenu, soit de
continuer mais le nombre est definitivement perdu. Si vous arrivez au 10`eme , vous devrez
garder ce nombre. On cherche une strategie de jeu qui maximise lesperance de gain.
Question 1 Comment se presente une telle strategie ?
Question 2 Quelle est la strategie face `a un seul tirage ? Quelle est lesperance du gain ?
Question 3 Notons G(i) lesperance du gain dune strategie optimale pour une serie de i
tirages. Comment secrit le principe de sous-optimalite ?
Question 4 Trouver la strategie optimale. Quel est son gain espere ?

Exercice 7 : Chain matrix multiplication


(inspired by C. Rapine, C. Papadimitriou and U. Vazirani)
We want to calculate the matrix product M = A1 A2 ...Aq where each Ai is an ai bi matrix.
This problem arises in many practical applications like 3D-graphics, physics, machine
learning, mathematical finance... Our objective here is not to find M but to decide the
most efficient way to calculate it.
Question 1 indicate conditions on the ai and bi for this product to be feasible.
Calculating M involves multiplying two matrices at a time. Matrix multiplication is not
commutative in general (A B 6= B A) but it is associative, i.e. (A B) C = A (B C).
Thus, we can compute a product of matrices in many different ways, depending on how
we parenthesize it. We suppose that multiplying an m n matrix by an n p matrix takes
mnp time units.
Question 2 Let us consider for instance the product of three matrices M = A B C with
the following dimensions A : 1 10, B : 10 1, C : 1 50. Indicate the cost (in time units)
of the two parenthesizations (A B) C and A (B C).
Question 3 Find an example where the greedy approach that consists in always performing
the cheapest matrix multiplication available, is not optimal ?
The possible orders for doing the multiplications correspond to all the full binary trees
with q leaves whose number is exponential in q. Thus we can not use brute force and we
will turn to dynamic programming.
Let C(i, j) be the minimum cost of multiplying Ai Ai+1 ...Aj
3

Question 4 Which values of C(i, j) are trivial to compute (base instances)


Imagine that the best parentherization of Ai Ai+1 ...Aj is of the form (Ai ?...?Ak )(Ak+1 ?...?Aj ).
Question 5 In this case, write the value of C(i, j) according to subproblems.
Question 6 When the splitting point k is not known, write the complete formula for C(i, j).
Question 7 Which value of C(i, j) indicates the cost of calculating M .
Question 8 Consider the example M = A1 A2 A3 A4 A5 where the dimensions of the
matrices are given in the following table.

dimension

A1
52

A2
2 10

A3
10 1

A4
1 10

A5
10 2

Complete the following table in order to find the best cost.

i\j

1
2

Question 9 What is the overall running time of computing the best cost for the matrix
product M .

Exercice 8 : Plus long sous-mot commun (F. Meunier)


Un mot w sur un alphabet est une suite finie w1 w2 ...wn delements de . La quantite
n est appele longueur du mot w. On dit quun mot w0 = w10 , ...wn0 de longueur n0 est
un sous-mot de w sil existe une application f strictement croissante de {1, 2, ..., n0 } dans
{1, 2, ..., n} telle que wi0 = wf (i) pour tout i {1, 2, ..., n0 }. En dautres termes, en effacant
des lettres de w, on peut obtenir w0 . Par exemple : ABC est un sous-mot de AEBBAC,
mais nest pas un sous-mot de AECAB.
On se donne deux mots w1 et w2 sur un alphabet . On cherche leur sous-mot commun
w0 le plus long.
Question 1 Montrer que cest un probl`eme de type programmation dynamique, et quil peut
se resoudre en O(n1 n2 ), o`
u n1 et n2 sont les longueurs de w1 et de w2 .
Ce probl`eme a des applications en biologie, lorsque on veut evaluer la distance separant
deux brins dADN.