Problème de chargement de camions-citernes Tank Truck Loading Problem Fabien Cornillier CENTOR, Université Laval fabien.cornillier@centor.ulaval.ca Fayez F. Boctor CENTOR, Université Laval Gilbert Laporte CRT, HEC Montréal Jacques Renaud CENTOR, Université Laval Journées de l optimisation 2005 - Montréal
Plan de la présentation Présentation du problème et de ses particularités Revue de la littérature Formulation mathématique Méthodes de résolution Génération des problèmes-tests Résultats numériques
Quelles demandes? Quelles quantités? Maximums demandés Minimums demandés
Un camion-citerne doit livrer T commandes dont on connaît : Présentation du problème Particularité le type de produit la quantité minimale demandée a t la quantité maximale demandée b t La citerne étant composée de C compartiments de capacités Q c, l objectif est d attribuer chaque commande à un compartiment et de déterminer pour chacune la quantité à livrer. Les camions-citernes ne disposent pas de débitmètre : la livraison d une commande consiste à décharger complètement un ou plusieurs compartiments par gravité on ne peut donc attribuer qu une seule commande par compartiment on ne peut livrer qu un maximum de C commandes Remarque : Une commande peut toujours être affectée à plusieurs compartiments
Présentation du problème Définition complète Le problème de chargement consiste à maximiser la quantité chargée dans le camion-citerne pour un ensemble de commandes donné : en respectant les bornes minimales et maximales des quantités demandées en respectant les capacités des compartiments en n allouant qu une seule commande par compartiment (absence de débitmètre) t : index des commandes (t {1,..., T}) ; c index des compartiments (c {1,..., C}) ; x t variable représentant la quantité livrée dans le réservoir t ; y tc, variable binaire égale à 1 si le compartiment c est utilisé pour livrer le réservoir t, 0 sinon.
Exemple 1-5 6-9 2-6? - 8 9 8 5 2
Exemple 1 Demandes classées en ordre décroissant des demandes minimales - 8 6-9 - 5 2-6 8 8 5 2 9 8 5 2 2
Exemple 1 Demandes classées en ordre décroissant des demandes maximales 6-9 - 8 2-6 - 5 9 8 5 X 9 8 5 2 X
Exemple 2 Les choses se compliquent... - 4 8-11 - 8? 9 6 5 2 On doit fractionner une demande
Autres problèmes de chargement à compartiments multiples Christofides, Mingozzi & Toth (199) Christofides, Mingozzi & Toth, Loading Problems (199) Un coût d utilisation est associé à chaque compartiment Un seul produit Un compartiment peut être partiellement déchargé Résolution du problème statique (chargement uniquement) et dynamique (chargement et déchargement) Objectif : minimiser le coût des compartiment utilisés Smith, A genetic algorithm approach to solving a multiple inventory loading problem (200) Problèmes multiproduits Coût de stockage associé à chaque produit Coût fixe associé à chaque livraison Les quantités demandées sont fixes et connues Objectif : minimiser la somme des coûts de stockage et de livraison
Christofides, Mingozzi & Toth, Loading Problems (199) Autres problèmes de chargement à compartiments multiples Un coût d utilisation est associé à chaque compartiment Un seul produit Smith (200) Un compartiment peut être partiellement déchargé Résolution du problème statique (chargement uniquement) et dynamique (chargement et déchargement) Objectif : minimiser le coût des compartiment utilisés Smith, A genetic algorithm approach to solving a multiple inventory loading problem (200) Problèmes multiproduits Coût de stockage associé à chaque produit Coût fixe associé à chaque livraison Les quantités demandées sont fixes et connues Objectif : minimiser la somme des coûts de stockage et de livraison
Autres problèmes de chargement à compartiments multiples Brown, Ellis, Graves & Ronen (198) Brown, Ellis, Graves & Ronen, Real-Time, Wide Area Dispatch of Mobil Tank Trucks (198) Résolvent un problème similaire dans lequel on cherche à minimiser les écarts des quantités chargées aux quantités commandées. Aucune méthode n est cependant décrite : "The model is solved by a highly specialized enumeration" La littérature ne traite pas de notre problème Aucune méthode existante n est adaptée
mandées en respectant les capacités des compartiments en n allouant qu une seule commande par compartiment (absence de débitmètre) Formulation mathématique de notre problème t : index des commandes (t {1,..., T}) ; c index des compartiments (c {1,..., C}) ; x t variable représentant la quantité chargée de la commande t ; y tc, variable binaire égale à 1 si le compartiment c est affecté à la commande t, 0 sinon. (TTLP) T Maximiser x t (1) t=1 s.c. : a t x r b t (t {1,..., T}) (2) x t C c=1 Q c y tc (t {1,..., T}) () T y tc 1 (c {1,..., C}) (4) t=1 y tc = 0 ou 1 (t {1,..., T}; c {1,..., C}). (5) (2) : Commandes minimales et maximales () : Limite de capacité des compartiments (4) : Pas plus d un produit par compartiment Étape 1 : Identification rapide de conditions suffisantes de non réalisabilité
Intérêt d une méthode de résolution On peut résoudre très simplement ce problème par programmation linéaire en nombres entiers (CPLEX, GLPK), mais dans un problème d approvisionnement des stations d essence, on doit résoudre des dizaines de millier de problèmes de chargement (de l ordre de 20000 pour un problème de 200 stations). Temps de résolution d un seul problème de chargement par PLNE comportant 5 commandes et 5 compartiments : jusqu à 0.025 secondes
Méthode de résolution Vue générale Problème de chargement Heuristique Solution réalisable? non oui Solution optimale? non Programmation linéaire en nombres entiers oui Solution optimale, si elle existe
Méthode de résolution Vue générale Étape 1 : Identification rapide de conditions suffisantes de non réalisabilité Étapes 2 : Fractionnement des commandes de quantité minimale élevée Étapes : Affectation des commandes dont la quantité minimale est non nulle (a t > 0) Étape 4 : Affectation des commandes restantes (a t = 0) Étape 5 : Tester l optimalité de la solution trouvée Étape 6 : Si aucune solution réalisable n est trouvée, ou si la solution trouvée ne satisfait pas au test d optimalité, résoudre le problème par un algorithme de programmation linéaire en variables entières On cherche, par cette séquence, à limiter le nombre de problèmes à résoudre par programmation linéaire en variables entières.
Méthode de résolution Algorithme Étape 1 Identification rapide de conditions suffisantes de non réalisabilité 9 0.00 6 0.00 4.12 2.8 2.24 j = 1 2 4 5 6 0.00 2.24 8.16 9 8 i = 1 6.00Table9.. Cost 6.00 of routes6.00 containing 8.06 stations 8.61 i and9.1 j 0.00 10.00 1.00 10.0 9 2.21 8.61. 10.90 11.00 9.00 10.60 0.00 11.50 4.00 4.00 6.4 6.8.84 8.00 8.6 j = 14 2 4 2.00 5 5.24 6 5.24 6.06 86.00 6.40 9 i = 1 6.005 9. 6.00 6.00 8.06 4.4 8.615.24 9.1 8.94 10.00.84 10.0.6 6 4.00 8.6 6.8 6.4 TAB. 21 Assignment of residual.21 demands 8.61. 10.90 11.00 9.00 10.60 11.50 4.00 4.00 6.4 6.8.84 4.4 8.00 6.4 8.6.6 4 8 4.00 5.24 Demands Compartments 2.00 5.24 5.24 6.06 6.00 6.40 9-11 9 8 4.4 5 6-8 4.4 5.24 8.94.84.6 6 2-4 4.00 8.6 6.8 6.4 0-1 1 2 2 4 5 6 8 9 1 1 9 0 5 4.4 6.4.6 8 2 4 0 2 4.00 5.24 0 9 9 1 4.4 4 0 5 1 5 2 4 5 4 6 2 8 90 1 9 6 0 5 4 2 2 4 0 2 11 1 05 Table 4. Tanks 8 in non-decreasing 9 order 1 Table 5. Sequential assignment of the4 a t and 9 compartments in non-decreasing 5 order of the Q c 4 Tanks 2 Compartment 0 0 5 6 4 2 (a Tanks Compartments 2, b 2 ) = (6, 1 2 4 5 11 8) 6 1Q 1 = 5 8 8 1 15.0 9.8 11.0 (a 9.0 M M 16. M (a 2, 9b 2 ) = (6, 8) 2 Q 1 = 4, b 4 ) = (, ) Q 2 = 11.2 8.6 M M M 11.0 M 1.0 (a (a.0.5 M 14.8 M 4, b 4 ) = (4, 4) Q 2 = 4, b 4 ) = (1, 1) Q = 2 4 9.0 (a 5.2 M 11.1 M (a 1, b 1 ) = (0, 1) 5 Q = 2 1, b 1 ) = (0, 1) Q 4 = 1 8.5 M 10.9 M 16 2 4 (a 5 6 8.0 10.4 8M (a, b ) = (0, 2) Q 1 15.0 4 = 1, b ) = (0, 2) 9.8 11.0 9.0 M M 16. 15.5 M.5 2 8 11.2 8.6 M M M 11.0 M.0 9 1.0.0.5 M 14.8 M 4 9.0 5.2 M 11.1 M Soit T +, le nombre de commandes telles que a t > 0 et T s le nombre de commandes devant être livrées par plus d un compartiment (a t > max{q c }). Si T + + T s > C ou t=1 T a t > C c=1 Q c, aucune solution réalisable n existe : arrêt. Dans l exemple : T + = 2 et T s = 0
i = 0 0.006.00.61 2.00 0.00 0.00 1.00 1.00 1.00 2.24 2.24 2.00 2.80.002.24.61.61 4.122.00 4.00 4.00 2.82.24 4.12 4.12 2.24 41 4 0.00.16 1.00 2.00 0.00 0.00 2.82.00 2.00.61 2.24 4.4.8.8 0.005.00.00.00 2.245.10.16.16.16 2 85 0.00.00.16 5.10 0.00 5.91.00.16 4.4 5.00.61 0.005.66.16 1.00 5 0.00 1.00 4.4.61.16 96 0.00 1.00 2.24 2.80.00.61 4.12 4.00 2.8 4.12 2.24 0.00 6 0.00 0.00 4.12 2.242.8.16 2.24 4Méthode de résolution0.00 2.00 2.24.8.00.16 8 0.00 1.00 5 j = 1 2 40.00 51.00 6 0.00 4.4 2.24.61 8.16.16 9 8 Algorithme 9 0.00 6 i = 1 6.00Table9.. Cost 6.00 of routes6.00 containing 8.060.00 stations 8.614.12 i and9.1 j 0.00 2.8 10.00 1.00 2.24 10.0 9 2.21 8.61. 10.90 11.00 j = 1 2 4 5 6 0.00 9.00 2.24 10.60 8.16 0.00 11.50 9 8 4.00 4.00 6.4 6.8.84 i 6.00Table9.. Cost 6.00 of routes6.00 containing 8.06 stations 8.61 i and9.1 j 0.00 8.00 10.00 1.00 8.6 10.0 9 Étape 2 j = 14 2 4 2.00 5 5.24 6 5.24 6.06 86.00 2.21 8.61. 10.90 11.00 9.00 10.60 0.00 6.40 9 11.50 i = 1 6.005 9. 6.004.00 6.00 4.00 8.06 4.4 6.4 6.8 8.615.24.84 9.1 8.94 8.00 10.00.84 8.6 10.0.6 Fractionnement 2 j = 14 6 des.21 commandes 2 8.61 4. 2.00 510.90 5.24 6 11.00 5.24 4.00 6.06 9.00 8.6 86.00 10.60 6.8 6.40 9 11.50 6.4 dont i = le 1 minimum 6.005 9. requis 6.00 est 4.00 élevé 6.00 4.00 8.066.4 4.4 8.615.24 6.8 9.1 8.94.84 4.4 10.00.848.00 6.4 10.0.6 8.6.6 24 68.21 8.61. 2.00 10.90 5.24 11.004.00 9.00 8.6 6.06 10.60 6.86.00 4.00 11.50 6.4 6.40 5.24 Trier 9 4.00 4.00 6.4 6.8.84 4.4 8.00 6.4 8.6.6 4.4 5 les commandes dans l ordre décroissant 4.4 5.24des a t 8.94 et l ordre.84 décroissant 6 des b.6 4 8 2.00 5.24 5.24 6.06 6.00 4.00 6.40 5.24 9 1 t 4.00 8.6 6.8 6.4 2 4 5 6 8 4.4 9 5 4.4 5.24 8.94.84.6 Trier les compartiments 1 9 0 dans 5 l ordre décroissant des capacités 4.4 6.4.6 68 4.00 8.6 6.8 6.4 2 1 2 4 0 4 5 6 2 8 4.00 9 5.24 Si pour un rang donné on a a 0 9 1 9 0 5 t > Q c, on fractionne 4.4la commande 6.4.6t 9 1 4.4 en deux 8 commandes 2 4 0 2 4.00 5.24 4 t et t avec a t = b0 t = Q c et a t 5 = a t Q0 c, 9 9 1 4.4 b t = b t 1 5Q c 2 4 5 4 6 2 8 90 4 0 5 Insérer 1 la9 6 1 5nouvelle 0 2 commande 5 4 t dans 5 la4 liste 6 triée4 des 2 commandes 2 8 90 2 4 0 2 11 1 05 Table Incrémenter 1 9 6 0 5 4 2 2 4. Tanks 8 le innombre non-decreasing T commandes 4 0 9 order 1 Table 5. Sequential 2 11 assignment 1 05 of Table Sithe une 4 4. a t commande Tanks 9 compartments 8 in non-decreasing ne peut pas non-decreasing of à l étape the4 5 a t 9 order être affectée 1 0 Table à un5. compartiment Sequential 5 assignment : aller order and 69 (MILP) compartments of the Q c in non-decreasing 56 order of the Q c 4 4 0 4 Tanks5 2 Compartments 0 Tanks 2 2 Compartments 0 6 (a Tanks Compartments 2 1 2 4 4, b 2 ) = (6, 5 2 11 8) 6 1Q 1 = 5 8 9 8 (a Tanks Compartments 2, b 2 ) = (6, 1 2 4 5 11 8) 6 1Q 1 = 1 15.0 9.8 11.0 (a 9.0 M M 16. 5 8 M 9 1. (a 2, 89 b 2 ) = (6, 8) 12 Q 15.0 1 = 4, b 4 ) = (, ) Q 2 = 9.811.2 11.08.6 (a 9.0 M M 16. M 1. (a 2 9 2 (6, 8) 2 Q 1 = 4, Mb 4 ) = M(, ) M Q 2 11.0 = M 11.5 11.2 8.61.0 (a (a M.0 M.5 M M 11.0 14.8 M M 11.5 11.4 4, b 4 ) = (4, 4) Q 2 = 4, b 4 ) = (1, 1) Q = 2 (a 1.0 (a.0.5 M 14.8 M 11.4 4 4 (4, 4) Q 2 = 4, b 4 ) = (1, 1) Q = 2 4 9.0 (a 5.2 M 11.1 M 9.4 (a 1, b 1 ) = (0, 1) 45 Q = 2 1, b 1 ) = (0, 1) Q 4 = 1 9.0 (a 5.2 M 11.1 M 9.4 (a 1 1 (0, 1) 5 Q = 2 1, b 1 ) = (0, 8.5 1) M Q 4 10.9 = 1 M.6 16 2 4 (a 8.5 M 8.0 10.9 10.4 M M.6 M (a 16 2 4 (a 5 6 8.0 10.4 8M M (a 9 ) (0, 2) Q 4 = 1, b ) = 5 (0, 2) 6 8 9, b ) = (0, 2) Q 4 = 1, b ) = (0, 2) 1 15.0 9.8 11.0 9.0 M M 16. 15.5 M.5 1. 12.6 15.5.5 12.6
Méthode de résolution Algorithme Étape Affectation des commandes dont le minimum est non nul On cherche à affecter les commandes pour lesquelles a t > 0 de manière à minimiser la capacité non utilisée du véhicule. Le coût d affectation e tc est infini si a t > Q c, et égal à max{0, Q c b t } sinon Si T < C, on crée C T commandes fictives t avec e tc = Q c pour tout c Si t est assigné à c et b t > Q c une nouvelle commande t est définie avec a t = 0 et b t = max{0, b t Q c } Pour chaque commande dont a t = 0, on définit une nouvelle commande avec a t = 0 et b t = b t
10.90 11.00 9.00 10.60 0.00 11.50 6.4 6.8.84 8.00 8.6 5 5.24 6 5.24 6.06 86.00 6.40 9 8.06 4.4 8.615.24 9.1 8.94 10.00.84 10.0.6 10.90 11.00 9.00 10.60 11.50 6.4 6.8.84 4.4 8.00 6.4 8.6.6 Algorithme 5.24 5.24 6.06 6.00 4.00 6.40 5.24 4.4 4.4 5.24 8.94.84.6 4.00 8.6 6.8 6.4 5 6 8 9 4.4 6.4.6 2 4.00 5.24 0 1 4.4 0 Étape - Exemple 5 5 4 6 2 8 90 4 2 2 11 1 05 1 Table 5. Sequential assignment 0 5 4 Tanks 2 Compartments 0 4 2 (a 2, b 2 ) = (6, 4 5 11 8) 6 1Q 1 = 5 8 9 (a 9.0 M M 4, b 4 ) = (, ) 16. Q 2 = M 1. M M M 11.0 M 11.5 (a.0 4, b 4 ).5= (1, 1) M 14.8 Q = 2M 11.4 9.0 (a 1, b 1 ) 5.2 = (0, 1) M 11.1 Q 4 = 1M 9.4 8.5 M 10.9 M.6 4 (a, b 5) = (0, 2) 6 8.0 10.4 8M M9 9.0 M M 16. 15.5 M.5 1. 12.6 M M M 11.0 M.0 11.5 M 11.5.0.5 M 14.8 M 11.4 9.0 5.2 M 11.1 M 9.4 sing order 8.5of the am t and compartments 10.9 M.6 8.0 10.4 M M lit the second demand as 15.5 it exceeds.5the 12.6.0 M 11.5 Méthode 4.00 8.6 de 6.8 résolution 6.4 w have five demands (Table 5). We then order to minimize the total unused ca- Demands 6-8 - 1-1 0-0! 6! 0! 4 0!! 2 1 0 2 1 Compartments 2 1
Méthode de résolution Algorithme - Étape 4 Affectations itératives des commandes restantes 0 0 6! 1-1 2 0! 0 1 Si tous les compartiments sont utilisés ou toutes les commandes ont été satisfaites, aller à l étape 5 Considérer toutes les commandes non satisfaites t dont 0-0 b t > 0 1 Affecter itérativement la commande dont la valeur b t est la plus élevée au compartiment de plus grande capacité et poser b t := max{0, b t Q c } Figure 1. Graph of the assignment problem Répéter l opération jusqu à ce que toutes les commandes maximales soient nulles ou que tous les compartiments soient utilisés. Table 6. Assignment of residual demands 0 2 2 1! Demands Compartments (a, b ) = (0, 2) Q = 2 (a 2, b 2) = (0, 1) (a 1, b 1) = (0, 1) (a 4, b 4) = (0, 0)
Méthode de résolution Algorithme Étape 5 Conditions suffisantes d optimalité de la solution trouvée La solution trouvée est optimale si au moins l une des conditions suivantes est satisfaite : 1. tous les compartiments sont pleins 2. toutes les commandes maximales b t sont satisfaites. T + = C 4. il existe une seule commande t telle que a t > 0 remplissant les C 1 compartiments les plus volumineux : T + = 1 et C 1 c=1 Q c < a t C c=1 Q c
Méthode de résolution Algorithme Étape 6 Résolution par programmation linéaire en nombres entiers Résoudre le TTLP par un algorithme de programmation linéaire en nombres entiers. Si on entre à l étape 6 par l étape 5 : on trouve toujours une solution optimale Si on y entre par l étape 2 : aucune solution réalisable n est garantie
Tests numériques Génération des problèmes Génération de problèmes de 5 commandes (T = 5) L algorithme de chargement a été testé sur 8000 instances de problèmes, 100 instances pour chacune des combinaisons de T +, R a et R b, avec : T + {1,..., 4} R a {0.1, 0., 0.5, 0., 0.9} R b {1.0, 1.5, 2.0, 2.5} et où T + : nombre de commandes dont a t est non nul R a : ratio de la somme des demandes minimales sur la capacité du véhicule (R a = T t=1 a t/ C c=1 Q c) R b : ratio de la somme des demandes maximales sur la capacité du véhicule (R b = T t=1 b t/ C c=1 Q c) Les tailles des compartiments sont fixées à 15000, 5500, 5500, 9000 et 14500.
Tests numériques Résultats avec Rb=1.5 Table. Computational results for the TTLP with R b = 1.5 T + Feasible Optimal Optimal Average R a %Capacity Seconds Seconds Steps 1-5 Step 1-5 proven Step 5 optimality gap Heuristic ILP 1 0.1 100 49 49 5.51 94.4 0.000 0.010 1 0. 100 100 96 0.00 99.98 0.000 0.00 1 0.5 100 66 66 1. 98.20 0.000 0.008 1 0. 100 66 66 1.41 98.56 0.000 0.004 1 0.9 100 100 100 0.00 9.10 0.000 0.00 2 0.1 100 4 16 6.49 92.52 0.000 0.00 2 0. 100 42 6.81 95.52 0.000 0.008 2 0.5 100 51 4.09 96.09 0.000 0.010 2 0. 100 62 50 1.16 9.8 0.000 0.009 2 0.9 88 59 42 0.96 9.81 0.000 0.005 0.1 100 1 14 5.26 92.54 0.000 0.01 0. 100 46 24.1 94.94 0.000 0.01 0.5 100 5 9 2.06 96.51 0.000 0.015 0. 100 2 42 0.91 9.42 0.000 0.01 0.9 65 5 2 0.40 98.2 0.000 0.010 4 0.1 100 56 25 2.54 92.9 0.000 0.02 4 0. 100 65 2 1.1 95.1 0.000 0.019 4 0.5 100 8 4 0.81 96.29 0.000 0.020 4 0. 9 80 26 0.52 96.05 0.000 0.025 4 0.9 6 62 2 0.12 98.89 0.000 0.011 Average: 95.85 61.45 4.0 2.09 96.5 0.000 0.012
0.1 100 1 14 5.26 92.54 0.000 0.01 0. 100 46 24.1 94.94 0.000 0.01 0.5 100 5 9 2.06 96.51 0.000 0.015 Tests numériques 0. 100 2 42 0.91 9.42 0.000 0.01 0.9 Résultats 65 moyens pour 5 les différentes 2 valeurs de 0.40 Rb 98.2 0.000 0.010 4 0.1 100 56 25 2.54 92.9 0.000 0.02 4 0. 100 65 2 1.1 95.1 0.000 0.019 4 0.5 100 8 4 0.81 96.29 0.000 0.020 4 0. 9 80 26 0.52 96.05 0.000 0.025 4 0.9 6 62 2 0.12 98.89 0.000 0.011 verage: 95.85 61.45 4.0 2.09 96.5 0.000 0.012 Table 8. Aggregate computational results for the TTLP for differents values of R b R b Feasible Optimal Optimal Average %Capacity Seconds Seconds Steps 1-5 Step 1-5 proven Step 5 optimality gap Heuristic ILP 1 95.85 5.60 8.05 2.2 90.00 0.000 0.0 1.5 95.85 61.45 42.95 2.09 96.5 0.000 0.012 2 95.85 2.55 5.5 1.1 9.65 0.000 0.011 2.5 95.85.40 65.25 0.98 98.24 0.000 0.010
Conclusion Il s agit d un problème de chargement original Aucune autre méthode que la programmation linéaire en nombres entiers ne permettait de le résoudre L heuristiques proposée est performante et rapide Sa performance et sa rapidité lui permettent d être utile dans toute méthode de génération de routes pour le problème d approvisionnement des stations d essence
References 1 Ministère des ressources naturelles du Québec. Prix de l essence ordinaire par région administrative. Technical report, 2004. 2 V. Malépart, J. Renaud, and F. F. Boctor. La distribution des produits pétroliers au Québec : État de la situation. Technical report, Université du Québec, 1998. P. Toth and D. Vigo, editors. The Vehicle Routing Problem. Society for Industrial and Applied Mathematics, Philadelphia, 2002. 4 G. G. Brown and G. W. Graves. Real-time dispatch of petroleum tank trucks. Management Science, 2:19 2, January 1981. 5 G. G. Brown, C. J. Ellis, G. W. Graves, and D. Ronen. Real-time, wide area dispatch of Mobil tank trucks. Interfaces, 1:10 120, 198. 6 V. Malépart, F. F. Boctor, J. Renaud, and S. Labilois. Nouvelles approches pour l approvisionnement des stations d essence. Revue Francaise de Gestion Industrielle, 22:15 1, 200. N. Christofides, A. Mingozzi, and P. 2Toth. Loading problems. In P. Toth and N. Christofides, editors, Combinatorial Optimization, pages 9 69. Wiley, 199. 8 J. C. Smith. A genetic algorithm approach to solving a multiple inventory loading problem. International Journal of Industrial Engineering, 10: 16, 200. 9 N. Christofides. Vehicle routing. In A. H. G. Rinnooy Kan E. L. Lawler, J. K. Lenstra and D.B. Shmoys, editors, The traveling salesman problem. A guided tour of combinatorial optimization, pages 41 448. Wiley, 1985. 10 H. N. Gabow. An efficient implementation of Edmonds algorithm for maximum matching on graphs. Journal of the ACM, 2:221 24, 196. 11 J. Edmonds. Paths, trees and flowers. Canadian Journal of Mathematics, 1: 449 46, 1965. 12 PC*MILER User s Guide. ALK Technologies, Inc., 2001. références