algorithmique (école d'ingénieur) · Chapitre 4 · Exercice de TD
Livraisons minimales
Répartition optimale d'une ressource · niveau 2
Énoncé
Chaque entrepôt doit recevoir au moins unités (contrainte contractuelle).
- Modifier la récurrence de la répartition optimale. Quelle valeur donner à lorsqu'aucune répartition ne respecte les contraintes ?
- Programmer, et tester sur les gains du chapitre avec et .
- Que se passe-t-il si ?
Corrigé
- La -ème livraison doit vérifier , et le reste doit pouvoir être réparti en respectant les contraintes des premiers entrepôts. On note s'il n'existe aucune répartition admissible.
Base. : .
Hérédité. , :
le maximum d'un ensemble vide valant .
- Seule la boucle sur change ; on ignore les sous-problèmes impossibles.
for (int k = 1; k < n + 1; k++)
for (int s = 0; s < S + 1; s++) {
M[k][s] = MOINS_INFINI; // aucune répartition admissible
for (int sp = B[k - 1]; sp < s + 1; sp++) { // sp >= b(k-1)
if (M[k - 1][s - sp] <= MOINS_INFINI / 2) continue; // reste impossible
int v = G[k - 1][sp] + M[k - 1][s - sp];
if (v > M[k][s]) { M[k][s] = v; A[k][s] = sp; }
}
}
Avec :
M[4] = [-oo, -oo, -oo, -oo, 5, 9]
M[3] = [-oo, -oo, -oo, 3, 7, 9]
M[2] = [-oo, -oo, -oo, 3, 5, 6]
M[1] = [0, 2, 3, 4, 5, 5]
M[0] = [0, 0, 0, 0, 0, 0]
m(4,5) = 9
entrepôt 0 <-- 0, gain 0
entrepôt 1 <-- 3, gain 3
entrepôt 2 <-- 1, gain 4
entrepôt 3 <-- 1, gain 2
Le gain passe de (sans contrainte) à : imposer trois unités à l'entrepôt , peu rentable, coûte une unité de gain.
- Si , aucune répartition n'est admissible et : le programme le détecte (essai avec ), et l'appel de
aron'a alors aucun sens.
100 % gratuit
La suite du chapitre est sur Adloun
- 9 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.