450 likes | 598 Views
Fabien Tricoire Encadrants : Nathalie Bostel (U. Nantes) Pierre Dejax (EMN) Pierre Guez (Veolia) Directrice : Christelle Jussien (EMN). Optimisation des tournées de véhicules et de personnels de maintenance : application à la distribution et au traitement des eaux.
E N D
Fabien Tricoire Encadrants : Nathalie Bostel (U. Nantes) Pierre Dejax (EMN) Pierre Guez (Veolia) Directrice : Christelle Jussien (EMN) Optimisation des tournées de véhicules et de personnels de maintenance : application à la distribution et au traitement des eaux Thèse de Doctorat de l’Université de Nantes 14 février 2006
Plan • Description et positionnement du problème • Présentation des données de test • Revue de la littérature • Résolution par métaheuristique • Modèle de recouvrement et résolution par génération de colonnes • Planification sur horizon glissant • Conclusions et perspectives
1. Présentation des problèmes traités • Situation de départ : Veolia souhaite optimiser ses tournées ! • Tournées en usines « trop tôt » • Tournées de travaux « pas assez de points » • Tournées en clientèle candidat idéal ! • Spécialisation : tournées en clientèle • Nécessité de définir clairement l’entrée du problème, • Nécessité de définir clairement la cible de l’entreprise Enquêtes sur le terrain des tournées Enquêtes sur les procédures connexes (prise de rendez-vous, etc) Résultat : cahier des charges
1. Les tournées en clientèle • L'optimisation des tournées de service est un problème émergent • La compagnie génère des demandes (préventif) • Les clients génèrent des demandes (préventif et curatif) • Toutes ces demandes sont satisfaites via des tournées • Optimiser ces tournées permet d'améliorer le service et la productivité
1. Description des problèmes : contraintes • Pas de contrainte de capacité, mais la durée totale d'une tournée est bornée • Certaines demandes sont soumises à des fenêtres de temps (TW) • Horizon de planification : 5 jours • Flotte limitée: Pour chaque jour, un ensemble de techniciens • Horizon = ensemble de ressources {jour-technicien} • Les points de départ, repas et arrivée sont spécifiques à ces ressources
1. Description des problèmes : contraintes (suite) • Période de validité : chaque demande doit être satisfaite dans un sous-ensemble des jours de l'horizon (i.e. par un sous-ensemble des ressources) • Contrainte de repas : chaque tournée comporte une pause repas (avec TW) ; le lieu est choisi parmi un ensemble de points de restauration • Types de demandes: • Les rendez-vous sont liés à une journée précise • Les différables ont une période de validité plus large, et pas de fenêtre de temps
1. Description des problèmes : Objectifs • Deux types de problèmes • Satisfaisable : Le personnel permet de satisfaire chaque demande • Insatisfaisable : Volonté de surcharger l’entrée du problème pour « donner plus de choix » • Deux objectifs différents : • Satisfaisable : Min(distance) • Insatisfaisable : Max(# demandes satisfaites) • Dans les deux cas, satisfaire les rendez-vous est une contrainte forte • La surcharge se fait sur les différables
Plan • Description et positionnement du problème • Présentation des données de test • Revue de la littérature • Résolution par métaheuristique • Modèle de recouvrement et résolution par génération de colonnes • Planification sur horizon glissant • Conclusions et perspectives
2. Génération des instances de test • Choix de départ : • Horizon de 5 jours (une semaine de travail) • Chaque instance comporte 3 techniciens (véhicules) travaillant chaque jour de l’horizon • Les départs et arrivées se font aux domiciles des techniciens • Chaque technicien a le choix entre deux restaurants • Sur ces bases, 3 classes de problèmes : • 100 clients (problèmes faciles, C1) • 180 clients (cible de l’industriel, C2) • 300 clients (cas insatisfaisable, C3) • Chaque classe = 5 instances
2. Génération des instances de test • Environnement : • Carte carrée de 41 km de côté (répartition aléatoire) • Vitesse constante = 35 km/h • Journée = 8 heures • Chaque demande respecte des données statistiques fournies par l’entreprise : 20% de changements de compteur, etc • C1 et C2 : • 30% de rendez-vous, • Dont 75% de fenêtres de temps, • Durant deux (67%) ou quatre heures (33%) • C3 : instance C2 complétée avec 120 différables
Plan • Description et positionnement du problème • Présentation des données de test • Revue de la littérature • Résolution par métaheuristique • Modèle de recouvrement et résolution par génération de colonnes • Planification sur horizon glissant • Conclusions et perspectives
3. Revue de la littérature (VRPTW) : méthodes approchées • Construction : Best Insertion (Solomon 87) est adaptée aux fenêtres de temps • 1994-1999 : l’ère du Tabou ! • Rochat & Semet (94), Rochat & Taillard (95), Taillard et al. (97)… • Méthodes efficaces = recherche taboue + autre heuristique • Algorithmes génétiques inefficaces • 1999-2005 : montée des méthodes évolutionnaires • 1999 : Stratégie d’évolution très efficace (Homberger et Gehring) • 2001 : « pure genetic algorithms are not competitive with the best published results » (Bräysy) • 2004 : Méthodes efficaces = algorithmes évolutionnaire hybridés (Bräysy et al. ) • Tendances actuelles : • Problèmes de grande taille (jusqu’à 1000 demandes) • Méthodes hybrides ou parallélisées
3. Revue de la littérature (VRPTW) : méthodes exactes • Génération de colonnes et Branch & Price • Desrochers et al. (92) : programmation dynamique pour le plus court chemin avec contraintes de ressources (SPPRC) • Feillet et al. (04) : plus court chemin élémentaireavec contraintes de ressources (ESPPRC) • Nécessaire pour des problèmes de tournées avec arcs profitables • Bon comportement pour des contraintes de ressources « faibles » • Rousseau et al. (04) : Programmation par contraintes pour l’ESPPRC • Relaxation Lagrangienne • Fisher (97) : sous-problème = ESPPRC
3. Revue de la littérature (problèmes avec flotte limitée) • Problème récent (Lau et al. 03) • Objectif : Max(# clients satisfaits) • Lau et al. (03) : Recherche Taboue • Lim & Zhang (05) : deux phases • Alternance suppression (de tournées) / insertion • Recherches locales • Eglese & McCabe (05) : alternances de recherches locales • But à long terme : Optional Order Problem (OOP) = satisfaire l’ensemble des demandes sur un horizon donné
Plan • Description et positionnement du problème • Présentation des données de test • Revue de la littérature • Résolution par métaheuristique • Modèle de recouvrement et résolution par génération de colonnes • Planification sur horizon glissant • Conclusions et perspectives
Recombinaison + Mutation parents enfants 4. Résolution par métaheuristique : principes • Population de taille μ • Produire λ enfants en recombinant/mutant (λ>µ) • Les µ meilleurs enfants deviennent la nouvelle population • Les parents ne sont pas impliqués dans la sélection dégradations autorisées Selection des meilleurs enfants
4. Métaheuristique : population de départ • Heuristique constructive : adaptation de Best Insertion (Solomon 87) • Insertion seulement si demande et tournée sont compatibles • Deux phases : rendez-vous, puis différables • Voisinages pour amélioration des solutions : • 2-opt • Échange de 2 nœuds • Rotation de 3 nœuds • Déplacement de nœud • Sept variantes basées sur ces voisinages • Caractéristiques de la population : • Petite taille • Relativement diverse • Solutions d’assez bonne qualité
4. Métaheuristique : réflexions autour des opérateurs • Concepts clés : • Un croisement « basique » pose des problèmes de faisabilité (contraintes temporelles) • Flotte limitée confiance limitée dans les mouvements aléatoires (impossible de créer de nouvelles tournées) • Les ressources sont identiques pour tous les individus • Solution : • Constituer un enfant à partir de tournées des parents • Produire une diversification efficace mais conservant la faisabilité
4. Recombinaison : cas « particuliers » Parent 1 Parent 2 Enfant 1 Enfant 2
4. Problématiques • Les tournées copiées en dernier seront probablement modifiées Copier les tournées dans un ordre aléatoire • Des demandes satisfaites deviennent insatisfaites • Besoin d’une réinsertion efficace • Entité pour la recombinaison = tournée • L’entité pour la mutation doit aussi être la tournée • Mouvements aléatoires peuvent violer des contraintes • Une heuristique peut être mieux adaptée
4. Opérateur original : • Algorithme : • Pour chaque ressource du fils, copier la tournée associée dans un des parents choisis aléatoirement, ou la laisser vide (avec une probabilité ) • Appliquer une heuristique de construction/amélioration à cette solution partielle : best insertion + échange de nœuds
4. Taux de mutation • Métaphore évolutionnaire : = force de diversification • Plusieurs choix: • Fixe • Hérité des parents ( = (1+2)/2) • Fonction du temps ( = f(n),n = # génération) • Autres possibilités non testées • 4 fonctions testées :
4. Résultats expérimentaux (C2) ¹ Pas de solution réalisable • N = 60 • Pentium IV CPU 2.8 GHz, Java HotSpot 1.4.2, Linux 2.4
4. Résultats expérimentaux (C3) • N = 60 • Pentium IV CPU 2.8 GHz, Java HotSpot 1.4.2, Linux 2.4
Plan • Description et positionnement du problème • Présentation des données de test • Revue de la littérature • Résolution par métaheuristique • Modèle de recouvrement et résolution par génération de colonnes • Planification sur horizon glissant • Conclusions et perspectives
5. Programmation dynamique pour le sous-problème : algorithme classique • Algorithme d’extensions de labels basé sur celui de Bellman • L : nombre de ressources • Label associé à un chemin allant de 0 à j : • Règle de dominance :
5. Programmation dynamique pour le sous-problème : gestion des repas(1) Version « basique » : ajout d’une ressource booléenne r pour le repas • L.r = vrai L n’est extensible à aucun point de repas • Un label sans repas ne peut pas dominer un label avec repas • Un label sans repas n’est pas extensible au nœud d’arrivée
5. Programmation dynamique pour le sous-problème : gestion des repas(2) Amélioration : décomposition du problème en deux ESPPRC plus contraints • Premier ESPPRC : plus court chemin entre le départ et les points de repas réduction de la ressource temps • Second ESPPRC : extension des chemins ainsi trouvés, jusqu’au point d’arrivée • Facteur temps : entre 0,5 et 15 ; 2 en moyenne
5. Programmation dynamique pour le sous-problème : résultats expérimentaux • Algorithme utilisé après exécution d’une heuristique, pour dépister d’éventuels chemins de coût négatif • Objectif de départ : instances à 100 clients • Objectif révisé : instances à 40 clients
5. Heuristique pour le sous-problème • Alternance Descente en profondeur / Diversification • Solutions de départ = (départ, repas, arrivée) • Voisinage = insertion, suppression, déplacement, échange • Déplacement : changer la position d’un nœud dans le chemin • Échange : permutation des positions de deux nœuds • Diversification : k mouvements aléatoires • Paramètres : k et n (# itérations)
5. Heuristique pour le sous-problème : résultats expérimentaux (40 clients) • Utilisation exclusive de l’heuristique dans le cadre du Branch-and-Price • k = 10, n = 5000
5. Heuristique pour le sous-problème : résultats expérimentaux (100 clients) • Utilisation exclusive de l’heuristique dans le cadre du Branch-and-Bound • k = 10, n = 5000 • Best = borne supérieure fournie par le Branch-and-Bound
Plan • Description et positionnement du problème • Présentation des données de test • Revue de la littérature • Résolution par métaheuristique • Modèle de recouvrement et résolution par génération de colonnes • Planification sur horizon glissant • Conclusions et perspectives
6. Planification sur horizon glissant : principes de fonctionnement • Une solution = une semaine de travail • Chaque jour, des demandes sont satisfaites • De nouvelles demandes surgissent • Données disponibles en fin de période n : • Ensemble de demandes satisfaites • Ensemble de nouvelles demandes • Solution partielle • Idée clé : Réutiliser la solution partielle pour construire une solution à la période n+1
6. Planification sur horizon glissant : algorithme mémétique • Chaque individu de la population (période n) est une solution partielle • Application : constituer la nouvelle population à partir de l’ancienne • Chaque individu est « complété » (recherche locale) • Expérimentations sur instance C2 :
6. Planification sur horizon glissant : génération de colonnes • Générer de nouvelles colonnes est coûteux • Certaines colonnes déjà générées à la période précédente sont toujours valides, voire nécessaires • Application : réinjecter les colonnes toujours valides dans le nouveau problème-maître • Expérimentations sur C1 (Branch and Bound) :
Plan • Description et positionnement du problème • Présentation des données de test • Revue de la littérature • Résolution par métaheuristique • Modèle de recouvrement et résolution par génération de colonnes • Planification sur horizon glissant • Conclusions et perspectives
7. Conclusion • Introduction d’un nouveau problème • Résolution par métaheuristique • Opérateur original • Solutions de qualité • Temps acceptable pour l’entreprise • Modèle de recouvrement • Résolution exacte pour des instances très faciles • Méthode approchée pour des instances de taille 100 • Méthode améliorable • Réutilisation de solutions partielles • Correspond à une problématique industrielle • Principe très simple • Efficacité probante pour l’algorithme mémétique comme pour la génération de colonnes
7. Autres travaux • Simulations sur les politiques d’organisation • Gestion des contraintes de compétence • Tests sur 4 politiques différentes • Recommandations de bonnes pratiques pour l’entreprise • Interface graphique d’aide à la décision • Visualisation globale de l’horizon de planification, ou zoomée sur un jour • Filtres d’affichage des informations • Modification manuelle et sauvegarde des solutions modifiées
7. Perspectives • Élargir le champ d’action de l’algorithme mémétique : • Appliquer au VRPTW (instances de Solomon) • Appliquer à des problèmes d’ordonnancement • Améliorer les performances du Branch and Price : • Stabilisation du problème maître (point intérieur) • Résolution « intelligente » des sous-problèmes • Stratégie de branchement plus efficace • Validation des méthodes : agrandir l’échantillon de tests