Exemples d`algorithmes d`empaquetage Exemples d - DIM

publicité
Empaquetage automatique
Un casse-tête informatique
Le problème du Père Noël
Le Père Noël lit les commandes des enfants une à une.
Le Père Noël place les cadeaux dans ses hottes au fur et à mesure.
Toutes les hottes ont la même taille. Les cadeaux ont des tailles différentes.
Lorsqu’il a placé un cadeau dans une hotte, il ne le déplacera pas car le temps est compté !
Le Père Noël veut utiliser le plus petit nombre de hottes pour minimiser ses trajets en traîneau.
Automatiser l’empaquetage
Afin de simplifier sa tâche, le Père Noël souhaite définir une stratégie pour
placer les cadeaux dans les hottes.
Une stratégie s’appelle un algorithme.
Exemples d’algorithmes d’empaquetage
NextFit
Ne garder qu’une seule hotte ouverte.
Dès que le cadeau courant ne rentre pas dans la hotte courante,
la fermer et en ouvrir une nouvelle.
FirstFit
Garder toutes les hottes ouvertes.
Mettre le cadeau dans la première hotte qui convient.
Si aucune hotte ne convient, en ouvrir une nouvelle.
BestFit
Père Noël victime d’un bug dans son algorithme
d’empaquetage: sa hotte est trop remplie !
Garder toutes les hottes ouvertes.
Mettre le cadeau dans la hotte la plus pleine qui convient.
Si aucune hotte ne convient, en ouvrir une nouvelle.
Exemples d’exécution des algorithmes
La liste des cadeaux lue
par le Père Noël dans cet ordre
1
NextFit
2
FirstFit
5
4
7
BestFit
8
5
3
7
8
6
4
2
5
3
1
6
8
4
2
1
3
6
4
2
1
7
3
7
6
5
8
Réalisé pour Sciences en fête 2002 par Nicolas Schabanel, Chargé de Recherche CNRS – Laboratoire de l’Informatique du Parallélisme – École Normale Supérieure de Lyon
Parfois, ôter un cadeau... augmente le nombre de hottes utilisées !?!
liste des cadeaux
2
1
3
5
4
7
6
8
Un exemple avec FirstFit
Avec le
cadeau n°4
8
6
5
4
1
Sans le
cadeau n°4
7
5
1
2
6
2
3
7
3
... on ouvre une hotte de plus avec un
cadeau de moins !
8
Évaluation des performances des algorithmes
L’empaquetage est un problème difficile
Il est impossible de trouver le nombre minimal de hottes sans tout essayer, ce qui prendrait
un temps bien trop long pour notre Père Noël.
On essaye donc de démontrer que nos algorithmes utilisent un nombre
de hottes proche du nombre minimal.
Théorème. NextFit utilise au plus 2 fois plus de hottes que l’optimal.
Sauriez-vous expliquer pourquoi ?
Exemple de pire
performance de NextFit
2
1
4
3
6
5
8
7
...
Théorème. BestFit et NextFit sont meilleurs et utilisent au plus 1,7 fois plus de hottes que l’optimal.
Théorème. Il n’existe pas d’algorithme qui utilise toujours moins de 1,54 fois plus de hottes que l’optimal.
Les problèmes d’empaquetage ont de nombreuses applications
Optimisation de la découpe de tuyaux
Le calcul d’emplois du temps
Une usine de tuyaux reçoit les commandes de ses clients
qui demandent des tuyaux de longueurs variées.
Elle cherche à minimiser les pertes de tuyaux.
Le calcul d’emplois du temps est l’un des problèmes
les plus difficiles.
Ici, il s’agit d’attribuer des tâches de différentes durées
à des gens pour la journée.
On cherche à optimiser le nombre d’employés.
8:00
8:00
8:00
8:00
10:00
10:00
10:00
10:00
12:00
12:00
12:00
12:00
14:00
14:00
14:00
14:00
16:00
16:00
16:00
16:00
18:00
18:00
18:00
18:00
La science est toujours active : l’empaquetage a connu une mini-révolution en 2000
car un nouvel algorithme très simple aux performances quasi-optimales a été découvert.
Plein de problèmes sont encore ouverts, la recherche a besoin de vous !
Faîtes de la science !
Remerciements à Claire Kenyon.
Réalisé pour Sciences en fête 2002 par Nicolas Schabanel, Chargé de Recherche CNRS – Laboratoire de l’Informatique du Parallélisme – École Normale Supérieure de Lyon
Téléchargement