bin packing

Upload: ghwitate

Post on 16-Oct-2015

276 views

Category:

Documents


1 download

DESCRIPTION

mémoire de fin d'étude, réalisé par Ghita Bencheikh étudiante à l'université Sidi Mohammed Ben Abdellah, de Fès au Maroc.

TRANSCRIPT

  • 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 yi.

    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

    pi : le poids de lobjet i

    wi : 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 ai, 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 ai, 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 ai 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 1er

    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

    wi : la largueur de lobjet i

    hi : 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-n gativit et dint grit :

    (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 (yi = 1) alors la hauteur de ce niveau est

    hi, mais sil ne linitialise pas (yi = 0) alors dans ce cas la hauteur de ce niveau sera 0. En

    gnral la hauteur de chaque niveau est gale hi. yi, 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 1er Objet plac dans chaque niveau est le plus haut dans ce niveau, on lappel lobjet

    qui initialise le niveau.

    le 1er 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

    wi : la largueur de lobjet i

    hi : 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

    wi : la largueur de lobjet i

    hi : la hauteur de lobjet i

    : la valeur de lobjet i

    W : la largueur du bin

    H : la hauteur du bin

    Variables :

    (xi,yi) : les coordonnes du coin infrieur-gauche de lobjet i

  • 20

    (i) Contraintes

    La 1re

    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 2me

    contrainte assure que si lobjet i est gauche de lobjet j alors on ne peut pas dpasser

    la largeur du bin ;

    La 2me

    contrainte assure que si lobjet i est au dessous de lobjet j alors on ne peut pas

    dpasser la hauteur du bin ;

    Finalement la 3me

    et la 4me

    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 Gh = (V, Eh) et Gw = (V, Ew), avec V lensemble des sommets du graphe

    dont chacun correspond un objet mis dans le bin, et Eh (resp. Ew) lensemble des artes du

    graphe Gh (resp. Gw).

    Les deux graphes sont construits de la faon suivante : une arte est rajoute dans Gh (resp.

    dans Gw) entre deux sommets vi et vj si et seulement si les projections des objets ai et aj sur

    laxe vertical (resp. horizontal) se chevauchent.

  • 22

    Pour quune solution associe un couple de graphes (Gh, Gw) 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 1er niveau on a deux possibilit soit que x1

    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

    X3=1 X3=1

    X1=0 X1=1

    X3=0 X3=1

    X3=0 X3=0

    X2=1 X2=0 X2=1

    La racine

    X3=0

    X2=0

    X3=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 ai 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 ai 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 1re 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 1re

    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 2me

    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 2me

    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 Pm. 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 1er

    est lobjet qui possde une taille de 5 et une valeur de 8

    Le 2me

    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 (bi=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 :

    1re tape : On cherche la solution du problme de sac dos suivant :

    16 9bi 14>bi 13>bi

    10 8

  • 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.

    2me 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