UFR IEEA
ACT 2016–2017
Master d’Informatique-S1
Fiche TD: Algorithmes gloutons
Exercice 1 : Les invités
Alice veut organiser une grande fête. Elle a la liste de ses connaissances, et sait qui connait qui. Elle veut
respecter cette règle: chaque invité connaît au moins 5 autres invités et ne connait pas au moins 5 invités. Elle
veut de plus inviter le maximum de personnes.
Q 1. Proposer un algorithme pour construire une liste optimale d’invités, justifier sa correction et évaluer sa
complexité.
Exercice 2 : Les antennes-relais, version simplifiée
Considérez une route rectiligne avec des habitations dispersées, placées aux positions {x1, . . . , xn}(les xisont
réels et représentent la distance en kilomètres à partir du kilométre 0de la route). Une antenne-relais couvre
les habitations à une distance au plus égale à kkilomètres d’elle.
Q 1. Concevez un algorithme qui calcule le nombre minimal d’antennes-relais à placer pour couvrir toutes les
habitations et les place. Analysez la complexité et justifiez l’optimalité de la solution.
Exercice 3 : Gardons la tête froide
Un laboratoire doit stocker des produits au frais. Il dispose de réfrigérateurs mais veut minimiser le nombre de
ceux qu’il met en marche. La température d’un réfrigétrateur peut être réglée à une température entre MIN et
MAX (MIN et MAX sont indépendants du réfrigérateur). Chaque produit est muni d’une plage de température
de stockage admissible, sous la forme d’un intervalle d’entiers fermé [tmin, tmax]- avec MIN tmin tmax
MAX. On suppose que le volume d’un seul réfrigérateur est suffisant pour contenir tous les produits.
Q 1.Donnez un algorithme polynomial (glouton) qui détermine le nombre minimal de frigos nécessaires -et leur
réglage, pour stocker tous les produits à la bonne température. Justifier.
Exercice 4 : Le problème du sac à dos dans le cas fractionnable
Donnée du problème:
n entiers p1,· · · , pnpositifs.
n entiers v1,· · · , vnpositifs.
un entier c
Interprétation: il y a un sac de capacité maximale cet nobjets de poids piet de valeur vi.
On veut choisir les objets à emporter en respectant la capacité maximale et en optimisant la valeur.
Q 1. Dans le cas fractionnable, on suppose qu’on peut fractionner les objets. Proposer un algorithme polynomial
qui résout le problème dans ce cas. Montrer qu’il donne bien le remplissage optimal et étudier sa complexité.
Q 2. Dans le cas non fractionnable, l’algorithme proposé ci-dessus marche-t-il? Pourquoi? Quelle méthode
proposeriez-vous? Quelle serait sa complexité?
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(tifi)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
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !