Pourquoi « au plus tard » et non « au plus tôt »
Exercice · niveau 2 · informatique (MP2I/MPI), chapitre 16 — Algorithmes gloutons
Énoncé
Le cours affirme, sans le montrer, qu'en plaçant chaque tâche au créneau libre le plus tardif on obtient l'optimum, alors qu'un placement au plus tôt rendrait le glouton faux. Le vérifier.
Corrigé
On compare trois quantités sur la même instance : la pénalité du glouton du cours, celle de sa variante « au plus tôt », et l'optimum — ce dernier obtenu en énumérant les sous-ensembles de tâches et en retenant le meilleur qui soit réalisable (voir problème 16.2).
Sur l'instance à sept tâches :
| Méthode | pénalité totale |
|---|---|
| glouton du cours (créneau le plus tard) | 50 |
| variante au plus tôt | 70 |
| optimum | 50 |
Le contre-exemple minimal, à quatre tâches : .
- Triées par pénalité décroissante : .
- Au plus tard : va au créneau ; au créneau ; au ; au . Tout le monde est à l'heure, pénalité 0.
- Au plus tôt : va au créneau ; au ; au ; et n'a plus que le créneau , occupé. Pénalité 3.
La tâche de pénalité , dont l'échéance était , a pris le créneau — un créneau dont elle n'avait aucun besoin, et dont la tâche d'échéance ne pouvait pas se passer.
La mesure systématique. Sur instances de quatre tâches tirées au hasard :
- le glouton du cours a donné l'optimum à chaque fois ;
- la variante « au plus tôt » s'est trompée fois, soit des instances.
Le principe, et il vaut au-delà de cet exercice. Un créneau tardif est une ressource peu demandée : seules les tâches à échéance lâche peuvent l'occuper. Un créneau précoce est une ressource rare : toutes les tâches y ont droit, et les tâches à échéance serrée n'ont que lui. Le glouton doit donc consommer d'abord ce qui est abondant. C'est le même raisonnement qu'à l'exercice 16.2 : choisir de manière à laisser le plus de possibilités, et non de manière à s'avantager sur le moment.
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.