• Aucun résultat trouvé

Dans ce chapitre, nous avons étudié un nouveau problème de couverture des sommets d’un graphe par des arborescences, sous contraintes de capacité. Nous avons proposé plusieurs modèles mathématiques.

Chaque modèle permet de résoudre la plupart des instances considérées, mais les performances varient selon le type d’instance à résoudre. L’algorithme de branch-and-bound proposé semble le plus efficace en moyenne lorsqu’il est utilisé comme oracle pour résoudre le problème de pricing de la formulation étendue.

En revanche, la méthode d’agrégation de contraintes proposée ne permet pas d’ac-célérer les performances de l’algorithme de branch-and-price, même si elle mène à une diminution du nombre d’itérations dégénérées. Cela est dû essentiellement à la complexité du sous-problème de désagrégation dual, pour lequel l’investissement en temps de calcul n’est pas compensé par les bénéfices obtenus grâce à la solution duale désagrégée et aux colonnes générées.

Chapitre 3

Minimisation de la somme des

rayons

Dans ce chapitre, nous présentons un problème de sectorisation que l’on modélise comme la recherche d’une couverture des sommets d’un graphe par des arborescences. Contrairement au chapitre précédent, le coût des secteurs est basé ici sur une distance maximale, à la manière du problème de p-centre. Nous présentons trois modèles de pro-grammation linéaire en nombres entiers, deux compacts et un basé sur une reformulation de Dantzig et Wolfe. Pour ce dernier, une attention particulière est portée au sous-problème de génération de colonnes, pour lequel nous proposons plusieurs algorithmes. Des résultats numériques sont rapportés sur des instances de la littérature, et des ins-tances réelles issues d’une application industrielle. Les expérimentations montrent que l’algorithme de branch-and-price est capable de résoudre le problème pour des instances beaucoup plus grandes que le modèle compact, qui reste limité à des tailles très faibles.

3.1 Introduction

Nous nous intéressons à un problème de couverture dans le contexte de la col-lecte de déchets. Notre problème appartient à la famille des problèmes de sectorisation. Comme dans tous les problèmes de sectorisation, on cherche à construire des secteurs "connexes", "compacts" et "équilibrés".

Nous reprenons ici la modélisation du chapitre précédent concernant les notions de connexité et d’équilibre. Ainsi, nous devons déterminer un centre j pour chaque secteur, ce centre étant choisi parmi les sommets couverts par le secteur. Pour être connexe, un secteur doit être une sous-arborescence de l’arborescence des plus courts chemins partants de j. Par ailleurs, tout secteur doit vérifier deux contraintes de sac à dos, chacune servant à représenter une capacité en terme de charge de travail (l’une pour le temps de traitement d’un secteur, et l’autre pour la quantité de déchets à y récupérer).

En revanche, nous adoptons une approche différente pour représenter la notion de compacité. La compacité peut être modélisée à la manière d’un problème de p-median [ZS83, MJN98], où l’on minimise la somme des distances de chaque sommets au centre

de son secteur ou bien comme un problème de p-centre [RMF09, EARMD14] où l’on

chapitre, la fonction objectif de notre problème se rapproche de la modélisation p-centre, puisque nous considérons pour chaque secteur la distance maximale entre tout sommet du secteur et son centre. Par la suite, la plus grande distance au sein d’un secteur sera appelée le rayon du secteur. Cependant, nous représentons le coût total d’une solution comme la somme des rayons de tous les secteurs qui la composent, au lieu de considérer uniquement le secteur de plus grand rayon. En ce sens, notre modèle peut être comparé à

ceux de [MCVO03] et [SdAFU14]. L’un des critères de [MCVO03] est la somme des rayons

relatifs de chaque secteur généré, tandis que [SdAFU14] utilise la somme des diamètres,

c’est-à-dire de la distance maximale entre toute paire de sommets du même secteur.

Dans notre problème, nous n’imposons pas de charge de travail minimale par secteur. Dans les instances issues de l’industrie que nous avons étudiées, l’équilibrage n’était pas une demande. Cependant, la charge de travail liée à chaque secteur est bornée supérieure-ment, il n’est donc pas possible de créer un secteur qui va produire une quantité de travail trop importante. Le nombre de secteurs est prescrit, et les secteurs sont soumis à deux contraintes de capacité. Par ailleurs, notre problème consiste à déterminer une couverture des sommets, et non une partition. Dans les cas où certains sommets appartiennent à beaucoup de plus courts chemins, cela favorise l’existence d’une solution réalisable.

Notre travail concerne des méthodes de résolution exactes basées sur la programma-tion mathématique pour résoudre notre variante du problème. On s’intéresse en parti-culier à une méthode de branch-and-price. La principale difficulté est la mise au point d’un oracle efficace pour le sous-problème associé à un centre, qui cherche à calculer le sous-arbre enraciné en ce centre qui minimise le coût réduit. Ce problème peut égale-ment être vu comme une extension du problème de sac-à-dos prenant en compte à la fois des contraintes de précédences, deux contraintes de capacités, et la distance au centre (rayon). Nous proposons plusieurs méthodes pour résoudre ce problème. La première re-pose sur la résolution pour chaque rayon possible d’une généralisation en deux dimensions

du branch-and-bound développé dans [CS98]. La seconde méthode repose sur la

résolu-tion d’un programme dynamique, basé sur l’algorithme proposé dans [CS97], prenant en

compte le rayon dans sa récurrence.

Nous validons numériquement nos différentes méthodes sur des instances tirées d’un cas pratique, ainsi que sur des jeux de données classiques issus de la littérature des pro-blèmes de tournées de véhicules. Nos expérimentations montrent que la formulation basée sur la génération de colonnes est bien plus performante que les formulations compactes. Utiliser le branch-and-bound basé sur l’énumération des rayons semble être la meilleure manière de résoudre les sous-problèmes de génération de colonnes mais le programme dynamique permet de résoudre plus rapidement le problème un nombre important de fois.

Dans lasection 3.2, nous présentons formellement le problème, ainsi que les différentes

formulations étudiées dans le document. La section 3.3 est dédiée au sous-problème de

génération de colonnes. Nous présentons nos résultats numériques dans la section 3.4

3.2. DESCRIPTION DU PROBLÈME ET FORMULATIONS

Documents relatifs