Vous êtes sur la page 1sur 54

1

A ma mre,
A lme de mon pre

2

Remerciements


Ce mmoire doit beaucoup aux nombreuses personnes qui mont encourage,
soutenue et conforte au long de toutes ces annes. Quelles trouvent dans ce
travail lexpression de mes plus sincres remerciements.
Je tiens dans un premier temps remercier mon encadrant Monsieur Ahmed
EL HILALI ALAOUI, Professeur la Facult de Sciences et Techniques de Fs,
pour avoir accept de mencadrer et de confi ce travail, ainsi que pour son aide
et ses prcieux conseils.
Jexprime toute ma reconnaissance au Professeur EZZAKI Fatima,
responsable de notre licence, et aux Professeurs EL KHOMSSI Mohammed,
LOUQMAN Chakir, et HILALI Abdelmajid, pour avoir accept de faire partie
du jury de mon mmoire.
Je remercie galement tout le dpartement de mathmatique et lensemble des
enseignants de la FST de Fs en gnral, grce qui, jai acquis une solide
formation.
Mes remerciements vont aussi tous mes amis, merci de mavoir soutenu
pendant les moments difficiles, jespre avoir su partager avec vous les moments
de joie.

Je tiens remercier tout particulirement ma mre, sa prsence et ses
encouragements sont pour moi les piliers fondateurs de ce que je suis et de ce
que je fais. Que dieu vous protge.
Sans oublier mes surs pour leurs soutiens durant toutes ces annes dtudes,
en particulier ma sur et mon enseignante Ghizlane, votre soutien ma t
indispensable pour en arriver l; les mots me manquent pour vous exprimer
quel point je suis fire dtre votre petite sur, jespre que jai t a la hauteur
pour vous.


3

TABLE DES MATIERES


Introduction Gnrale .............................................................................................................................. 5
Chapitre I : Problme de Bin-Packing ..................................................................................................... 6
I. Classification du problme .............................................................................................................. 7
II. Bin Packing une dimension (1BP) ............................................................................................. 7
II.1 Exemples dapplication du problme de Bin Packing une dimension ............................... 8
II.1.1 Sauvegarde de fichiers dans des supports informatiques ................................................ 8
II.1.2 Dcoupe de bois .............................................................................................................. 8
II.1.3 Organisation dune fte ................................................................................................... 8
II.2 Formulation mathmatique ...................................................................................................... 9
II.2.1 Bin-Packing avec plusieurs bins ...................................................................................... 9
II.2.2 Bin Packing avec un seul bin ...................................................................................... 10
III. Problme de Bin Packing deux dimensions (2BP) .............................................................. 12
III.1 Position du problme ............................................................................................................. 12
III.2 Modles Mathmatiques ........................................................................................................ 14
III.2.1 Modle de Strip-Packing ............................................................................................... 14
III.2.2 Modle de Bin-Packing ................................................................................................. 16
III.2.3 Modle de Knapsack (Sac--dos) .................................................................................. 19
Chapitre II : Mthodes de rsolution ..................................................................................................... 23
I. Loptimisation combinatoire ......................................................................................................... 23
II. Mthodes exactes .......................................................................................................................... 24
II.1 Mthode de Branch & Bound ................................................................................................ 24
II.1.1 Principe .......................................................................................................................... 24
II.1.2 Fonctionnement ............................................................................................................. 24
III. Mthodes approches ................................................................................................................ 27
III.1 Le cas 1BP ............................................................................................................................. 27
III.1.1 Stratgie Next Fit (N.F) .............................................................................................. 27
III.1.2 Stratgie First Fit (F.F) ............................................................................................... 28
III.1.3 Stratgie Best-Fit (B.F) ................................................................................................. 29
III.1.4 Stratgie Worst-Fit (W.F) .............................................................................................. 29
III.2 Le cas 2BP ............................................................................................................................. 30
4

III.2.1 Mthode en une phase ................................................................................................... 30
III.2.2 Mthodes en deux phases .............................................................................................. 32
IV. Mtaheuristiques : Algorithmes Gntiques.............................................................................. 33
IV.1 Principe et droulement........................................................................................................ 33
IV.2 Codage ................................................................................................................................... 34
IV.3 Cration de la population initiale .......................................................................................... 34
IV.4 Evaluation des individus ........................................................................................................ 34
IV.5 Slection ................................................................................................................................ 35
IV.6 Reproduction ......................................................................................................................... 36
IV.6.1 Croisement ..................................................................................................................... 36
IV.6.2 Mutation ........................................................................................................................ 37
IV.7 Schma rcapitulatif .............................................................................................................. 38
Chapitre III : Application de lAlgorithme Gntique aux problmes de Bin - Packing ...................... 39
I. Application au problme de Sac dos une dimension ......................................................... 40
I.1 Algorithme gntique ............................................................................................................ 40
I.1.1 Codage ........................................................................................................................... 40
I.1.2 Slection ........................................................................................................................ 41
I.1.3 Croisement ..................................................................................................................... 41
I.1.4 Mutation ........................................................................................................................ 42
I.2 Plate forme ............................................................................................................................ 42
I.2.1 Les tapes de lexcution ............................................................................................... 43
I.2.2 Exemple dexcution ..................................................................................................... 45
I.3 Brunch&Bound ...................................................................................................................... 45
II. Application au problme de Bin Packing une dimension ........................................................ 48
II.1 Plat forme .............................................................................................................................. 49
II.2 Exemple dexcution : ........................................................................................................... 50
Conclusion gnrale .............................................................................................................................. 51

5

Introduction Gnrale

Le secteur industriel est frquemment confront des problmes de dcoupe de
matires premires. Dans lintrt de rduire les cots et impact
environnemental, lobjectif est de minimiser la quantit de matriaux perdue
dans les chutes. Dans le secteur de transport, le dveloppement des activits logistiques
provoque la multiplication de problmes de conditionnement. La rsolution de ces problmes
est un enjeu conomique trs important pour de nombreuses entreprises.
Les problmes de dcoupage de matriaux et de placement sont des problmes classiques de
la littrature, ce sont des gnralisations du problme classique connu sous le
nom de Bin-Packing . Ces problmes consistent placer le maximum
dobjets possible dans un conteneur de taille fixe, de telle manire que les
objets ne se chevauchent pas et quils ne dpassent pas la taille du conteneur.
Ces problme de Bin Packing font partie des problmes combinatoire les plus tudis, ils
peuvent tre en une, deux ou trois dimensions suivants les caractristiques des objets ranger.
Notre travail, qui sinscrit dans le cadre dun mmoire de fin dtude de la licence Calcul
Scientifique et Application, et qui a t effectu au sein de la facult des Sciences et
Technique de Fs (FSTF), a pour objectif : La ralisation de deux applications dont la
premire permet de dterminer les objets quil faut mettre dans un seul bin de manire
maximiser sa valeur totale sans dpasser le poids maximal de ce dernier, alors que la
deuxime application permet de donner un rangement conomique dun ensemble dobjets
dans plusieurs bins

Ce mmoire est organis comme suit : dans le premier chapitre, nous tudions ces problmes
en utilisant la programmation par contraintes, ceci consiste dabord proposer une
modlisation des problmes par la dtermination de lensemble des variables du problme, de
leurs domaines et les diffrentes contraintes qui les lient. Dans le deuxime chapitre, nous
proposons quelques mthodes de rsolutions qui consistent trouver la solution optimale et
nous dfinissons aussi des heuristiques qui permettent de dterminer une solution efficace en
un temps raisonnable. Alors que dans le troisime chapitre nous nous intressons raliser
nos applications qui permettent de donner une solution dun problme de Bin Packing une
dimension.
6

Chapitre I : Problme de Bin-Packing

Le problme de Bin-Packing relve de la recherche oprationnelle et de loptimisation
combinatoire. Il sagit de trouver le rangement le plus conomique possible pour un ensemble
dobjets dans des boites dites bins . Ce problme a fait lobjet depuis plusieurs annes
dune attention croissante de plusieurs chercheurs, car il a de nombreuses applications dans le
domaine industriel, informatique et mme de ldition.
Le problme classique se dfinit en une dimension, mais il existe de nombreuses variantes en
deux et trois dimensions.
En effet, les problmes de Bin Packing se distinguent en trois types :
- Bin Packing une dimension, o les objets sont caractriss par une seule mesure
comme la hauteur, la largeur ou le poids, quil faut ranger sur un axe de taille fixe.
On peut citer comme exemple de ces problmes le rangement de fichiers sur un
support informatique, la dcoupe de cbles, le remplissage de camions ou de
containers avec comme seule contrainte le poids ou le volume des articles.
- Bin Packing deux dimensions o il faut ranger les objets sur une surface limite,
tels que la dcoupe de matire premire (bois, verre, acier, etc.), le placement de botes
sur une palette (sans superposition de botes), le placement dans un entrept (sans
superposition de botes), placement des articles dans un journal.
- Bin Packing trois dimensions o les objets sont rangs dans un espace de volume
fixe comme le rangement d'objets dans des botes, un entrept, des camions, etc. (avec
superposition de botes, de palette, etc.)

Les problmes de type Bin Packing ont t abords dans la littrature ds les
annes 1950, essentiellement sur des problmes une dimension, mais comme
il a fait lobjet depuis plusieurs annes dune attention croissante de beaucoup
de chercheurs, il existe actuellement un bon nombre darticles traitant ces
problmes en deux dimensions. Dans le cas du problme trois dimensions, il

7

constitue un nouveau champ de recherche auquel les chercheurs commencent sintresser de
plus en plus.
I. Classification du problme
Il existe plusieurs variantes pour le problme de Bin-Packing, que ce soit de type bin-packing
une dimension, deux dimensions ou trois dimensions, et chaque variante prsente ses
propres spcifits telle que : Lorientation des objets, le nombre de dimensions, le type de
tches, le nombre de bins, les caractristiques des objets, etc.
Dyckhoff et Finke ont propos une typologie qui permet dorganiser les problmes de Bin-
Packing en tenant compte de quatre caractristiques principales :
1- le nombre de dimensions du problme ;
2- le type de tche : tous les objets et une slection de bins, ou bien une slection dobjets et
tous les bins ;
3- les caractristiques des bins : 1 seul bin, des bins de tailles identiques, ou bien des bins de
tailles diffrentes ;
4- les caractristiques des objets : objets identiques, peu dobjets de formes diffrentes,
plusieurs objets de formes diffrentes ou bien des objets de formes relativement
identiques.
II. Bin Packing une dimension (1BP)
Le problme de Bin Packing une dimension est lun des problmes classiques de
loptimisation combinatoire, il consiste placer un ensemble dobjets caractriss par une
seule variable (hauteur, largeur, poids, ou autre) dans un ensemble de boites appeles bins .
Lobjectif de ce rangement peut varier dun problme un autre. En effet, on peut distinguer
le rangement qui consiste minimiser le nombre total de bins utiliss et en respectant la taille
maximale de chaque bin, et le rangement qui consiste mettre certains lments de
lensemble des objets dans un seul bin, de faon maximiser la fonction objectif du problme
tudi, comme la valeur du sac sil sagit dun problme de Sac--dos. Nous notons que le
problme de sac dos constitue lun de ses applications les plus usuels. Nanmoins, plusieurs
autres applications existent dans la littrature.
8

II.1 Exemples dapplication du problme de Bin Packing une dimension
II.1.1 Sauvegarde de fichiers dans des supports informatiques
Je souhaite sauvegarder le contenu de mon disque dur sur des CD-Rom de 700 Mo. Chaque
dossier a une taille donne, et je ne souhaite pas dcouper les dossiers. Comme il ne me reste
plus beaucoup de CD, je cherche le minimum de disques que je peux utiliser. Notez bien que
dans cette version du problme, je ne cherche pas regrouper spcialement des fichiers par
genre. J'ai un problme de bin packing rsoudre !

II.1.2 Dcoupe de bois
Un menuisier a reu une commande dun ensemble dtagres de tailles diffrentes. Dans le
but de rpondre cette commande au moindre cot, le menuisier voudrait utiliser le minimum
de planches possibles pour dcouper les rectangles ayant la mme largeur ncessaires pour
fabriquer les tagres. Il sagit dun problme de Bin-Packing une dimension.

II.1.3 Organisation dune fte
Jai une fte organiser, et je dois inviter un certain nombre de familles, chaque famille est
compose dun ou plusieurs personnes, Comme il ne me reste pas beaucoup dargents, je
cherche le minimum de tables utilis pour ce dner. Sachant quon ne peut pas sparer une
personne de sa famille.
9

II.2 Formulation mathmatique
La modlisation dun problme rel, consiste le rendre sous forme dun ensemble
dquations mathmatiques. Dans cette partie, nous prsentons la modlisation du problme
de Bin-Packing une dimension sous forme de programme mathmatique, dans la premire
partie, nous modlisons le problme dans le cas de plusieurs bins alors que la deuxime partie
sera consacre au problme dans le cas dun seul bin. Cest le cas du problme de sac dos.
La recherche du modle mathmatique dun problme revient identifier les composantes
suivantes :
1. Les variables
2. Lobjectif
3. Les contraintes
II.2.1 Bin-Packing avec plusieurs bins
Dans cette section, nous prsentons la modlisation du problme classique de Bin Packing
une seule dimension dans le cas de plusieurs bins. Pour cela, nous utilisons les notations
suivantes :
(i) Notations
Donnes :
n : le nombre dobjets ranger

: le poids de lobjet j

: la capacit maximale du bin i


Variables :



(ii) Contraintes
La premire contrainte que nous devons exprimer est le respect de la capacit maximale de
chaque bin, cela est donn par lingalit suivante :
10


La deuxime contrainte impose tous les objets d'tre rangs dans une bote et une seule :



Toute solution pour laquelle la famille d'quations prcdente est vrifie est dite ralisable.
(iii) Objectif
Nous rappelons que lobjectif du problme classique de Bin Packing est de minimiser le
nombre total des bins utiliss, ce qui revient minimiser la somme totale des variables y
i
.
Do la fonction objectif :



Le modle mathmatique scrit alors sous la forme suivante :






II.2.2 Bin Packing avec un seul bin
Dans cette section, nous traitons le cas particulier du problme de Bin Packing une
dimension o le nombre de bins est rduit 1. Le problme de Sac--dos est lune des
applications directes de ce type de problme ;
11

Il peut tre nonc comme suit : Etant donn plusieurs objets possdant chacun un poids et
une valeur et tant donn un poids maximum pour le sac. Quels objets faut-il mettre dans le
sac de manire maximiser la valeur totale sans dpasser le poids maximal autoris pour le
sac ?
Cela doit certainement vous faire rappeler de ces longues journes de prparation de valise,
avec cette contrainte chaque passager a le droit davoir avec lui un seul bagage cabine, dont
les dimensions maximales sont de 55 cm x 35 cm x 25 cm, avec
un poids qui ne doit pas dpasser 12 kg . La fameuse question qui
se pose chaque voyageur lors de sa prparation des bagages :
Quest-ce-que je dois prendre, si je ne doit pas dpasser les 12 Kg
?

Pour prsenter la formulation mathmatique de ce problme, nous utilisons les notations
suivantes :
(i) Notations
Donns :
P : la capacit maximal du sac
p
i
: le poids de lobjet i
w
i
: la valeur de lobjet i

Variables :
Dans ce problme il est question de dterminer quels objets faut-il mettre dans le sac, nous
allons utiliser dans ce cas une seule variable de dcision dfinie par :



(ii) Contraintes
La seule contrainte quil faut respecter dans le cas du problme de sac dos est que la somme
des poids de tous les objets dans le sac doit tre infrieure ou gale au poids maximal du sac
dos. Cest ce qui est exprim par lingalit ci-dessous.
12


(iii) Objectif
Contrairement au problme classique de Bin Packing o il est question de minimiser le
nombre de bins utiliss, le problme de sac dos a pour objectif de maximiser la valeur totale
des objets se trouvant dans le sac. Cela est traduit par la fonction objectif suivante :


Le problme mathmatique scrit donc sous la forme suivante :





III. Problme de Bin Packing deux dimensions (2BP)
Dans cette partie, nous dfinissons le problme de Bin-Packing en deux dimensions et
prsentons deux modles diffrents permettant de le modliser mathmatiquement.
III.1 Position du problme
Etant donn un ensemble dobjets rectangulaires caractriss par une hauteur et une largeur
donnes, le problme de Bin-Packing deux dimensions consiste les placer dans des boites
de tailles plus grandes appeles bins de telle sorte que les objets ne se chevauchent pas et
ne dpassent pas la taille fixe des bins. Lobjectif varie selon le problme tudi, dans
certains cas, il est question de minimiser le nombre total des bins utiliss alors que dans
dautres cas, le but est de maximiser le nombre dobjets mettre dans les bins.

13

Ce type de problme peut tre rencontr dans plusieurs applications industrielles telles que la
dcoupe de matire premire (bois, verre, aluminium) dans le but de minimiser les chutes,
dans le domaine de la logistique, on est par exemple amen minimiser le nombre de
containers ncessaires au transport de marchandise, etc.

Plusieurs types de Bin-Packing deux dimensions sont distinguer, nous citons par exemple :


Le problme de strip-packing 2SP : cest une variante trs tudie du Bin-Packing
en deux dimensions. On dispose dune liste A darticles et dun conteneur unique de
largeur W et illimit en hauteur. Lobjectif est de ranger tous les articles de A dans le
conteneur en minimisant la hauteur totale utiliser. Ce problme on le trouve rarement
dans la ralit, mais il parat parfois comme un sous-problme rsoudre pour trouver
la solution dun problme de 2BP.

Le problme de Subset Sum (la somme des sous-ensembles) : ce problme est dcrit
ainsi, tant donn un ensemble dentiers positifs S et une somme cible t, existe-t-il un
sous-ensemble de S dont la somme fait D ? Ainsi, pour chaque objet a
i
, la valeur
optimale de la fonction f(A, wj, D) est value. f(A, wi, D) reprsente la largeur
maximale infrieure ou gale D qui peut tre atteinte en plaant un ensemble
dobjets, y compris a
i
, lun ct de lautre dans un bin. Lvaluation de la fonction f
tient compte de toutes les permutations. Le problme de subset-sum nest pas,
proprement parlant, un problme de Bin-Packing mais il parat parfois comme un
sous-problme rsoudre pour obtenir des valuations par dfaut.

Le problme de knapsack (Sac--dos) : On dispose dun ensemble darticles, ayant
chacun une taille prcise, ainsi que la taille de bin. Chaque article possde en outre un
cot. Lobjectif est de ranger dans le bin (sac) un ensemble darticles qui maximise la
somme des cots associs sans dpasser la taille maximal du bin.
14

III.2 Modles Mathmatiques
Dans cette partie, nous dcrivons le modle mathmatique de quelques types de Bin-Packing
deux dimensions. Nous notons (

) les dimensions dun objet a


i
appartenant lensemble
A des rectangles ranger, et (W, H) les dimensions du bin B : B = (W, H).
Tout au long de cette section, nous considrons que nos objets sont tris par ordre dcroissant
par rapport leurs hauteurs.

III.2.1 Modle de Strip-Packing
Pour prsenter une formulation complte, nous devons noter que les objets de la liste A sont
placs successivement dans un conteneur de hauteur infinie, en le remplissant couche par
couche, formant ainsi des niveaux telle que, le 1
er
Objet placer dans chaque niveau est le plus
haut dans ce niveau car les objets sont tris par ordre dcroissant, on lappel lobjet qui
initialise le niveau

(i) Notations
Donns :
n : le nombre dobjets ranger
w
i
: la largueur de lobjet i
h
i
: la hauteur de lobjet i
W : la largeur du conteneur

Variables :



15




(ii) Contraintes
Dans ce problme nous disposons de plusieurs types de contraintes : Contrainte de rangement
dun objet, contrainte de disponibilit et contraintes de non-ngativit et dintgrit. Prenons
en considration tour tour chacune de ces contraintes.
- Contrainte de rangement dun objet : chaque objet de la liste doit tre rang une et une
seule fois dans le bin, on a deux possibilits : soit lobjet initialise le niveau soit il est
rang dans un niveau prcdant :


- Contrainte de disponibilit : le total des largeurs des objets misent sur chaque niveau
avec lobjet i ne doit pas dpasser la largeur disponible dans le bin :



- Contrainte de non-ngativit et dintgrit :


(iii) Objectif
Daprs la dfinition donne auparavant, lobjectif du Strip-Packing est de minimiser la
hauteur utilise dans le conteneur. La hauteur de chaque niveau est dfinie par la hauteur de
lobjet qui linitialise, si lobjet i initialise le niveau i (y
i
= 1) alors la hauteur de ce niveau est
h
i
, mais sil

ne linitialise pas (y
i
= 0) alors dans ce cas la hauteur de ce niveau sera 0. En
gnral la hauteur de chaque niveau est gale h
i.
y
i
, donc notre fonction objectif sera :


16

Le modle mathmatique scrit alors sous la forme suivante :





III.2.2 Modle de Bin-Packing
De manire formelle, les objets sont placs successivement, mais dans ce cas dans des bins de
largueur W et de hauteur H bien dfinies, en le remplissant couche par couche, formant ainsi
des niveaux tels que :

le 1
er
Objet plac dans chaque niveau est le plus haut dans ce niveau, on lappel lobjet
qui initialise le niveau.
le 1
er
niveau de chaque bin est le plus haut dans le bin, de mme ce niveau est dit le
niveau qui initialise le bin.








(i) Notation
Donns :

n : le nombre dobjets ranger
17

w
i
: la largueur de lobjet i
h
i
: la hauteur de lobjet i
W : la largeur du conteneur

Variables :




(ii) Contraintes
La premire contrainte que nous dcrivons est : chaque objet ne doit tre plac que dans un
seul niveau, ou il linitialise ou bien il est plac dans un niveau qui est dj initialis par un
autre objet. Cela est donn par la formule suivante :


La deuxime contrainte signifie que pour chaque niveau utilis on ne peut dpasser la largeur
d'un bin.


La troisime contrainte assure que chaque niveau utilis est rang exactement dans un seul bin
de mme, soit il initialise le bin ou bien il est rang dans un bin dj initialis par un autre
niveau,


18

Finalement la dernire contrainte assure que dans chaque bin utilis on ne peut dpasser la
hauteur maximal du bin.


(iii) Objectif
Lobjectif est de minimiser le nombre de bins utiliss par lutilisateur. On sait que chaque bin
est soit initialis par le niveau i ou vide, donc le nombre de bins utilis est :


Par suite, la fonction objectif sera exprime par :


Le modle mathmatique scrit sous la forme suivante :





19

III.2.3 Modle de Knapsack (Sac--dos)
Modlisation en utilisant une position relative des objets
Nous rappelons que le problme de sac--dos consiste ranger dans un seul bin, un ensemble
dobjets (ayant chacun une valeur et une taille prcise) qui maximise la somme des valeurs
associ sans chevauchement des objets les uns les autres, ni dpassement de la taille du bin,
de plus la rotation des objets est interdite.
Donnes :
n : le nombre dobjets
w
i
: la largueur de lobjet i
h
i
: la hauteur de lobjet i

: la valeur de lobjet i
W : la largueur du bin
H : la hauteur du bin

Variables :
(x
i
,y
i
) : les coordonnes du coin infrieur-gauche de lobjet i




20

(i) Contraintes
La 1
re
contrainte impose que chaque pair dobjet (i,j) slectionne est soit lun gauche de
lautre ; soit lun en dessous de lautre. Donc chaque paire dobjets ne peut sintersect dans
le rangement.



La 2
me
contrainte assure que si lobjet i est gauche de lobjet j alors on ne peut pas dpasser
la largeur du bin ;


La 2
me
contrainte assure que si lobjet i est au dessous de lobjet j alors on ne peut pas
dpasser la hauteur du bin ;


Finalement la 3
me
et la 4
me
contraintes imposent que les coordonns des objets ne peuvent
pas dpasser la taille du bin.



(ii) Objectif
Nous cherchons maximiser la valeur du sac, cest--dire rendre la somme des valeurs des
objets mis dans le sac aussi grande que possible. Nous crivons alors :






21

Le programme mathmatique scrit donc de la faon suivante :





Modlisation en utilisant la thorie des graphes :
Nous retrouvons dans la littrature une autre modlisation du problme de bin packing avec
un seul bin qui snonce comme suit : Est-il possible de placer un ensemble donn dobjets
dans un seul bin ? . Cette modlisation est base sur la thorie de graphes et a t propose
par Fekete & Schepers.
Soient deux graphe G
h
= (V, E
h
) et G
w
= (V, E
w
), avec V lensemble des sommets du graphe
dont chacun correspond un objet mis dans le bin, et E
h
(resp. E
w
) lensemble des artes du
graphe G
h
(resp. G
w
).
Les deux graphes sont construits de la faon suivante : une arte est rajoute dans G
h
(resp.
dans G
w
) entre deux sommets v
i
et v
j
si et seulement si les projections des objets a
i
et a
j
sur
laxe vertical (resp. horizontal) se chevauchent.

22

Pour quune solution associe un couple de graphes (G
h
, G
w
) soit ralisable, il suffit que les
trois conditions suivantes soient vrifies :



Dfinition
Un graphe est dit stable si et seulement sil est un graphe sans arte

Les deux premires conditions signifient que le rangement propos respecte la largeur et la
hauteur du bin quon ne doit pas dpasser, et la troisime condition signifie qu'il n'y a pas de
chevauchement entre deux objets quelconques rangs dans le bin.
23

Chapitre II : Mthodes de rsolution

Nous introduisons dans ce chapitre la dfinition dun problme doptimisation combinatoire,
nous dcrivons les diffrentes mthodes qui existent pour rsoudre ce type de problmes.
Enfin, nous prsentons une description dtaille de quelques mthodes heuristiques, exactes et
mthaheuristiques connues dans la littrature et appliques au problme Bin-Packing 1BP et
2BP.
I. Loptimisation combinatoire
Loptimisation combinatoire est une branche de la recherche oprationnelle, dans sa forme la
plus gnrale, un problme qui relve de loptimisation combinatoire scrit sous la forme
suivante :





Avec, opt signifie minimiser ou maximiser, et C un sous ensemble fini de

.
Un problme d'optimisation combinatoire (on dit aussi d'optimisation discrte) consiste
trouver dans un ensemble discret la meilleure solution ralisable (solution optimale).
Trouver une solution optimale dans un ensemble discret et fini est un problme facile en
thorie : il suffit d'essayer toutes les solutions, et de comparer leurs qualits pour voir la
meilleure. Cependant, en pratique, l'numration de toutes les solutions peut prendre trop de
temps. Or, le temps de recherche de la solution optimale est un facteur trs important et c'est
cause de lui que les problmes d'optimisation combinatoire sont rputs si difficiles. De plus,
comme l'ensemble des solutions ralisables est dfini de manire implicite, il est aussi parfois
trs difficile de trouver ne serait-ce qu'une solution ralisable.
De nombreuses mthodes de rsolution ont t dveloppes en recherche oprationnelle (RO)
et en intelligence artificielle (IA). Ces mthodes peuvent tre classes sommairement en deux
grandes catgories : les mthodes exactes (compltes) qui garantissent la compltude de la
24

rsolution et les mthodes approches (incompltes) qui perdent la compltude pour gagner
en efficacit.
Les mthodes exactes ont permis de trouver des solutions optimales pour des problmes de
taille raisonnable. Malgr les progrs raliss (notamment en matire de la programmation
linaire en nombres entiers), les mthodes exactes rencontrent gnralement des difficults
face aux applications de taille importante, le temps de calcul ncessaire pour trouver une
solution risque d'augmenter exponentiellement avec la taille du problme.
Contrairement aux mthodes approches, elles constituent une alternative trs intressante
pour traiter les problmes d'optimisation de grande taille si l'optimalit n'est pas primordiale.
En effet, ces mthodes sont utilises depuis longtemps par de nombreux praticiens.
II. Mthodes exactes
Parmi les mthodes exactes, on trouve la plupart des mthodes traditionnelles (dveloppes
depuis une trentaine d'annes) telles la mthode du Simplex quon utilise souvent pour
rsoudre des programmes linaire en nombres rels, on trouve aussi la procdure de
sparation et valuation (PSE) ou en anglais Branch & Bound qui est trs efficace dans le cas
dun programme linaire en nombres entiers.
II.1 Mthode de Branch & Bound
II.1.1 Principe
La technique du Brunch & Bound est une mthode algorithmique classique pour rsoudre
un problme doptimisation. Il sagit de rechercher une solution optimale dans un ensemble
de solutions ralisables, cest--dire quil consiste chercher la meilleure solution parmi
toutes les solutions possibles. Cette mthode repose dabord sur la sparation (brunch) de
lensemble des solutions en sous-ensembles plus petits, puis lexploration de ces solutions en
utilisant une valuation optimiste (bound) pour trouver la meilleure dentre eux.
II.1.2 Fonctionnement
La dnomination sparation et valuation (B&B) recouvre deux ides :
1. Sparation : permet dnumrer intelligemment toutes les solutions possibles, pour
dcrire cette opration il suffit de dire comment on divise un ensemble en sous-
25

ensembles. pour cela nous utilisons un arbre de recherche constitu par des nuds,
des arcs et ils sont repartis en niveaux, telle que :

chaque nud reprsente une tape de construction de la solution, ils prennent soit
1 ou 0
chaque arc reprsente les choix faits pour construire la solution

Figure I.1.2
La figure I.1.2 reprsente une partie de larbre de recherche.
Larbre de recherche commence par un seul nud de niveau 0 appel racine de larborescence
o aucune dcision na t prise, pour construire le 1
er
niveau on a deux possibilit soit que x
1

prend la valeur 1 soit 0, donc on aura deux sommets dans ce niveau, de la mme manire pour
construire le niveau 2, on rpte la mme procdure sur chacun des nouveaux nuds.
26


Figure I.1.2.2
Les nuds en rouge reprsentent un cas impossible cest--dire un cas o au moins une
contrainte nest plus vrifie, il nest donc pas ncessaire de dvelopper cette tape. Les
nuds en bleu sont des nuds o les contraintes du problme jusqu prsent sont tous
vrifies.
la fin de lalgorithme, il suffit de calculer la valeur de la fonction objectif pour chacune des
nuds feuilles, et de prendre la solution avec la plus grande valeur. Mais supposons que le
nombre de niveaux est trs grand, dans ce cas cette procdure ne sera pas trs pratique, car
plus la taille de larbre augmente plus le nombre de feuilles augmente rapidement. On parle
alors de croissance exponentielle.
Pour cela on utilise des techniques pour parcourir ce type darbre afin de diminuer la taille de
larbre et daugmenter la rapidit.
Un lment essentiel dans la mthode de B&B est le calcul de bornes, infrieures et
suprieures, de la fonction objectif.
une borne infrieure est une valeur minimum de la fonction objective. Autrement dit,
cest une valeur qui est ncessairement infrieure la valeur de la meilleure solution
X
3
=1 X
3
=1
X
1
=0 X
1
=1
X
3
=0
X
3
=1
X
3
=0
X
3
=0
X
2
=1 X
2
=0
X
2
=1
La racine
X
3
=0
X
2
=0
X
3
=1
Niveau 0
Niveau 1
Niveau 2
Niveau 3
27

possible. Dans notre cas, une solution ralisable quelconque fournit une borne
infrieure.
une borne suprieure est une valeur maximale de la fonction objective calcul en
tous point de larbre elle est gale a la somme de toutes les valeurs de tous les objets
dj mis dans le sac plus la somme des valeurs des objets restants dont on ne sait pas
encore sils seront dans le sac.
Nous allons voir maintenant lutilit de ces bornes. Supposons que la borne infrieure soit
initialise par lalgorithme vu prcdemment, et pendant la recherche chaque nud on
calcul la borne suprieur de ce nud, Si jamais, un nud donn, la valeur de la borne
suprieure est infrieure la valeur de la borne infrieure, alors il est inutile dexplorer les
nuds descendants de celui-ci. On dit quon coupe larbre de recherche.
Remarque : la valeur de la borne infrieure peut tre actualise lorsquest trouve une
solution ralisable qui possde une valeur plus grande.
III. Mthodes approches
Dans les problmes difficiles, comme le cas du problme de bin-packing, il est souvent
intressant dappliquer des heuristiques qui donnent des solutions de bonne qualit dans un
temps raisonnable.
Dans cette section, nous dcouvrons quelques heuristiques proposes pour le 1BP, elles seront
aussi utilises par la suite pour la rsolution de 2BP.

III.1 Le cas 1BP
Dans cette section, nous dcrivons quelques heuristiques proposes pour le problme de Bin
Packing une dimension (1BP). Les stratgies utilises dans le 1BP ont inspir plusieurs
approches de rsolution proposes plus tard pour des problmes de bin-packing de dimension
plus leve.

III.1.1 Stratgie Next Fit (N.F)
On ne considre quun seul bin ouvert la fois, les objets sont traits dans un ordre donn, on
range les objets successivement dans le bin ouvert tant quil y a de la place, sinon on ferme le
28

bin en cours et on ouvre un nouveau bin. Le Next Fit Decreasing (N.F.D) consiste trier les
objets par ordre dcroissant de hauteurs et appliquer la stratgie N.F pour les ranger.

N.F N.F.D

III.1.2 Stratgie First Fit (F.F)
Au dpart, on ne considre quun seul bin, on range les objets successivement dans le ce bin,
mais quand il ny a plus de place dans ce premier bin pour ranger lobjet en cours, un
deuxime bin est alors ouvert mais sans fermer le premier.
Dans une tape intermdiaire i o on dispose de k bins ouverts, un objet a
i
en cours est rang
dans le bin du plus faible numro qui peut le contenir, dans le cas o aucun bin ne peut le
contenir un nouveau bin k+1 est alors utilis sans fermer les autres.
Lordre selon lequel on traite les objets est crucial pour la qualit de la solution. Un choix
heuristique consiste trier les objets par ordre dcroissant de hauteurs, on parle dans ce cas
dheuristiques First Fit Decreasing (F.F.D).
F.F F.F.D

29

III.1.3 Stratgie Best-Fit (B.F)
Comme dans la stratgie F.F, les algorithmes B.F laissent les bins toujours ouverts.
Cependant, le choix du bin dans lequel lobjet en cours va tre plac dpend des valeurs des
gaps (hauteurs non utilises) prsentes dans les bins. Un objet a
i
est alors plac dans le bin qui
prsente le moindre gap (ie hauteurs non utilises) parmi les bins qui peuvent le contenir.
On parle de Best Fit Decreasing (B.F.D) quand il sagit de trier les objets ranger dans lordre
dcroissant de hauteurs avant de les ranger suivant une stratgie B.F.
B.F B.F.D

III.1.4 Stratgie Worst-Fit (W.F)
Cest une variante du B.F, dans laquelle lobjet en cours est plac dans le bin qui prsente le
plus grand gap. Aussi surprenant que cela puisse paratre, cette stratgie peut produire de
meilleures solutions que BF sur certaines instances. Comme toutes les autres stratgies on peut
trier les objets par ordre dcroissant avant de les ranger on dit alors quon utilise une stratgie
Worst-Fit-Decreasing(W.F.D).

W.F W.F.D

30

III.2 Le cas 2BP
Le problme de Bin Packing deux dimensions est un problme classique pour lequel
plusieurs mthodes approches ont t proposes, ces mthodes sont en gnral des
heuristiques dont la plupart ont t inspires par les stratgies utilises dans le 1BP.
On peut diviser ces heuristiques en deux principales familles.
Les algorithmes en une phase
Les algorithmes en deux phases
III.2.1 Mthode en une phase
Les algorithmes en une phase consistent ranger les objets directement dans les bins. Parmi
les algorithmes qui procdent en une phase, nous trouvons :
(i) Finite First Fit (F.F.F)
Cette mthode consiste trier les objets par ordre dcroissant par rapport leurs hauteurs.
Lobjet en cours est plac dans le niveau le plus bas du premier bin qui peut le contenir, si
aucun niveau ne peut le contenir, un nouveau niveau est cre dans le bin ou bien on ajoute un
nouveau bin.
(ii) Bottom Left
Elle consiste placer un objet dans la position la plus en bas gauche. La procdure est
ritre pour chaque objet dans un ordre donn. On place lobjet en cours dans la 1
re
position
la plus bas puis la plus gauche possible pouvant la contenir, si on ne peut trouver cette
position, dans ce cas on ajoute un nouveau bin.
(iii) Algorithmes proposs pour le Strip Packing
Un petit rappel du problme de Strip Packing :
Nous avons une collection de rectangles et un conteneur 2D illimit en hauteur, lobjectif
est de ranger ces objets dans ce conteneur tout en mincissant la hauteur utilise.
Parmi les algorithmes existants pour le problme de Strip Packing nous trouvons :
Algorithme N.F.D.H (Next Fit Decreasing - Height)
Dans lalgorithme NFDH, les rectangles sont tris selon leur hauteur de faon
dcroissante.
31

On dpose en bas gauche le premier rectangle (le plus haut) qui dtermine la hauteur
de ltage (dfinitivement fix). Puis lon dpose cot de celui-ci un autre rectangle
(qui est le plus haut rectangle parmi le reste), et lon continue jusqu ce que le
rectangle courant ne rentre plus par sa largeur. Dans ce cas, nous dposons ce
rectangle au dessus gauche de ltagre en crant un nouvel tage.
Cette opration est ritre jusqu ne plus avoir de rectangle.
Algorithme F.F.D.H (First Fit Decreasing - Height)
Le principe de FFDH est trs similaire celui de NFDH. Cependant avant de placer
le prochain rectangle sur le niveau courant, nous essayons de le placer dans le niveau
infrieur (le plus bas possible), ayant suffisamment despace pour laccueillir. Dans
FFDH, nous pouvons donc revisiter un niveau infrieur, ce qui nest pas permis dans
NFDH.
Algorithme B.F.D.H (Best Fit Decreasing - Height)
Lalgorithme BFDH agit de la mme faon que FFDH, sauf que la recherche dun
emplacement du rectangle courant se fait de faon exhaustive sur les tagres. Ainsi
lespace horizontal perdu par le placement dun rectangle est calcul pour toutes les
tagres. Le rectangle est effectivement plac dans ltagre pour laquelle cet espace
perdu est minimal. On peut ainsi logiquement sattendre ce que cet algorithme soit
plus lent que FFDH qui place les rectangles dans la premire tagre trouve.






32

III.2.2 Mthodes en deux phases
Les Mthodes en deux phases fonctionnent de la manire suivante : La premire tape (strip
packing) consiste trier les objets suivant leurs hauteurs dcroissantes (Decreasing Height) et
les placer successivement dans un conteneur de hauteur infinie, en le remplissant couche par
couche, formant ainsi des niveaux dfinis par la hauteur du plus grand objet par couche, puis
ranger ces niveaux dans les bins.
(i) Floor ceiling (F.C)
La 1
re
phase consiste placer les objets par couche suivant la stratgie BFDH avec la
modification suivante : si un objet ne tient plus sur le floor (tage) dun niveau, il peut tre
plac, dcal droite, et accroch au ceiling (plafond) du niveau, ou on ajoute un nouveau
niveau.
Dans la 2
me
phase, les niveaux sont placs dans des bins finis selon une stratgie B.F.D, ou
bien en utilisant une mthode exacte.

33

(ii) Hybrid First Fit (H.F.F)
Dans une premire phase, lalgorithme BFDH est effectu pour crer une collection de
niveaux de diffrentes hauteurs. Puis dans la 2
me
phase, ils emballent les diffrents niveaux
dans les bins. Pour la rsolution du problme 1BP de la deuxime phase (ranger les niveaux
obtenus dans des bins finis) la stratgie FFD est employe.

IV. Mtaheuristiques : Algorithmes Gntiques
Depuis une dizaine dannes, des progrs importants ont t raliss avec lapparition dune
nouvelle gnration de mthodes approches puissantes et gnrales, souvent appeles
mthaheuristiques.
Une mthaheuristique est constitue dun ensemble de concepts fondamentaux, qui permettent
daider la conception de mthodes. Parmi les mthaheuristiques les plus connues, on trouve
les algorithmes volutionnaires ou les algorithmes gntiques, les algorithmes de colonies de
fourmis,
Dans cette section, nous nous intressons aux algorithmes gntiques, o nous prsentons le
principe ainsi que les diffrentes tapes de lalgorithme.
IV.1 Principe et droulement
Le principe de lalgorithme gntique est bas sur la thorie de Darwin qui pousse les
individus les plus adapts survivre le plus longtemps pour se reproduire. Un algorithme
gntique va faire voluer une population dans le but damliorer les individus.
Le droulement dun algorithme gntique peut tre dcoup en cinq parties :
1. La cration de la population initiale.
2. Codage des individus.
3. Evaluation des individus.
4. Slection
5. La reproduction
6. Retour ltape (3) jusqu larrt de lalgorithme.
Nous allons analyser plus en dtail le principe de fonctionnement tape par tape.
34

IV.2 Codage
Le codage consiste reprsenter chaque solution du problme sous forme dun individu.
Chaque individu de la population est cod par un chromosome ou plusieurs chromosomes,
chaque chromosome comportant plusieurs gnes (le nombre de gne est gal au nombre
objets).
Il existe 3 diffrents choix de codage :
Codage binaire :
Chaque chromosome est reprsent par une chane de bits (pouvant prendre
comme valeur 0 ou 1)
Codage caractres multiples :
Chaque chromosome est reprsent par une suite numrique ou de caractres.
Codage sous forme darbre :
Ce codage en structure arborescente part dune racine, partir de laquelle peuvent
tre issus un ou plusieurs fils. Larbre se construit alors au fur et mesure, en
ajoutant des branches chaque nouvelle gnration, Un des avantages est que ce
codage peut tre utilis dans les cas o les solutions nont pas de taille finie. En
revanche, les solutions peuvent parfois tre difficiles interprter, surtout
lorsquon se retrouve avec des arbres de taille trs importante.
IV.3 Cration de la population initiale
La population initiale sera cre de manire alatoire condition que chaque individu de la
population cre soit une solution du problme. La population doit tre non homogne et
servira de base pour les gnrations futures.

IV.4 Evaluation des individus
Ltape dvaluation consiste attribuer une valeur dadaptation ou une note chaque
individu selon sa performance. Il faudrait donc crer en fonction du problme tudi une
fonction dvaluation. Cette fonction, appele Fitness , permet de dterminer la qualit de
35

la solution reprsente par chaque individu, si la valeur numrique trouve est grande alors cet
lment a plus de chance dtre choisi lor de ltape de slection, notre but tant de
rechercher les meilleurs individus de la population.
IV.5 Slection
L'oprateur de slection va permettre d'identifier les meilleurs individus de la population
gnre et ainsi d'liminer les plus mauvais.
II existe plusieurs mthodes de slection, les plus couramment utilises sont les suivantes :
Slection par roulette (wheel)
Il faut imaginer une sorte de roulette de casino sur laquelle sont placs tous les
individus de la population, la place accorde chacun des individus tant en relation
avec sa valeur dadaptation. Ensuite, la bille est lance et sarrte sur un individu.
Les meilleurs individus peuvent ainsi tre tirs plusieurs fois et les plus mauvais ne
jamais tre slectionns.
Slection par rang
Ce mode de slection choisit toujours les individus ayant les meilleures notes
dadaptation, sans laisser intervenir le hasard.
Slection par tournoi
Cette slection consiste prendre alatoirement un nombre K dindividus et
choisir le meilleur dentre eux. On rpte se processus jusqu atteindre le nombre
ncessaire dindividus reproduire.
Slection dchantillonnage
Consiste associer chaque individu un segment de longueur relative sa note,
les individus slectionns sont choisis par un ensemble de points quidistants.
Slection Uniforme
La slection se fait alatoirement, uniformment et sans intervention de la valeur
d'adaptation. Chaque individu a donc une probabilit

d'tre slectionn, o P est


le nombre total d'individus dans la population.
36

IV.6 Reproduction
Ltape de reproduction est constitue de deux oprateurs permettant lexploration et la
diversit de la population. Ces oprateurs sont respectivement le croisement et la mutation.

IV.6.1 Croisement
Lorsque la slection est termine, on prend deux individus (parents) croiser pour obtenir
deux nouveaux individus quon appelle enfants.
Les individus enfants sont crs comme montr dans la figure suivante :








La premire tape consiste choisir un point au hasard qui va servir au point de croisement.
Le premier enfant est cr en commenant par la premire partie du parent 1 et en terminant
par la deuxime partie du parent 2. De mme pour le deuxime enfant, il est cr en copiant la
premire partie du parent 2 et la deuxime partie du parent 1.

Dans l'exemple montr sur la figure prcdente, nous n'avons choisi qu'un seul point de
croisement, mais il est frquent d'effectuer ce que l'on appelle le croisement points multiples
comme l'illustre la figure suivante :



Point de croisement




Croisement
Parent 1
Parent 2
Enfant 1
Enfant 2
37













Cet oprateur permet la cration de deux nouveaux individus. Toutefois, un individu
slectionn lors de la reproduction ne subit pas ncessairement laction dun croisement. Ce
dernier ne seffectue quavec une certaine probabilit appele probabilit de croisement. Plus
cette probabilit est leve et plus la population subira de changement. La probabilit de
croisement pc, est gnralement donne par le programmeur. Les valeurs gnralement
admises sont comprises entre 0,5 et 0,9.

IV.6.2 Mutation
Le rle de loprateur de mutation est de modifier alatoirement, avec une certaine
probabilit, la valeur dun composant de lindividu. Dans le cas du codage binaire, chaque
gne est remplac ou permut avec un autre gne selon une probabilit P
m
. Tout comme
plusieurs lieux de croisement peuvent

tre possibles, nous pouvons trs bien admettre quune
mme chane puisse subir plusieurs mutations.

La probabilit de mutation Pm est gnralement faible puisquun taux lev risque de
conduire une solution sous-optimale.






Points de croisement
Parents
Enfants
Croisement
38

IV.7 Schma rcapitulatif
On peut rsumer lalgorithme gntique par le schma rcapitulatif suivant :
















39

Chapitre III : Application de lAlgorithme
Gntique aux problmes de Bin -
Packing

Dans ce chapitre, nous prsentons deux applications de lalgorithme gntique : dans la
premire application, nous traitons le problme de sac dos alors que la deuxime application
concerne le problme de Bin Packing dans le cas dune seule dimension. Nous avons
programm ces deux mthodes en utilisant le langage C, et avons cr une plateforme sous
Visual C++. Nous avons test ces programmes sur des donnes que nous avons gnres
alatoirement. Pour le premier problme trait, nous prsentons galement la mthode de
Brunch & Bound avec laquelle nous comparons les rsultats obtenus par lalgorithme
gntique.
La fentre principale de notre application nous donne le choix du problme rsoudre,
pour rsoudre le problme de sac dos, il suffit de cliquer sur le bouton 1, et pour rsoudre le
problme de Bin Packing, il suffit de cliquer sur le bouton 2.



1- Pour accder au programme de Sac -dos
2- Pour accder au programme de Bin-Packing


2 1
40

I. Application au problme de Sac dos une
dimension
Le problme du sac dos fait partie des problmes doptimisation combinatoire les plus
tudis ces cinquante dernires annes, en raison de ces nombreuses applications dans le
monde rel. En effet, ce problme intervient souvent comme sous-problme rsoudre dans
plusieurs domaines : la logistique comme le chargement davions ou de bateaux, lconomie
comme la gestion de portefeuille ou dans lindustrie comme la dcoupe de matriaux.

De nos jours le problme du sac dos se rsout de manire assez efficace. Les approches
proposes dans la littrature, pour rsoudre ce problme, sont des mthodes exactes capables
de rsoudre un problme loptimalit ou des heuristiques qui fournissent une solution
approche de bonne qualit dans des temps de rsolution trs raisonnables.

Pour rsoudre ce problme, nous proposons une application sous forme dun programme
en visual C++, qui tant donn la taille et la valeur dun ensemble dobjets en plus de la taille
maximale du sac, nous spcifie les objets slectionner.

Notre programme est bas sur lalgorithme gntique qui daprs notre observation, a
donn un rsultat proche de loptimalit. Ce rsultat a t compar avec le rsultat exact
trouv en appliquant la mthode de Branch & Bound.
I.1 Algorithme gntique
Lalgorithme gntique que nous avons appliqu est hybride. Il est bas sur des
oprateurs de croisement et de mutation spcifiques et bien adapts au problme de Bin-
Packing. Nous prsentons dans la suite la description de toutes les procdures composant cet
algorithme.

I.1.1 Codage
Dans le cas gnral, il ny a pas de reprsentation absolue. Lencodage se fait selon les
caractristiques du problme. Ainsi lencodage dun problme peut aller de la simple chane
binaire, un arbre en passant par les listes chaines.
41

Dans notre algorithme, nous utilisons un codage binaire. Nous reprsentons une solution
par une chane de bits, dont chaque lment reprsente un objet avec la notation
suivante :
1 si lobjet est mis dans le sac
0 sinon
1 0 1 0

Objet slectionn Objet nest pas slectionn
I.1.2 Slection
Loprateur de slection a pour mission de choisir dans la population prsente les futurs
parents ncessaires ltape de reproduction.
Dans notre algorithme, nous avons choisi dutiliser la slection uniforme, qui consiste
choisir alatoirement et uniformment les individus a crois.
I.1.3 Croisement
Le croisement des individus peut tre toute opration permettant dobtenir un nouvel
individu partir de plusieurs individus existants. Nous avons choisi deffectuer le croisement
un point en reprenant des parties de chaque individu parent pour crer un nouvel individu
enfant.
Exemple : Considrons les deux parents suivant :

P1 1 0 1 1 0

E1 1 0 1 0 0

P2 0 1 1 0 0 E2 0 1 1 1 0

Point de croisement

Dans certains cas, il se peut que le croisement fournis des enfants qui reprsentent des
solutions non ralisables pour notre problme, autrement dit, le poids total des objets mis dans
le sac dpasse sa capacit. Pour remdier cela, nous proposons un croisement un point
avec correction. La dmarche de ce codage est la suivante :

Nous commenons par copier la premire partie du parent 1 dans le premier enfant, et on
complte par les gnes du deuxime parent en calculant chaque insertion le poids total des
42

objets. Si lajout dun nouvel objet on dpasse la capacit du sac, alors dans ce cas, le gne
correspond prendra la valeur 0. Et inversement pour le deuxime enfant.

I.1.4 Mutation
La mutation dun individu peut tre toute opration alatoire. On peut par exemple permuter
un ou plusieurs couples dobjets, ou tout simplement changer la valeur dun ou plusieurs
gnes. Dans notre algorithme, nous utilisons un type de mutation, qui consiste changer
alatoirement les gnes des individus ayant une probabilit de mutation trs faible (infrieur
0,2).

I.2 Plate forme
La plate forme que nous prsentons a t ralise sous Visual Basic. Cette boite de dialogue
est compose de plusieurs lments que nous dcrivons un par un.



1- Champ consacr la saisie de la taille de lobjet
2- Champ consacr la saisie de la valeur de lobjet
3
2 1 4
6
5 7
43

3- La liste des objets, elle contient deux colonnes (la colonne gauche : pour afficher les tailles
des objets, alors que la colonne droite est pour leurs valeurs)
4- Pour ajouter un autre objet la liste
5- Champ consacr la saisie de la taille, la capacit du sac
6- Pour enregistrer les donnes dans un fichier, afin de trouver une solution approch au
problme
7- Pour afficher le rsultat donn par le programme

I.2.1 Les tapes de lexcution
Etape 1 - Donner la taille de lobjet dans le champ 1 nomm Taille de lobjet , puis juste
cot dans 2, le champ suivant Valeur de lobjet , donner la valeur du mme objet.

Dans cet exemple nous avons donn un objet qui possde une taille de 3 est une valeur de 4.
Etape 2 - Cliquer sur le Ajouter . Dans ce cas, lobjet saisi sera afficher dans la liste des
objets, pour ajouter un autre objet il suffit de rpter la mme opration en revenant la
premire tape,


Etape 3 Une fois que la saisie de tous les objets est termine, il faut saisir la capacit
maximale du sac ne pas dpasser.

Etape 4 Appuyer sur le bouton Enregistrer , pour lancer la recherche de la solution, cela
se fait dans un autre programme alors une autre fentre (noir) souvrera.

44



Etape 4 - Attendre jusqu se que le message suivant Cliquer sur rsultat pour afficher le
rsultat saffichera lcran.

Etape 5 - Pour afficher le rsultat, il suffit de cliquer sur le bouton Rsultat

et un fichier texte souvrera, qui affichera seulement les objets slectionns sous la forme
suivante : P(V), o P est le poids de lobjet et V sa valeur.
Exemple :

45


Cest--dire que dans notre sac on a deux objets :
le 1
er
est lobjet qui possde une taille de 5 et une valeur de 8
Le 2
me
est lobjet qui a la taille 2 et la valeur 3

I.2.2 Exemple dexcution
Considrons le problme de Sac--dos suivant, o les poids et les valeurs des objets sont
prsents au tableau suivant :
1 2 3 4
Pi (poids) 3 1 2 4
Wi (valeur) 7 2 1 6

Avec P = 6 le poids maximal du sac

Pour vrifier la performance de ce programme, nous allons comparer ce rsultat trouver par ce
dernier, avec le rsultat exact quon trouvera en appliquant la mthode de Branch & Bound.
I.3 Brunch&Bound
Branch and Bound est un terme anglais qui veut dire Sparation et Evaluation , cest
une mthode gnrique de rsolution de problmes d'optimisation et plus particulirement
d'optimisation combinatoire ou discrte. C'est une mthode d'numration implicite, toutes les
solutions possibles du problme peuvent tre numres, mais l'analyse des proprits du
problme permet d'viter l'numration de larges classes de mauvaises solutions.
46

En effet, Dans les mthodes par sparation et valuation, la sparation permet d'obtenir
une mthode gnrique pour numrer toutes les solutions tandis que l'valuation vite
l'numration systmatique de toutes les solutions.
Etape 1 : Sparation (Cration de larbre de recherche)
Notre arbre de recherche sera reprsent de la faon suivante :
Chaque niveau correspond un objet
Chaque nud reprsente une tape de construction de la solution
Chaque arc reprsente les choix faits pour construire la solution (arc peut prendre la
valeur 1 si lobjet est slectionn, et 0 sinon)












Etape 2 : parcours de larbre et le calcul des bornes (la borne infrieur est initialise par 0
bi=0),
Itration 1 :




{1,1,1} {1,1,0} {1,0,1} {1,0,0} {0,1,1} {0,1,0} {0,0,1} {0,0,0}
{1,1} {1,0} {0,1} {0,0}
{1} {0}
{1,1,1,0} {1,1,0,0} {1,0,1,0} {1,0,0,0} {0 1,1,0} {0,1,0,1} {0,1,0,0} { 0,0,1,1}{0,0,1,0} {0,0,0,1}{0,0,0,0}
16>bi
47

La borne suprieure des deux nuds est suprieure la borne infrieure, et on passe au sommet fils, et
on refait le mme travail,
Itration 2 :






Et on continue de la mme manire jusqu se quon arrive un nud feuille












La borne suprieur de ce nud feuille est suprieur la valeur de la borne infrieur actuelle, donc la
valeur de la borne infrieur devient 10 (b
i
=10)




16
16>bi
16
16
16
10
48

Itration k :












La solution optimale est {1, 1, 1, 0}
Nous remarquons que les rsultats trouvs sont les mmes, de l on peut dire que notre
objectif est atteint.
II. Application au problme de Bin Packing une
dimension
De nos jours le problme du Bin - Packing une dimension, se rsout de manire assez efficace.
Beaucoup dapproches sont proposes dans la littrature, pour rsoudre ce problme, que se soit
des mthodes exactes capables de fournir une solution optimale du problme, ou des heuristiques
qui fournissent une solution approche de bonne qualit dans des temps de rsolution trs
raisonnables.
Pour rsoudre se type de problme, nous proposons une application sous forme dun
programme en visual C++, qui tant donn la taille dun ensemble dobjets et la taille des
bins, spcifie le rangement quil faut adopter.
Notre programme est une gnralisation du problme de sac dos dfini dans la
premire partie de ce chapitre, les objets seront rangs dans les bins en deux tapes :
1
re
tape : On cherche la solution du problme de sac dos suivant :
16 9<bi
16 14
16 15>bi 14>bi 13>bi
10 8<bi 8<bi 7<bi
Alors il est inutile dexplorer les
nuds descendants de celui-ci
49

Etant donn un ensemble dobjets qui possdent des tailles diffrentes et des bins de
tailles identiques, notre objectif est de mettre le maximum dobjets possible dans un bin,
autrement dit, on veut maximiser lespace utilis dans chaque bin. Dans ce cas la valeur
de chaque objet est sa taille.
2
me
tape : Lorsquon trouve le rsultat de ce problme en utilisant le programme
prcdant, on range les objets slectionns dans le bin en cours et on supprime ces objets
de la liste initiale des objets. On revient ltape prcdente jusqu se que tous les objets
de notre liste soient rangs dans les bins.

De manire formelle notre programme est en visual C++, il est bas sur les algorithmes
gntiques, qui donnent des rsultats approchs.
II.1 Plat forme
La plate forme que nous prsentons a t ralise sous Visual Basic. Cette boite de dialogue
est compose de plusieurs lments que nous dcrivons un par un.

1- Pour donner la taille de lobjet
2- Pour ajouter lobjet dans la liste
3- La liste des objets
4- Pour supprimer un objet
5- Pour donner la taille du bin
6- Pour enregistrer les donnes
3
1 2
4
6
5
7
50

7- Pour afficher le rsultat
II.2 Exemple dexcution :


51


Conclusion gnrale


Dans ce mmoire nous avons trait le problme de bin-packing une et deux
dimensions. Limportance de ce problme rside dans le domaine vaste de ses applications
concrtes en transport, logistique et dans le monde industriel.

Nous avons tudi quelques modles mathmatiques correspondant ces problmes, puis
un aperu de certains travaux aboutis de la littrature, sur les problmes de Bin Packing
une et deux dimensions. Nous avons ensuite adopt deux mthodes de rsolution du
problme de bin packing une dimension. La premire mthode est une application des
algorithmes gntiques qui est une mthode approche alors que la deuxime est une mthode
exacte savoir la mthode de Brunch & Bound.

Nous avons appliqu et programm notre approche gntique en Langage C et nous
avons cr deux plates formes sous Visual Basic permettant la rsolution du problme de
Sac-dos o lobjectif est de maximiser la valeur totale des objets mis dans le sac tout en
respectant la capacit du sac, et nous avons gnralis ce programme de Sac dos afin de
rsoudre des problmes de Bin Packing.



52


53

BIBLIOGRAPHIE

1- BAUMGARTNER Lukas, Verena Schmid, and Christian Blum. Solving the Two-
Dimensional Bin Packing Problem with a Probabilistic Multi-start Heuristic. 2011
2- BEN MOHAMED Ahmed. Rsolution approche du problme de bin-packing, 2009
3- YOUSSEF BENADADA Ahmed EL HILALI ALAOUI. Programmation mathmatique
de la modlisation la rsolution, 2012
4- BENCHEIKH Ghizlane. Problmes de transport Modlisation et rsolution par
mthaheuristiques. 2009
5- DREO Johann PTROWSKI Alain SIARRY Patrick TAILLARD Eric.
Mtaheuristiques pour loptimisation difficile
6- EL HAYEK Joseph, Le problme de bin-packing en deux-dimensions, le cas non-orient
: rsolution approche et bornes infrieures, 2007
7- EL HILALI ALOUI Ahmed EL KHOUKI Fatima BENCHEIKH Ghizlane.
Introduction la recherche oprationnelle. 2009
8- ESSEGHIR LALAMI Mohammed. Contribution la rsolution de problmes
doptimisation combinatoire : mthodes squentielles et parallles. 2012
9- GUERET Christelle PRINS Christian SEVAUX Marc. Programmation linaire.
10- JONCOUR Cdric. Problmes de placement 2D et application lordonnancement
modlisation par la thorie des graphes et approches de programmation mathmatique,
2010
11- KEBE Mohamed. Rsolution d'un problme de tournes de vhicules avec contraintes
de placement, 2009
12- KHANAFER Ali. Algorithmes pour rsoudre des problmes de Bin Packing mono- et
multi objets. 2010
13- Andrea LODI, Silvano MARTELLO, Daniele VIGO. Recent advances on two-
dimensional bin packing Problems.2001
14- Lodi Andrea. Algorithms for Two-Dimensional Bin Packing and Assignment Problems.
1999
15- LODI Andrea, Silvano MARTELLO, Daniele VIGO. Models and Bounds for Two-
Dimensional Level Packing Problems,
54

16- MINOUX Michel. Progammation mathmatique thorie et algorithmes, 1991
17- PUCHINGER Jakob and R. Raidl GUNTHER. Models and algorithms for three- stage
two dimensional Bin Packing. 2004
18- WATTEBLED Pamla, Rsolution heuristique dun problme de conception de modules
automatiques de rangement, 2010