Adloun

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éthodepénalité totale
glouton du cours (créneau le plus tard)50
variante au plus tôt70
optimum50

Le contre-exemple minimal, à quatre tâches : .

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 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.