UFR IEEA
ACT 2014–2015
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. 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.
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 : Rendez la monnaie
Rappel du problème: On dispose des pièces de monnaie correspondant aux valeurs {a1, . . . , an}, avec a1<
a2. . . < an. Pour chaque valeur le nombre de pièces est non borné. Etant donnée une quantité centière, on
veut trouver une façon de "rendre" la somme cavec un nombre de pièces minimum.
L’algorithme glouton consiste à utiliser d’abord le plus grand nombre possible de pièces an, puis le plus
grand nombre possible de pièces an1si nécessaire, etc.
On suppose que dans trois pays, n= 5 et les valeurs des pièces sont les suivantes:
QUARTERLAND: a1= 1, a2= 5, a3= 10, a4= 20, a5= 25.
DISLAND: a1= 1, a2= 5, a3= 10, a4= 20, a5= 40.
Q 1. Quels sont le(s) pays dans le(s)quel(s) l’algorithme glouton donne une solution optimale? Justifier!
Q 2. Supposons que a1= 1, a2=d, a3=d2, . . . , ai=di1, . . . , an=dn1, pour un certain entier d. Montrer
que l’algorithme glouton qui consiste à utiliser le plus grand nombre de pièces de an, puis de an1ainsi de suite
jusqu’à a1donne toujours une solution optimale.
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 (ou projets ou..) de poids (ou volumes..ou
coûts) piet de valeur vi.
On veut choisir les objets à emporter en respectant la capacité maximale et en optimisant la valeur.
Pb (Optimisation): trouver la valeur maximale d’un chargement. Dans le cas fractionnable, on suppose
qu’on peut fractionner les objets.
Q 1. Proposer un algorithme polynomial qui résout le pb dans ce cas. Montrer qu’il donne bien le remplissage
optimal et étudier sa complexité.
Q 2. Le cas non fractionnable (0-1) 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 !