Exercice 5 : Permanence
Une association cherche à assurer une permanence lors d’une journée. Chaque adhérent donne l’intervalle de
temps pour lequel il est disponible. On suppose que l’union des intervalles de temps correspond à la journée,
i.e. qu’à tout moment un adhérent est disponible.
Q 1. Proposer un algorithme qui permet d’assurer la permanence en mobilisant un minimum de personnes, le
prouver et analyser sa complexité.
Q 2. Comment assurer la permanence en minimisant le temps maximum de présence d’un adhérent sans
chercher à optimiser le nombre de personnes mobilisées? Quelle est la complexité de l’algorithme?
Exercice 6 : Les activités
La donnée du problème est un ensemble d’activités; pour chaque activité on a une "heure" de début et une
"heure" de fin. Le problème est d’affecter des salles à toutes les activités, en respectant bien sûr la contrainte:
"à un instant donné, il peut y avoir au plus une seule activité par salle" et en minimisant le nombre de salles
utilisées. On suppose qu’il n’y a pas de temps de battement entre deux activités, i.e. que dans la même salle
dès qu’une activité est terminée, une autre peut commencer. Un peu plus formellement, on a donc:
Donnée:
n - - nombre d’activités
((di, fi))n
i=1, di< fi,di(resp. fi): heure de début (resp. fin) de l’activité i
Sortie Une affectation compléte et correcte qui minimise le nombre de salles utilisées i.e.:
aff : [1..n]→[1..p], p ≤n, aff(i) no de salle affectée à l’activité i
qui vérifie la contrainte:
si aff(i) = aff(j)et i6=j, alors ]di, fi[∩]dj, fj[= ∅
et qui minimise card(aff([1..n])).
Q 1. Soient les activités données par (1,5), (9,15), (4,8), (6,16). Proposer une affectation optimale.
Q 2. Une première proposition consiste à remplir les salles une par une en utilisant le critère glouton “par date
de fin croissante”. Pensez-vous que cette méthode forunit une solution optimale? Justifier.
Q 3. Proposer un algorithme glouton qui donne une solution optimale, le prouver et donner sa complexité.
Que dire du nombre de salles utilisées?
Exercice 7 : Ordonnancement de tâches
Le cadre général: Dans tous les cas, on a ntâches i= 1, . . . , n à exécuter sur une seule machine. Une tâche ne
peut être fractionnée. Pour chaque tâche, on a une durée di(un entier positif). On suppose que toute exécution
des taches commence à t= 0. Soit une exécution des tâches: à chaque tâche i, on peut donc associer tila date
à laquelle elle est terminée. On essaie d’ordonnancer les tâches de façon optimale selon différents critères.
Q 1.Le retard maximal: pour chaque tâche, on a une date limite souhaitée fi(un entier positif); pour une
exécution donnée, une tâche est en retard si ti> fi. on cherche à trouver une exécution de l’ensemble des tâches
qui minimise maxi en retard(ti−fi)i.e. le retard maximum.
Exemple: Soit 4tâches données par d1= 2, d2= 1, d3= 4, d4= 2,f1= 2, f2= 3, f3= 5, f4= 4. L’exécution
dans l’ordre 1,3,2,4,donnera un retard maximal de 5, l’exécution 1,3,4,2un retard maximal de 6.
Q 1.1. Dans l’exemple ci-dessus, donner une séquence où le retard maximum est minimal.
Q 1.2. Proposer un algorithme glouton polynomial qui donne une séquence optimale. Evaluer sa complexité
et prouver que votre algorithme produit bien une solution optimale.
Q 2.Un autre critère d’optimalité: à chaque tâche est associée une pénalité pistrictement positive - mais pas
de date limite-; on cherche à trouver une exécution de l’ensemble des tâches qui minimise Σn
i=1piti.
Q 2.1. Soit quatre tâches: d1= 2, d2= 1, d3= 4, d4= 2,p1= 1, p2= 1, p3= 3, p4= 2. L’exécution dans
l’ordre 1,2,3,4donnera t1= 2, t2= 3, t3= 7, t4= 9 et conduira donc à une pénalité totale de 44.
Quelle pénalité totale donnera l’exécution 1,3,4,2?
Q 2.2. Proposer un algorithme glouton polynomial qui donne une séquence optimale. Evaluer sa complexité
et prouver que votre algorithme minimise bien la pénalité totale.
Q 3. Dans cette partie, on suppose qu’à chaque tâche est associée une pénalité piet que toutes les tâches
ont le même deadline d. On cherche à trouver une exécution qui minimise la somme des pénalités des tâches
en retard, i.e. Pi/ti>d pi. Le professeur Heuristus propose d’ordonnancer les tâches selon les pi/didécroissants.
Montrer que cet ordonnancement n’est pas toujours optimal.
2