Vous êtes sur la page 1sur 18

Problème de bin-

packing
PROJET RO COMPLEXITE
Classe : 4 InfoB 3
ESPRIT
Travaille realisée par

Hadir Houssem Eddine


Ouerghi Yahia
Plan
4
2 Modélisation 5
Présentation du
mathématiqu
e
6
1 problème 3 Méthode de
résolution conclusion

Introduction Applications
pratiques
En recherche opérationnelle et en optimisation
combinatoire, le bin packing est un problème
algorithmique. Il s'agit de ranger des objets avec
un nombre minimum de boîtes. Le problème
classique se définit en une dimension, mais il
existe de nombreuses variantes en deux ou trois
dimensions.

INTRODUCTION
Problématique

Dans sa forme générale le Bin-


Packing est un problème
d'optimisation, on a une
population d'objet à ranger avec
des contraintes dans le moins de
boîtes identiques (appelées bin)
possibles.

Ce problème fait partie de la


classe des problèmes NP-complet.
Sauf si P = NP, on ne peut pas le
résoudre à l'aide
d'un algorithme de complexité
Présentation du problème de bin
packing
Données :
● N objets a ranger, avec une taille
donnée wi , i ∈ {1, N}.
● M boites disponibles, avec la
capacité C.
Objectif :
● Affecter chaque objet a une
boite.
● Minimiser le nombre de boites
utilisées.
Contrainte :
● Respecter la capacité des boites
et la taille des objets affectés.
( ainsi que d’autre contrainte
Applications pratiques
Le problème de bin packing peut être appliqué à un grand
nombre de secteurs industriels ou informatiques.

● rangement de fichiers sur un support informatique.


● découpe de câbles.
● remplissage de camions ou de containers avec
comme seule contrainte le poids ou le volume des
articles.
Pour la version en deux dimensions :
● découpe de matière première.
● placement de boîtes sur une palette (sans
superposition de boîtes) .
● placement dans un entrepôt (sans superposition de
boîtes).
Pour la version en trois dimensions :
● rangement d'objets physiques dans des boîtes, un
entrepôt, des camions, etc. (avec superposition de
boîtes, de palette, etc.).
Versions de BPP
Deux principales
versions du problème du bin packing on été
proposées.

Une version avec conflits (BPP-C), certains


objets ne peuvent pas être rangés ensemble
dans la même boite. Et une version avec
incompatibilités,
un objet ne peut pas être affecté à toutes les
boites.
Le problème de bin packing
avec conflits
Le probléme de bin packing avec conflits
(BPP-C) est une généralisation du BPP ou on
dispose en plus d’un graphe G= (I,E) dit
graphe conflits.

Chaque sommet i∈ I repésente un objet I et


chaque conflit entre deux objets (i,j) est
indiqué par une arête(i,j) ∈ E.
Un conflit entre deux objets est une
restriction interdisant de ranger ces deux
objets dans le meme bin.

Ce problème est NP-difficile.


Modélisation Mathématique de
BPP et BPP-C
Le probléme de bin packing (BPP) peut etre modélisé
de cette maniére qui vise a minimiser le nombre de bin (1)
(2)
utilisés par une solution.

Ou yk est une variable entière qui prend la valeur 1


si le bin k est utilisé et 0 sinon.
La variable Xik est aussi une variable entière qui
prend la valeur 1 si l’objet i est placé dans le bin k
et 0 sinon.

Les contraintes (1) contrôlent le fait que chaque


objet est placé dans un bin.

Les contraintes (2) vérifient que la somme des


tailles des objets placés dans un bin ne dépasse pas
Ainsi on du
la taille ajout
binles contraintes suivantes pour
gérer les conflits entre les objets.
Méthodes de résolution

Le problème de bin packing a été


largement étudié dans la communauté
de recherche opérationnelle. Il existe
des heuristiques très efficaces pour le
résoudre, et une modélisation très
efficace utilisant l'optimisation linéaire.
Méthode
heuristiques
0
1
● Pour résoudre le problème de bin packing, on utilise souvent des
algorithmes simples comme first-fit (FF) ou best-fit (BF). Les deux
méthodes fonctionnent suivant un principe similaire : on a une liste
d'articles ,chaque article a une taille précise et on range chaqu’un
dans l'ordre. Dans first-fit, on range l'article courant dans la première
boîte qui peut le contenir. Dans best-fit, on range l'article dans la boîte
la mieux remplie qui puisse le contenir. Ces algorithmes ne sont pas
optimaux, mais ils permettent d'obtenir de très bons résultats en
pratique.

● la complexité temporelle de FF est O(n*log(n)), Le nombre de conflits


étant de l’ordre de O(n² )
Algorithme First-fit
La méthode fonctionne suivant le principe de ranger
l‘objet courant dans la première boîte qui peut le contenir.
Exemple: on veut ranger les objets de poids 11,2,15,5,6,17 dans des boites de
poid 20.
Algorithme Best-fit
La méthode fonctionne suivant le principe de ranger
l‘objet dans la boîte mieux remplie qui puisse le contenir.
Exemple: on veut ranger les objets de poids 11,2,15,5,6,17 dans des boites de
poid 20.
02
Méthodes
exactes
On utilise aujourd'hui essentiellement l'optimisation linéaire en
nombres entiers pour résoudre ce problème. Lorsque l'instance traitée
est de faible taille, la formulation de Kantorovich peut être utilisée.
Lorsque le nombre d'articles est grand, on utilise plutôt une résolution
par génération de colonnes utilisant le modèle de Gilmore et Gomory,
ou des modèles reposant sur la résolution d'un problème de flot
maximal. La grande qualité des méthodes obtenues est due à
l'excellente relaxation linéaire du modèle. La qualité de cette
relaxation fait d'ailleurs l'objet d'une conjecture, appelée MIRUP : si
« L » est la valeur de la solution de ce modèle en nombres réels et
«  OPT» la valeur de la solution en nombres entiers, alors on aurait
[L] + 1 >= OPT
Conclusion
Le problème de bin packing a de fortes
connexions avec le problème du sac à
dos (knapsack).

Ces deux problèmes sont les représentants


les plus connus de ce qu'on appelle dans
la communauté de recherche
opérationnelle les problèmes de découpe
et de conditionnement (cutting and
packing).

Vous aimerez peut-être aussi