Adloun

La table du sac, remplie à la main

Exercice · niveau 2 · informatique (MP2I/MPI), chapitre 17 — Programmation dynamique

Énoncé

Quatre objets de poids et de valeurs , capacité . Remplir la table du chapitre, lire l'optimum, puis reconstruire les objets choisis.

Corrigé

La table (ligne : les premiers objets ; colonne : la capacité) :

012345
000000
003333
003447
003457
003457

L'optimum est .

La reconstruction se lit de bas en haut, à capacité courante :

Solution : les objets et , poids , valeur . La capacité restante est nulle, ce qui est un bon contrôle : elle doit toujours être , et l'on peut vérifier que la somme des poids des objets choisis vaut moins la capacité restante.

Le piège de la reconstruction est de tester m[i][c] > m[i-1][c] avec un strict et d'en tirer que l'objet est pris — c'est correct — mais d'oublier que l'égalité n'exclut rien : quand deux solutions de même valeur existent, la table n'en désigne qu'une. La remontée rend une solution optimale, jamais « la » solution optimale.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.