Académique Documents
Professionnel Documents
Culture Documents
Ordonnancements
Corrigé
∑
∈ , max 6, 6
1
RCP106 - MOCAB2
1 2 3 4 5 6 7 8
1 3 2 2 4 5 3 1 2
2 4 4 2 3 1 3 4 3
Remarque : dans le déroulement des deux algorithmes des choix arbitraires ont été
effectués en cas d’égalité de deux valeurs, d’autres listes étaient donc possibles.
2
RCP106 - MOCAB2
1. Montrer qu’il existe un ordonnancement optimal tel que la machine n’a pas de
période d’inactivité.
Considérons une période d’inactivité ; 1 de la machine. Si l’on décale d’une unité vers
le début du projet chaque tâche dont la date de début d’exécution est 1, alors on
obtient un ordonnancement de coût moindre ou égal. En effet, avancer le début d’une tâche
ne peut occasionner de surcoût (on ne met aucune tâche en retard). Il est donc possible de
supprimer ainsi toute période d’inactivité de la machine, puisque ces périodes sont en
nombre fini. En partant d’un ordonnancement optimal, on aboutit à un ordonnancement de
même coût, sans période d’inactivité.
Nous considérons l’algorithme glouton suivant pour calculer un ordonnancement : les tâches
sont d’abord triées de sorte que ⋯ . Pour la tâche , variant de 1 à , on
détermine, si elle existe, la dernière période libre de la machine telle que ne soit pas en retard. Si
cette période existe alors est affectée à cette période, sinon est affectée à la dernière période
libre de la machine
Nous allons maintenant montrer que cet algorithme construit un ordonnancement optimal.
La démonstration se fait par récurrence sur le numéro des tâches.
3. Montrer qu’il existe un ordonnancement optimal pour lequel la tâche 1 est exécutée à
la période déterminée par l’algorithme. Pour cela on utilisera un argument d’échange
en considérant le cas où la tâche 1 est en retard et le cas où la tâche 1 est en avance.
3
RCP106 - MOCAB2
Soit Δ la variation de coût induite par cet échange. Si j passe de l’état « non en retard » à
l’état « en retard », alors Δ 0, sinon Δ 0 0. Dans tous les cas, Δ est
négatif ou nul. On aboutit donc à un ordonnancement meilleur au sens large. Donc, dans
tout ordonnancement optimal, il est possible de considérer que la tâche 1 est exécutée à la
période déterminée par l’algorithme.
Supposons maintenant que la tâche 1 n’est pas en retard dans . Soit la tâche exécutée
entre 1 et :
Soit Δ la variation de coût induite par cet échange. La tâche 1 n’était pas en retard, et elle
reste dans cet état. L’exécution de la tâche j est avancée. Si j passe de l’état « en retard » à
l’état « non en retard », alors Δ 0, et si j ne change pas d’état, Δ 0 (il n’est pas
possible que j passe de l’état non en retard à l’état en retard). Dans tous les cas, Δ est négatif
ou nul. On aboutit donc à un ordonnancement meilleur au sens large.
Donc, dans tous les cas, dans tout ordonnancement optimal, il est possible de considérer
que la tâche 1 est exécutée à la période déterminée par l’algorithme.
Nous supposons maintenant qu’il existe un ordonnancement optimal pour lequel les tâches
1, … , 1 sont exécutées à la période déterminée par l’algorithme. Nous allons montrer
qu’il existe un ordonnancement optimal pour lequel la tâche est exécutée à la période
déterminée par l’algorithme.
Supposons qu’à l’étape de l’algorithme il n’y a plus de période libre sur la machine telle que
ne soit pas en retard.
4. Montrer que dans ce cas, il existe un ordonnancement optimal pour lequel la tâche
est exécutée à la période déterminée par l’algorithme. Pour cela on utilisera un
4
RCP106 - MOCAB2
On suppose que les tâches 1 à 1 sont situées à la place déterminée par l’algorithme.
D’après l’hypothèse de récurrence, il existe un ordonnancement optimal dans lequel ces
tâches d’indice ont précisément ces dates de début d’exécution.
Supposons qu’à l’étape de l’algorithme glouton il n’y a plus de période libre telle que ne
soit pas en retard. On a donc :
Si, dans , la période ; 1 est occupée par une tâche (avec donc ), cela
signifie que , située après et donc en retard dans , peut être échangée avec la tâche :
le coût ne peut que décroître au sens large puisque est déjà en retard dans et l’échange
ferait avancer la tâche .
Supposons qu’à l’étape de l’algorithme il y a une période libre sur la machine telle que ne
soit pas en retard.
On suppose que les tâches 1 à 1 sont situées à la place déterminée par l’algorithme.
D’après l’hypothèse de récurrence, il existe un ordonnancement optimal dans lequel ces
tâches d’indice ont précisément ces dates de début d’exécution.
Supposons qu’à l’étape de l’algorithme glouton il y a bien une période libre telle que ne
soit pas en retard. Appelons le début de la dernière des périodes laissant i non en retard.
On a 1. Si, dans , la période ; 1 est occupée par une tâche (avec donc
), échanger les tâches i et j fait à nouveau décroître le coût au sens large : si dans
la tâche est en retard, la placer à fait gagner et éventuellement perdre mais comme
, l’échange est bien profitable. Si dans la tâche n’était pas en retard, est
nécessairement placée dans avant d’après le choix de , ainsi placer à laisse non en
retard et est avancée donc aucun coût n’est à payer.
5
RCP106 - MOCAB2
6. Qu’en concluez-vous ?