Problème de tournées de véhicules avec livraisons divisibles

47 7 0
Problème de tournées de véhicules avec livraisons divisibles

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Institut de la Francophonie pour l’Informatique MEMOIRE DE FIN D’ETUDES MASTER D’INFORMATIQUE Probleme de tournees de vehicules avec livraisons divisibles par NGUYEN Thanh Tuan Responsable de stage: Sophie MICHEL-LOYAL Ce stage a ete realise au sein de l’equipe REAOPT de l’INRIA Hano , 2008 A ma famille Remerciements Tout d’abord, je tiens a remercier ma famille qui m’a sou-tenu dans mes etudes et aussi dans mon stage Je tiens a remercier l’Institut de la Francophonie pour l’In-formatique qui me permet d’e ectuer mon Master et de faire ce stage en France Je tiens a remercier Madame Sophie Michel-Loyal pour m’avoir dirige dans mes travaux tout au long de mon stage Je la re-mercie de ses conseils et encouragements Je remercie tous les professeurs, les doctorants du Labora-toire Mathematique Appliquees du Havre, Monsieur Francois Vanderbeck, Cedric Joncour et les membres de l’equipe REA-LOPT - INRIA qui m’ont donne les meilleurs supports toute la duree de mon stage Merci en n a mes camarades de promotion 12 IFI qui m’ont donne les meilleurs sentiments dans mes etudes a l’IFI i Resum Dans le probleme de tournees de vehicules (Vehicle Routing Problem - VRP) une otte de vehicules est disponible pour servir un ensemble de clients avec la demande connue Chaque client est necessaire pour ^etre visite exactement par un vehi-cule et l’objectif est de reduire la distance totale voyagee Dans Le probleme de tournees de vehicules avec livraisons divisibles (Split Delivery Vehicle Routing Problem - SDVRP) la restric-tion que chaque client doit ^etre visite exactement une fois est supprimee, c’est-a-dire, des livraisons divisibles sont autorisees, plusieurs vehicules peuvent ^etre utilises pour satisfaire la de-mande de chaque client Dans cette memoire, nous presentons un etat de l’art de SDVRP et l’approche de la generation de colonnes pour le SDVRP qui a et implementee avec la plate- forme BapCod Des resultats numeriques montrent lSe cacit de la methode proposee Mots cles : Le probleme de tournees de vehicules, Le probleme de tournees de vehicules avec livraisons divisibles, Re-cherche Operationnelle, Generation de Colonnes ii Abstract In the classical Vehicle Routing Problem (VRP) a eet of capacitated vehicles is available to serve a set of customers with known demand Each customer is required to be visited by exactly one vehicle and the objective is to minimize the total distance traveled In the Split Delivery Vehicle Routing Pro-blem (SDVRP) the restriction that each customer has to be visited exactly once is removed, i.e., split deliveries are allo-wed, the demand of each customer can be ful lled by several vehicles In this report we present a survey of the state-of-the-art on the SDVRP and a column generation approach which is implemented for the SDVRP with the place-form BapCod Computational results show the e ectiveness of the proposed method Keywords: Vehicle Routing Problem, Split Delivery Vehicle Routing Problem, Operations Research, Column Genera-tion iii Table des matieres Remerciements Resum Abstract Table des matieres Table des gures Introduction 0.1 Equipe REALO pour l’Optimis Description du 0.2.1 0.2.2 0.2 Le probleme de tournees de vehicules avec livraisons divisibles 1.1 1.2 1.3 iv TABLE DES MATIERES Introduction De nition et fo Proprietes et c 1.3.1 1.3.2 1.3.3 1.3.4 Generation de Colonnes et Reformulations 2.1 Introduction 2.2 La generation 2.3 La reformulati 2.3.1 2.3.2 Implementation et Test 3.1 3.2 Conclusion et Perspectives Bibliographie A Un exemple d’instance B Codes de SDVRP dans BapCod BAPCOD - a g Implementatio 3.2.1 3.2.2 3.2.3 Table des gures 0.1 Un exemple du TSP 0.2 Un exemple du VRP 0.3 Un exemple du SDVRP 1.1 Un cycle 4-split 1.2 Un exemple de VRP et SDVRP 2.1 L’algorithme de generation de colonnes 3.1 Resultats 3.2 Le changement de borne duale dans l’instanc vi Introduction 0.1 Equipe REALOPT - Reformulations et algorithmes pour l’Optimisation combinatoire Ce stage a et realis au sein de l’equipe REAOPT de l’IN-RIA Presentation de l’equipe de recherche L’equipe REALOPT commune avec le LaBRI (CNRS/Universit de Bordeaux 1/ENSEIRB) et l’IMB (CNRS/Universites de Bordeaux et 2) L’objectif de l’equipe est de travailler sur la qualite des formulations de problemes d’optimisation combina-toire S’approche consiste a combiner des techniques avancees telles que l’approche polyedrale, l’approche de decomposition Lagrangienne, et les techniques venant de l’optimisation nonlineaire et de la theorie des graphes En partenariat avec des industriels, l’equipe REALOPT travaille sur des applications complexes en logistique (problemes de tournees), en plani ca-tion de la production et ordonnancement des t^aches, conception et gestion des reseaux et des horaires, et sur des problemes de decoupe et de placement TABLE DES FIGURES Axes de recherche Le projet de l’equipe rassemble des expertises complementaires en optimisation combinatoire : programmation en nombres entiers (etudes polyedrales, methode de "branch-and-price-andcut "), programmation quadratique ("semi-de nite-programming"), et theorie des graphes (modelisation dans les graphes et exploitation de resultats pour reduire l’espace des solutions) REALOPT developpe des solutions approchees aux problemes de grande taille et des heuristiques primales basees sur des approches de programmation mathematiques 0.2 Description du stage Le sujet du stage Le probleme du Voyageur de Commerce (Traveling Salesman Problem - TSP) est un des problemes d’optimisation combinatoire les plus connus, Il pose le probleme suivant; Avec seul vehicule partir d’un dep^ot, trouver un chemin de longueur totale minimale qui passe exactement une fois par chaque client et revienne au dep^ot (voir gure 0.1) Le probleme de tournees de vehicules (Vehicle Routing Pro-blem - VRP) est une version tendue du Probleme du Voyageur de Commerce, qui consiste visiter des clients partis d’un dep^ot et au moyen d’une otte de vehicules, avec un co^ut minimal (voir gure 0.2) Le probleme de tournees de vehicules avec livraisons divisibles (Split Delivery Vehicle Routing Problem - SDVRP) est un assouplissement du VRP ou il s’autorise que plusieurs vehicules peuvent ^etre utilises pour satisfaire la demande de chaque client (voir gure 0.3), si elle reduit les co^uts globaux Cette relaxa-tion est tres importante si la demande de chaque client peut TABLE DES FIGURES Chapitre Implementation et Test 3.1 BAPCOD - a generic Branch-AndPrice Code Le prototype BaPCod que l’equipe REALOPT-INRIA a developpe, automatise les manipulations qui sont demandees a l’utilisateur et propose un cur de methode commun a toutes les applications Cet algorithme generique integre les dernieres avancees en recherche dans le developpement de la methode de "branch-and-price" Le corps du logiciel BaPCod represente 32500 lignes de code C++ Par defaut, BaPCod fait appel a une soeur de programmation lineaire en variables entieres et continues ("MIPsolveur") pour resoudre le programme ma^tre et les sousproblemes issus de la decomposition Le logiciel est donc concu comme une couche au-dessus de la couche de base qu’est un "MIP-solveur" Le BaPCod peut ainsi ^etre interfac avec des "MIPsolveurs" commerciaux ou "open-source" Les in-terfaces actuellement disponibles sont : Cplex, Xpress-mp, Lp-Solve ("open-source") et GLPK ("open-source") L’interface avec CoinOR-CBC est a realiser Par ailleurs, les sous-problemes peuvent ^etre resolus par des algorithmes combinatoires specihttp://realopt.math.cnrs.fr/team/pmwiki.php/Project/Software 25 CHAPITRE IMPLEMENTATION ET TESTE ques Le BaPCod en o re certains dans sa distribution (essen-tiellement les soeurs pour les variantes du probleme de sac-a-dos) Precedentes tentatives ont et limitees a o rant fait "bo^teutil"a n de faciliter l’implementation d’algorithmes combinants "branch-and-price-and-cut" Avec lesquelles, l’utilisateur doit implementer trois fonctionnalites de base pour son application : la reformulation, la mise en place de la procedure de generation de colonnes et le schema de branches Autres disponibles codes qu’o rent que plus par defaut ont et developpes pour une classe speci que d’applications (comme le probleme de tournee de vehicule et ses variantes) Le prototype BaPCod est une implementation faite "bo^te-noire" qui ne necessite pas l’entree utilisateur et n’est pas une application speci que Les fonctionnalites sont les processus de : l’automatisation de la reformulation de Dantzig-Wolfe (l’utilisateur de nit un probleme de programmation entiere mixte en termes de variables et les contraintes, identi e les sous-problemes et peut fournir les associes solutionneurs si dispo-nible, mais il ne doit pas de nir explicitement la reformulation, la forme explicite des colonnes, leur co^ut reduit ou les limites de Lagrangien) (ii) une procedure de generation de colonnes par defaut avec l’initialisation du standard et stabilisation (il peut o rir une selection de solution pour le probleme ma^tre), et (iii) un schema de branches a par defaut (i) 3.2 Implementation Notre application a et implementee dans C y ++ utilisant BapCod avec Xpress-mp pour "MIP-solveur" Tous les codes y http://www.dashoptimization.com/ CHAPITRE IMPLEMENTATION ET TESTE ont et installes et les experiences ont et menees sur un ordi-nateur Linux avec un processeur d’Intel 3GHz 3.2.1 Codes Notre application a et implementee comme suit: { De nition et lisant de donnes : Les donnees sont les vehi-cules avec leurs capacites et les sommets (clients et dep^ot) avec leurs coordonnes et leur demande { Construire les classes de Variables et Contraintes Les variables dans formulation originale de SDVRP : xijk;aijk;yik;uik et tous ses contraints Dans cette application nous etu-dions le cas que aijk est entiere { Appel a des constructeurs de variables, des contraintes, le probleme ma^tre et le sous-probleme 3.2.2 Instances Les instances de SDVRP sont mises en forme (voir l’Appen-dice B) { nombre de clients, { vehicule capacite, { pour chaque client (ou dep^ot) : numero de client (ou de-p^ot), x, y, sa demande, { numero de dep^ot CHAPITRE IMPLEMENTATION ET TESTE Instances Clients test01 test02 test03 test04 Fig 3.1: Resultats 3.2.3 Resultats Le gure 3.1 a che la solution optimale (OptOri) obtenue dans le cas de la formulation originale et la borne duale obtenue dans le cas de la formulation de generation de colonne (DBGC), et le temps calcul pour instances pour lesquelles nous avons resoudre avec la formulation originale (ForOri) (Uti-liser un "MIP-solveur") et la formulation de generation de co-lonnes (ForGC) Comparer entre deux formulations, en general, l’approche de generation de colonnes prend moins temps pour calcul par rapport de la formulation originale Fig 3.2: Le changement de borne duale dans l’instance "test02" CHAPITRE IMPLEMENTATION ET TESTE Le gure 3.2 illustre les bornes duales obtenues dans l’instance test02 La borne duale est meilleur apres chaque iteration Pour reduire le temps calcul dans le cas d’approche de generations de colonnes, on peut resoudre le sous-probleme par un algorithme dynamique Ce sous-probleme peut voir comme un probleme elementaire de chemin plus court avec ressources contraintes (resource constrained elementary shortest path problem - RCESPP) Le RCESPP est le probleme de trouver le chemin du co^ut minimum a partir un sommet d vers un sommet t d’un graphe donne tels que le montant global des ressources consommees ne depasse pas certaines limites donnees; ressources sont consommees lors visitant sommets ou traver-sant ar^etes Les algorithmes du RCESPP sont developpes pour le VRP, ils ont et presentes dans les articles de D Feillet, P Dejax, M Gendreau et C Gueguen"[2] et P.A.Mullaseril, M.Dror et J.Leung [9] ces algorithmes peuvent ^etre adaptes pour resoudre le sous-probleme de SDVRP Conclusion et Perspectives Le but du stage etait d’etudier le SDVRP et implementer un algorithme de generation de colonnes sur la plate-forme Bap-Cod Nous avons introduit en premiere partie de ce rapport le SDVRP Ce probleme est un assouplissement du VRP, qui est un des problemes d’optimisation combinatoire les plus connus Ensuite, nous avons present la methode de generation de colonnes, et reformul le SDVRP sur cette methode En n, nous avons examin l’algorithme de generation de colonnes proposee pour le SDVRP avec la plate-forme BapCod Ces travaux du stage contribuent a donner une autre approche pour resoudre le SDVRP et evaluer cette approche par rapport de la formulation originale du SDVRP En travaillant, certaines de mes connaissances ont pu ^etre approfondies dans les domaines de lSoptimisation De plus, le stage m’a permis de mieux apprehender le travail de recherche, en synthetisant plusieurs articles et en proposant une nouvelle approche Cependant, il y a certains points a resoudre pour ameliorer notre travail: { Developper un algorithme du RCESPP pour resoudre le sous-probleme du SDVRP 30 CHAPITRE IMPLEMENTATION ET TESTE { Tester l’application sur des instances plus grandes du z TS-PLIB ou du SDVRPLIB { Comparer l’e cacit de l’approche de generation de colonnes avec les autres approches z http://www.uv.es/ belengue/SDVRP/ Bibliographie [1] Mingzhou Jin ; Kai Liu et Burak Eksioglu A column generation approach for the split delivery vehicle routing problem Operations Re-search Letters, (36):265{270, 2008 [cite a p 17, 21] [2] D Feillet ; P Dejax ; M Gendreau et C Gueguen An exact algorithm for the elementary shortest path problem with resource constraints: application to some vehicle routing problems Networks, 44:216U229, 2004 [cite a p 18, 29] } [3] Michel Gendreau ; Pierre Dejax ; Dominique Feillet et Cyrille Gueguen Vehicle routing with time windows and split deliveries Technical re-port, Laboratoire d’Informatique d’Avignon, 2006 [cite a p 18] [4] J.M.Belenguer ; M.C.Martinez et E.Mota A lower bound for the split delivery vehicle routing problem Operations Research, 48(5):801{810, Sep - Oct 2000 [cite a p 7, 16, 17] [5] Gerard Sierksma et Gert A Tijssen Routing helicopters for crew ex-changes on o -shore locations Annals of Operations Research, 76:261{ 286, 1998 [cite a p 7] [6] P.A.Mullaseril ; M.Dror et J.Leung Split-delivery routeing heuristics in livestock feed distribution The Journal of the Operational Research Society, 48(2):107{116, Feb 1997 [cite a p 7] [7] Claudia Archetti ; Martin W P Savelsbergh et M Grazia Speranza Worst-case analysis for split delivery vehicle routing problems Transportation science, 40(2):226{234, May 2006 [cite a p 6, 13, 14] [8] Claudia Archetti ; Martin W.P Savelsbergh et M Grazia Speranza To split or not to split: That is the question Transportation Research, E(44):114{123, 2008 [cite a p 7] [9] Giovanni Righini et Matteo Salani Symmetry helps: Bounded bidirectional dynamic programming for the elementary shortest path problem with resource constraints Discrete Optimization, 3:255{273, 2006 [cite a p 29] 32 BIBLIOGRAPHIE [10] C Archetti ; A Hertz et M.G Speranza A tabu search algorithm for the split delivery vehicle routing problem Transportation Science, (40):64{73, 2006 [cite a p 11, 16] [11] C Archetti ; R Mansini et M.G Speranza Complexity and reducibility of the skip delivery problem Transportation Science, (39):182{187, 2005 [cite a p 7, 10, 11] [12] Claudia Archetti ; Martin W.P.Savelsbergh et M.Grazia Speranza An optimization-based heuristic for the split delivery vehicle routing pro-blem to appear in Transportation Science [cite a p 16] [13] M Dror et P Trudeau Savings by split delivery routing Transporta- tion Science, (23):141{145, 1989 [cite a p 3, 6, 16] [14] M Dror et P Trudeau Split delivery routing Naval Res Logist, (37):101{116, 1990 [cite a p 3, 6, 7, 12] [15] M Jin ; K Liu et R.O Bowden A two-stage algorithm with valid inequalities for the split delivery vehicle routing problem International } Journal of Production Economics, (105):228U242, 2007 [cite a p 17] [16] Chi-Guhn Lee ; Marina A.Epelman ; Chelsea C.White et Ya-vuz A.Bozer A shortest path approach to the multiple-vehicle routing problem with split pick-ups Transport Research, Part B(40):265{284, 2006 [cite a p 17] [17] Francois Vanderbeck Column Generation, chapter Implementing Mixed Integer Column Generation Springer Science+Business Media, Inc., 2005 [cite a p 19] Appendices 34 Annexe A Un exemple d’instance NAME : B-n9-k7 TYPE : SDVRP DIMENSION : EDGE_WEIGHT_TYPE : EUC_2D CAPACITY : NODE_COORD_SECTION 133 230 311 403 515 636 755 863 951 DEMAND_SECTION 24 34 44 54 64 74 84 94 DEPOT_SECTION EOF 35 Annexe B Codes de SDVRP dans BapCod De nition de donnees /******************** Vertex in the graph ********************/ class Vertex { public: int vertexId; //identifiant of the vertex = a customer or a depot protected: double _xcoord; //coordonnes of the vertex double _ycoord; double _objCost; //dual cost int _demand; //demand: d_i vector _lengthCost; //length between two customers or depot double _dualValue; //initial dualValue bool _visit; public: Vertex(); Vertex(const int& vertexId, const double& xcoord, const double& ycoord, const double& objCost, const int& demand); Vertex(const Vertex& o); ~Vertex(){} }; /*******************************************************************/ //class sdvrpVertex, derivation de Vertex class sdvrpVertex: public NamedNumbered, public Vertex { static int _staticCounter; 36 ANNEXE B CODES DE SDVRP DANS BAPCOD public: sdvrpVertex(const int& vertexId, const double& xcoord, const double& ycoord, const double& objCost =0.0, const int& demand =0); ~sdvrpVertex(){} static void resetCounter(const int & nb = 0) { _staticCounter = nb; } static const int& nbVertex() { return _staticCounter; } std::ostream& print(std::ostream& os = std::cout) const; }; inline std::ostream& operator

Ngày đăng: 30/10/2020, 21:17

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan