INF7440 — Conception et analyse des algorithmes Automne 2015
Devoir 3
(`a remettre au plus tard le 27 novembre, `a 16h00)
(dans la chute du d´epartement d’informatique, situ´ee au PK-4150)
Le devoir doit ˆetre r´edig´e individuellement et `a l’ordinateur. Vous devez justifier cha-
cune de vos r´eponses. La d´emarche ainsi que l’utilisation correcte de la notation math´ematique
seront ´evalu´ees. Tout retard entraˆınera une p´enalit´e de 20% par jour ouvrable.
Question 1 2 3 Total
Sur 40 70 40 150
Note
1. (40 points) Dans ce probl`eme, nous nous int´eressons au nombre minimal de processeurs
n´ecessaires pour traiter un ensemble de ntˆaches, o`u nest un nombre naturel. On
suppose qu’`a tout moment, un processeur ne peut jamais traiter plus d’une tˆache.
Une tˆache est repr´esent´ee par un couple de r´eels (d, f ), o`u dindique le temps auquel
d´ebute la tˆache et fle temps auquel elle se termine. Bien entendu, d≤f. L’ensemble
de toutes les tˆaches est d´enot´e par T. On dit que deux tˆaches t= (d, f) et t0= (d0, f0)
se chevauchent s’il existe un nombre r´eel xtel que
d<x<f et d0< x < f0.
Soit ple nombre maximal de tˆaches dans Tqui se chevauchent simultan´ement, c’est-
`a-dire qu’il existe des tˆaches ti= (di, fi), pour i= 1,2, . . . , p et un nombre xtels que
di< x < fipour i= 1,2, . . . , p. Nous disons alors que pest la profondeur de l’ensemble
de tˆaches T.
Par exemple, si on a les tˆaches t1= (0,3), t2= (1,5), t3= (2,4) et t4= (4,6), alors
la profondeur de l’ensemble de ces quatre tˆaches est 3, puisque les tˆaches t1,t2et t3
se chevauchent en x= 2.5 et il n’existe aucun nombre pour lequel les quatre tˆaches se
chevauchent.
(a) (20 points) Donnez un algorithme glouton simple qui, ´etant donn´es un ensemble
de tˆaches Tet sa profondeur p, retourne une association (un mapping) indiquant,
pour chaque tˆache i= 1,2, . . . , n, le processeur parmi 1,2, . . . , p qui traitera la
tˆache. Indice : Il suffit d’abord de trier les tˆaches en ordre croissant de d´ebut de
traitement. Ensuite, en parcourant les tˆaches une par une, on assigne n’importe
quel processeur disponible pour traiter cette tˆache.
(b) (20 points) D´emontrez que l’algorithme donn´e en (a) fonctionne toujours. Plus
pr´ecis´ement, montrez qu’il existe toujours un processeur disponible `a chaque fois
qu’on l’assigne dans l’algorithme. Indice : Proc´edez par l’absurde, c’est-`a-dire
supposez qu’`a un moment donn´e, aucun processeur n’est disponible, et montrez
qu’il y a alors une contradiction.
1/3