1 Introduction
1.1 Contexte de travail
Ce travail a été réalisé dans le cadre du module IRL (Introduction à la Recherche en Laboratoire)
au laboratoire G-SCOP. Le sujet a été proposé et encadré par Vincent Jost, chercheur dans G-
SCOP. Un étudiant en Master 2 en Recherche Opérationnelle, Léo Planche, a travaillé sur le
même sujet pendant ce semestre, mais pas toujours sur les mêmes questions.
1.2 Le problème
Le Pallet Loading Problem (dans la suite appelé PLP) est un problème d’optimisation qui consiste
à déterminer combien de petits rectangles égales de cotés entiers (l, w)peuvent être placés dans un
grand rectangle de cotés entiers (L, W ), sans superposition et sachant que les petits rectangles
ne peuvent être placés que verticalement ou horizontalement par rapport au grand rectangle.
Ainsi, une instance de PLP est définie par 4 entiers (L, W, l, w).
Dans quelques cas, le problème est facile à résoudre (si on a, par exemple, l=w). Quand
pgcd(l, w) = h, avec h6= 1, l’instance peut être réduite à (bL/hc,bW/hc, l/h, w/h)d’où on
conclut que les instances intéressantes à analyser ont toutes pgcd(l, w) = 1. Modèles pour
résoudre ce problème exactement avec la Programmation Linéaire en Nombres Entiers (PLNE)
peuvent être écrits, mais la complexité de la résolution est trop haute pour que cette méthode
soit utile pour les instances de grande taille. Toutefois, la PLNE peut être utilisé pour obtenir des
bornes supérieures sur la solution optimale des instances, et alors pour prouver que des solutions
trouvés par des heuristiques sont optimales. Il y a encore d’autres bornes utiles, souvent plus
faciles à calculer, comme celle de [1]. La complexité du problème est encore ouverte. Quelques
auteurs, comme [4] ont affirmé sans preuve qu’il est NP complet, tandis qu’autres comme [8] ce
montrent sceptiques, parce que chaque instance peut être codé sur 4 entiers, et les problèmes
NP complets classiques ont ses entrées définies sur une quantité non-bornée de nombres. Ainsi,
la recherche sur le PLP est principalement concentrée en trouver des heuristiques efficaces pour
résoudre des grandes instances et aussi en montrer que ces heuristiques ont des bonnes propriétés
théoriques.
La plupart des heuristiques pour le PLP est basée sur la structure des solutions, c’est-à-dire, la
façon que les petits rectangles sont organisés dans le grand rectangle. Une première idée consiste à
diviser le grand rectangle en deux sous-rectangles récursivement, résoudre ces sous-instances (par
exemple, par programmation dynamique) et après composer la solution de l’instance originale.
Cet algorithme est appelé 2-blocs ou guillotine. Autres algorithmes généralisent cette idée,
comme l’algorithme en 5-blocs et le L-blocs. Ce dernier a la particularité d’avoir toujours trouvé
la solution optimale pour les instances testées. Ainsi, c’est conjecturé que l’algorithme en L-blocs
résout optimalement le PLP. Ces algorithmes seront explorés en plus de détail dans ce rapport,
en montrant des résultats théoriques connus et en faisant une analyse des expériences numériques
qu’on a fait.
2 L’algorithme en 2-blocs
2.1 Fonctionnement
Si on ajoute au PLP la restriction de que les petits rectangles doivent être placés dans le grand
rectangle par coupes guillotine, c’est-à-dire coupes qui divisent un rectangle (L, W )en deux par-
allèlement à un de ses cotés, le problème est appelé Guillotine Pallet Loading Problem et, comme
2