Deux problèmes de calcul d`itinéraires avec contraintes de
Transcription
Deux problèmes de calcul d`itinéraires avec contraintes de
Deux problèmes de calcul d’itinéraires avec contraintes de synchronisation MJo Huguet Juillet 2013 () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 1 / 42 Plan de la présentation 1 Introduction 2 Problèmes de plus courts chemins 3 Méthode pour le calcul d’itinéraires Aller-Retour 4 Méthode pour le calcul des itinéraires de covoiturage 5 Conclusion () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 2 / 42 Introduction Plan de la présentation 1 Introduction 2 Problèmes de plus courts chemins 3 Méthode pour le calcul d’itinéraires Aller-Retour 4 Méthode pour le calcul des itinéraires de covoiturage 5 Conclusion () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 3 / 42 Introduction Contexte Contexte Problème d’itinéraires aller-retour Stage M2R (2012) - Pierre Parent (LIPN) Collaboration Dominik Kirchler et Roberto Wolfler Calvo Projet GdR RO Problème d’itinéraires de covoiturage Stage M2R (2013) - Arthur Bit-Monnot Collaboration MOGISA (Christian Artigues) - TSF (Marco Killijian) Projet ANR AMORES () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 4 / 42 Introduction Itinéraires aller-retour Itinéraires aller-retour (1) Trajet aller : départ 15h - Trajet retour : départ 23h Modes de Transport : I véhicule personnel; marche; transport en commun Objectif Trouver des itinéraires pour minimiser les temps trajets. Synchronisation Parking = point à déterminer () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 5 / 42 Introduction Itinéraires aller-retour Itinéraires aller-retour (2) Trajet aller optimal Temps trajet AR : 1h31 () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 6 / 42 Introduction Itinéraires aller-retour Itinéraires aller-retour (2) Trajet aller optimal Temps trajet AR : 1h31 Trajet retour optimal Temps trajet AR : 1h29 () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 6 / 42 Introduction Itinéraires aller-retour Itinéraires aller-retour (2) Trajet aller optimal Temps trajet AR : 1h31 Trajet retour optimal Temps trajet AR : 1h29 Trajet AR optimal Temps trajet AR : 1h25 () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 6 / 42 Introduction Itinéraires de covoiturage Itinéraires de covoiturage Deux utilisateurs connus : un conducteur un passager Avec origines et destinations respectives Avec horaire de départ Objectif Trouver des itinéraires pour minimiser les temps trajets. Synchronisation Point de rencontre = point à déterminer Point de séparation = point à déterminer () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 7 / 42 Introduction Modélisation d’un réseau de transport Graphe multimodal et dépendant du temps Modélisation Multi-Modal (MM) : arc-labeled Graph, i.e. mode associé à chaque arc Time-Dependent (TD) : Propriété FIFO () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 8 / 42 Introduction Algorithmes naïf Algorithmes naïf Itinéraires Aller-Retour Enumération des points de parking Calculs des différents itinéraires Problème polynomial : n parking × 4 algo. Shortest Path Bousquet et. al 2009 : temps calcul trop important Itinéraires covoiturage Enumération des combinaisons points de rencontre & séparation : n2 Calculs des différents itinéraires Problème polynomial : n.(n − 1) parking × 5 algo. Shortest Path Inutilisable en pratique () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 9 / 42 Problèmes de plus courts chemins Plan de la présentation 1 Introduction 2 Problèmes de plus courts chemins 3 Méthode pour le calcul d’itinéraires Aller-Retour 4 Méthode pour le calcul des itinéraires de covoiturage 5 Conclusion () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 10 / 42 Problèmes de plus courts chemins Cas statique : principe Algorithme de Dijkstra (1) Contexte Graphe G = (V, E), valué par des couts positifs (distance, temps trajet) Plus court chemin : somme des couts des arcs Principe : Algorithme dit de "Label Setting" Initialisation: Associer un label à chaque sommet (cout, predecesseur) Iteration: Marquer le label de plus petit cout; mettre à jour le cout des successeurs Arret: Tous les labels sont marqués 1 (c = 0, −) s x1 4 t 2 x2 () 2 Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 11 / 42 Problèmes de plus courts chemins Cas statique : principe Algorithme de Dijkstra (1) Contexte Graphe G = (V, E), valué par des couts positifs (distance, temps trajet) Plus court chemin : somme des couts des arcs Principe : Algorithme dit de "Label Setting" Initialisation: Associer un label à chaque sommet (cout, predecesseur) Iteration: Marquer le label de plus petit cout; mettre à jour le cout des successeurs Arret: Tous les labels sont marqués 1 (c = 0, −) s (c = 1, s) x1 4 t 2 x2 (c = 2, s) () 2 Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 11 / 42 Problèmes de plus courts chemins Cas statique : principe Algorithme de Dijkstra (1) Contexte Graphe G = (V, E), valué par des couts positifs (distance, temps trajet) Plus court chemin : somme des couts des arcs Principe : Algorithme dit de "Label Setting" Initialisation: Associer un label à chaque sommet (cout, predecesseur) Iteration: Marquer le label de plus petit cout; mettre à jour le cout des successeurs Arret: Tous les labels sont marqués 1 (c = 0, −) s (c = 1, s) x1 4 (c = 5, x1 ) t 2 x2 (c = 2, s) () 2 Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 11 / 42 Problèmes de plus courts chemins Cas statique : principe Algorithme de Dijkstra (1) Contexte Graphe G = (V, E), valué par des couts positifs (distance, temps trajet) Plus court chemin : somme des couts des arcs Principe : Algorithme dit de "Label Setting" Initialisation: Associer un label à chaque sommet (cout, predecesseur) Iteration: Marquer le label de plus petit cout; mettre à jour le cout des successeurs Arret: Tous les labels sont marqués 1 (c = 0, −) s (c = 1, s) x1 4 (c = 5, x1 ) t (c = 4, x2 ) 2 x2 (c = 2, s) () 2 Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 11 / 42 Problèmes de plus courts chemins Cas statique : principe Algorithme de Dijkstra (1) Contexte Graphe G = (V, E), valué par des couts positifs (distance, temps trajet) Plus court chemin : somme des couts des arcs Principe : Algorithme dit de "Label Setting" Initialisation: Associer un label à chaque sommet (cout, predecesseur) Iteration: Marquer le label de plus petit cout; mettre à jour le cout des successeurs Arret: Tous les labels sont marqués 1 (c = 0, −) s (c = 1, s) x1 4 t (c = 4, x2 ) 2 x2 (c = 2, s) () 2 Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 11 / 42 Problèmes de plus courts chemins Cas statique : principe Algorithme de Dijkstra (2) Algo Dijkstra Trouve les plus courts chemins depuis un sommet vers tous les autres Propriétés Un label n’est marqué qu’une fois Les labels sont marqués par cout croissant Complexité Soit Q : ensemble des labels manipulés Complexité : O(|E|.dQ + |V|.eq ) avec I I dq : ré-organisation Q après ajout d’un label eq : extraction d’un label de Q utilisation d’une structure de Tas () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 12 / 42 Problèmes de plus courts chemins Cas statique : améliorations Améliorations : Shortest Path one-to-one (1) Guidage vers la destination : algo A∗ Estimation du cout à la destination (+ cout depuis l’origine) optimalité préservé si estimation = LB () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 13 / 42 Problèmes de plus courts chemins Cas statique : améliorations Améliorations : Shortest Path one-to-one (2) Bidirectionnel algo Forward depuis l’origine + algo Backward depuis la destination Iteration: Sélection de l’algo (label de plus petit cout) et 1 itération de Dijkstra Solution: Sommet marqué par les 2 algo (UB) Arrêt: somme des couts des labels min Forward et Backward > cout solution courante () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 14 / 42 Problèmes de plus courts chemins Cas statique : améliorations Améliorations : pré-calculs landmarks (algo ALT) Calculer SP entre tous les points et un (petit) ensemble de landmarks Utilisation avec inégalité triangulaire pour calculer un SP (LB) () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 15 / 42 Problèmes de plus courts chemins Temps trajet dépendant du temps Time-Dependent Shortest Path - TD-SP Principe Label associé à chaque sommet : cout et début au plus tôt (c = 0, t = 0)t s :∆ =0 t= () =1 x1 t= 1:∆ =4 t 0:∆ =2 x2 t= 1:∆ =2 Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 16 / 42 Problèmes de plus courts chemins Temps trajet dépendant du temps Time-Dependent Shortest Path - TD-SP Principe Label associé à chaque sommet : cout et début au plus tôt (c = 1, t = 1) x1 t= 1 (c = 0, t = 0)t = s t= () 0:∆ = 1:∆ =4 t 0:∆ 1: x2 t= (c = 2, t = 2) =2 ∆ =2 Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 16 / 42 Problèmes de plus courts chemins Temps trajet dépendant du temps Time-Dependent Shortest Path - TD-SP Principe Label associé à chaque sommet : cout et début au plus tôt (c = 1, t = 1) x1 t= 1 (c = 0, t = 0)t = s t= () 0:∆ 0:∆ = =2 x2 (c = 2, t = 2) 1:∆ 1 t= :∆ =4 (c = 5, t = 5) t =2 Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 16 / 42 Problèmes de plus courts chemins Temps trajet dépendant du temps Time-Dependent Shortest Path - TD-SP Principe Label associé à chaque sommet : cout et début au plus tôt (c = 1, t = 1) x1 t= 1 (c = 0, t = 0)t = s t= () 0:∆ 0:∆ = 1:∆ 1: x2 t= (c = 2, t = 2) =2 =4 ∆= (c = 5, t = 5) t 2(c = 4, t = 4) Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 16 / 42 Problèmes de plus courts chemins Temps trajet dépendant du temps Time-Dependent Shortest Path - TD-SP Principe Label associé à chaque sommet : cout et début au plus tôt (c = 1, t = 1) x1 t= 1 (c = 0, t = 0)t = s t= () 0:∆ 0:∆ = 1:∆ 1: x2 t= (c = 2, t = 2) =2 ∆ =4 (c =2 t = 4, t = 4) Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 16 / 42 Problèmes de plus courts chemins Temps trajet dépendant du temps Time-Dependent Shortest Path - TD-SP Principe Label associé à chaque sommet : cout et début au plus tôt (c = 1, t = 1) x1 t= 1 (c = 0, t = 0)t = s t= 0:∆ 0:∆ = 1:∆ 1: x2 t= (c = 2, t = 2) =2 ∆ =4 (c =2 t = 4, t = 4) Difficultés (−) Stockage/Accès au cout de chaque arc (++) Problème algo bidirectionnel : Horaires soit Forward soit Backward I I Borne Inférieure des couts + ré-évaluation Méthode exacte : temps calcul important () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 16 / 42 Problèmes de plus courts chemins Multimodalité Multimodal Shortest Path (MM-SP) Cas MM : Regular Language Constrained SP Graphe avec label sur les arcs GΣ , arcs (i, j, m) labels m ∈ Σ restrictions modélisées par un langage régulier L0 objectif: cout ET concaténation des labels ∈ L0 Algorithme : généralisation algo Dijkstra Labels: f foot t transfer b bike p public transp. v rental bike () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 17 / 42 Problèmes de plus courts chemins Multimodalité Algorithme MM-SP 4 s 1 2 3 t 5 () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 18 / 42 Problèmes de plus courts chemins Multimodalité Algorithme MM-SP 4 1, c s 5, f 1 1, t 2 4, b 1, t 3 3, p 1, t t 1, t 5 () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 18 / 42 Problèmes de plus courts chemins Multimodalité Algorithme MM-SP 4 1, c [0, s0 ] s 5, f 1 1, t 2 4, b 1, t 3 3, p 1, t t 1, t 5 () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 18 / 42 Problèmes de plus courts chemins Multimodalité Algorithme MM-SP 4 1, c [0, s0 ] s X [5, s2 ] 1 5, f 1, t 2 4, b 1, t 3 3, p 1, t t 1, t 5 () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 18 / 42 Problèmes de plus courts chemins Multimodalité Algorithme MM-SP 4 1, c [0, s0 ] s X [5, s2 ] X 1 5, f 1, t [6, s3 ] 4, b 2 1, t 3 3, p 1, t t 1, t 5 () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 18 / 42 Problèmes de plus courts chemins Multimodalité Algorithme MM-SP 4 1, c [0, s0 ] s X [5, s2 ] X 1 5, f 1, t [6, s3 ] 4, b X 2 1, t 3 3, p 1, t t 1, t 5 [9, s3 ] () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 18 / 42 Problèmes de plus courts chemins Multimodalité Algorithme MM-SP 4 1, c [0, s0 ] s X [5, s2 ] X 1 5, f 1, t [6, s3 ] 4, b X 2 1, t 3 3, p 1, t t [10, s4 ] 1, t 5 X [9, s3 ] () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 18 / 42 Problèmes de plus courts chemins Multimodalité Algorithme MM-SP 4 1, c [0, s0 ] s X [5, s2 ] X 1 5, f 1, t [6, s3 ] 4, b X 2 1, t 3 3, p 1, t Xt [10, s4 ] 1, t 5 X [9, s3 ] () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 18 / 42 Méthode pour le calcul d’itinéraires Aller-Retour Plan de la présentation 1 Introduction 2 Problèmes de plus courts chemins 3 Méthode pour le calcul d’itinéraires Aller-Retour 4 Méthode pour le calcul des itinéraires de covoiturage 5 Conclusion () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 19 / 42 Méthode pour le calcul d’itinéraires Aller-Retour Algorithme proposé Principe de l’algorithme (1) Structure 4 algo de type Disjkstra (2 Forward - 2 Backward) Itération Lancer algo Di ayant label de plus petit cout et effectuer 1 itération de Di Solution Sommet marqué par les 4 algorithmes Condition d’arrêt Cout du prochain label à explorer > cout de la solution courante () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 20 / 42 Méthode pour le calcul d’itinéraires Aller-Retour Algorithme proposé Principe de l’algorithme (2) Problem: COUT DEPENDANT DU TEMPS Problème Horaire de début de 2 algo Dijstra ne sont pas connus Solution Utiliser temps de trajet min Lorsqu’une solution est obtenue → la re-évaluer avec les horaires corrects Impact Pour chaque solution obtenue : 2 algo de Shortest Path supplémentaires () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 21 / 42 Méthode pour le calcul d’itinéraires Aller-Retour Algorithme proposé Principe de l’algorithme (2) Problem: COUT DEPENDANT DU TEMPS Problème Horaire de début de 2 algo Dijstra ne sont pas connus Solution Utiliser temps de trajet min Lorsqu’une solution est obtenue → la re-évaluer avec les horaires corrects Impact Pour chaque solution obtenue : 2 algo de Shortest Path supplémentaires () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 21 / 42 Méthode pour le calcul d’itinéraires Aller-Retour Algorithme proposé Principe de l’algorithme (2) Problem: COUT DEPENDANT DU TEMPS Problème Horaire de début de 2 algo Dijstra ne sont pas connus Solution Utiliser temps de trajet min Lorsqu’une solution est obtenue → la re-évaluer avec les horaires corrects Impact Pour chaque solution obtenue : 2 algo de Shortest Path supplémentaires () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 21 / 42 Méthode pour le calcul d’itinéraires Aller-Retour Algorithme proposé Principe de l’algorithme (2) Problem: COUT DEPENDANT DU TEMPS Problème Horaire de début de 2 algo Dijstra ne sont pas connus Solution Utiliser temps de trajet min Lorsqu’une solution est obtenue → la re-évaluer avec les horaires corrects Impact Pour chaque solution obtenue : 2 algo de Shortest Path supplémentaires () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 21 / 42 Méthode pour le calcul d’itinéraires Aller-Retour Algorithme proposé Principe de l’algorithme (3) Complexité Statique : O(4 × |EΣ |.log(|V Σ |) Time-Dependent : O(2|V Σ | × |EΣ | × log(|V Σ |)) () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 22 / 42 Méthode pour le calcul d’itinéraires Aller-Retour Algorithme proposé Améliorations (1) 1. Amélioration de la condition d’arrêt Calcul d’une borne inférieure Soit x label marqué par 3 algo ⇒ somme cout de ces 3 algos = Cost LB = Cost + cout du prochain label à marquer même principe pour x marqué par 2 et 1 algo 2. Borne supérieure Calculer 2 solutions triviales () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 23 / 42 Méthode pour le calcul d’itinéraires Aller-Retour Algorithme proposé Améliorations (2) 3. Couts minimaux en TD Utiliser l’information sur la tranche horaire 4. Ré-évaluation (TD) Retarder les ré-évaluations après la condition d’arrêt Ré-évaluer les solution trouvées par ordre croissant des couts 5. Algo SDALT Utiliser l’algo SDLAT pour les ré-évaluation SDALT = A∗ + landmarks + TD + MM Approximation Arrêt quand LB×α ≥ Sol () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 24 / 42 Méthode pour le calcul d’itinéraires Aller-Retour Résultats Données : Ile de France Réseau vélo et piéton : Open Street Map Stations location vélo: Velib’ (Paris) Réseau automobile : Mediamobile I Données de trafic Transport Public: Syndicat des Transports d’Ile-de-France (STIF) I I Tramway, metro, bus, trains régionaux Tables horaires ou Fréquences layer Walking (f ) Private Bike (b) Rental Bike (v) Car (c) Public Transp (p) Total () arcs 601 280 600 952 600 952 1 112 511 259 623 3 731 700 nodes 220 091 220 091 220 091 514 331 109 922 1 284 526 time-dependent 111 641 82 833 194 474 Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 25 / 42 Méthode pour le calcul d’itinéraires Aller-Retour Résultats Scénarios Sans ré-évaluation (b/f ) = vélo puis marche (b/f )0 = vélo puis marche ou transport public + horaires aller et retour à destination Avec ré-évaluation (b/fp)1 + début aller à l’origine et début retour à destination (b/fp)2 + début aller et début retour à l’origine (c/fp) = auto puis marche ou transport public + début aller à l’origine et début retour à destination Choix des horaires morning/evening : entre 9h et 17h day/night : un trajet entre 23h et 5h un autre en journée random () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 26 / 42 Méthode pour le calcul d’itinéraires Aller-Retour Résultats Résultats sur 100 instances Horaires random Temps CPU en secondes Parkings vélo : env. 220 000; auto : env. 20 000 C++, Linux, Bi Xeon 2.5GHz, 16Go RAM Scenario (b/f ) (b/fp)0 (b/fp)1 (b/fp)2 (c/fp) Nb re-eval 0 0 1 2 2 Algo 1.05 2.05 906 (13621) 1290 (15692) 108 (2129) Imprvt 0.89 1.05 3 (30) 30 (756) 1.65 (4.29) + // ré-eval 10 (229) 1.51 (3.99) + Approx 2 (10) 5 (225) 1.47 (3.6) Amélioration 4 (retarder ré-éval) : facteur 3 SDALT et // : facteur 2 Existence d’instances difficiles : cas (b/fp)1 et (b/fp)2 Auto = mode dominant I I parking à destination calcul UB : solution optimale () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 27 / 42 Méthode pour le calcul d’itinéraires Aller-Retour Résultats Résultats sur 100 instances Horaires random Temps CPU en secondes Parkings vélo : env. 220 000; auto : env. 20 000 C++, Linux, Bi Xeon 2.5GHz, 16Go RAM Scenario (b/f ) (b/fp)0 (b/fp)1 (b/fp)2 (c/fp) Nb re-eval 0 0 1 2 2 Algo 1.05 2.05 906 (13621) 1290 (15692) 108 (2129) Imprvt 0.89 1.05 3 (30) 30 (756) 1.65 (4.29) + // ré-eval 10 (229) 1.51 (3.99) + Approx 2 (10) 5 (225) 1.47 (3.6) Amélioration 4 (retarder ré-éval) : facteur 3 SDALT et // : facteur 2 Existence d’instances difficiles : cas (b/fp)1 et (b/fp)2 Auto = mode dominant I I parking à destination calcul UB : solution optimale () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 27 / 42 Méthode pour le calcul des itinéraires de covoiturage Plan de la présentation 1 Introduction 2 Problèmes de plus courts chemins 3 Méthode pour le calcul d’itinéraires Aller-Retour 4 Méthode pour le calcul des itinéraires de covoiturage 5 Conclusion () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 28 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Quel fonction objectif ? Op P1 P5 r Oc P3 Dp s P4 P2 Dc Cout à minimiser arrivée(piéton) - départ(piéton) + arrivée(voiture) - départ(voiture) cout = c(P1 ) + c(P2 ) + attente + 2 × c(P3 ) + c(P4 ) + c(P5 ) () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 29 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Principe de résolution Horaires : uniquement aux 2 origines Auto : mode statique cout = c(P1 ) + c(P2 ) + attente + 2 × c(P3 ) + c(P4 ) + c(P5 ) Op Dp Oc Dc () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 30 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Principe de résolution Horaires : uniquement aux 2 origines Auto : mode statique cout = c(P1 ) + c(P2 ) + attente + 2 × c(P3 ) + c(P4 ) + c(P5 ) r1 P1 r2 Op Dp r3 Dc Oc () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 30 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Principe de résolution Horaires : uniquement aux 2 origines Auto : mode statique cout = c(P1 ) + c(P2 ) + attente + 2 × c(P3 ) + c(P4 ) + c(P5 ) r1 P1 r2 Op Dp r3 Oc P2 () r4 Dc Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 30 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Principe de résolution Horaires : uniquement aux 2 origines Auto : mode statique cout = c(P1 ) + c(P2 ) + attente + 2 × c(P3 ) + c(P4 ) + c(P5 ) r1 P1 r2 Op Dp r3 Oc P2 () r4 Dc Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 30 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Principe de résolution Horaires : uniquement aux 2 origines Auto : mode statique cout = c(P1 ) + c(P2 ) + attente + 2 × c(P3 ) + c(P4 ) + c(P5 ) r1 s1 r2 s2 P1 Op r3 Oc P2 () P3 Dp s3 r4 Dc Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 30 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Principe de résolution Horaires : uniquement aux 2 origines Auto : mode statique cout = c(P1 ) + c(P2 ) + attente + 2 × c(P3 ) + c(P4 ) + c(P5 ) r1 s1 r2 s2 P1 Op r3 Oc P2 () r4 P3 Dp s3 s4 Calcul d’itinéraires avec contraintes de synchronisation P4 Dc Juillet 2013 30 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Principe de résolution Horaires : uniquement aux 2 origines Auto : mode statique cout = c(P1 ) + c(P2 ) + attente + 2 × c(P3 ) + c(P4 ) + c(P5 ) r1 s1 r2 s2 P1 Op r3 Oc P2 () r4 P3 Dp s3 s4 Calcul d’itinéraires avec contraintes de synchronisation P4 Dc Juillet 2013 30 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Principe de résolution Horaires : uniquement aux 2 origines Auto : mode statique cout = c(P1 ) + c(P2 ) + attente + 2 × c(P3 ) + c(P4 ) + c(P5 ) r1 s1 r2 s2 P1 Op r3 Oc P2 () r4 P3 Dp P5 s3 s4 Calcul d’itinéraires avec contraintes de synchronisation P4 Dc Juillet 2013 30 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Principe de résolution Horaires : uniquement aux 2 origines Auto : mode statique cout = c(P1 ) + c(P2 ) + attente + 2 × c(P3 ) + c(P4 ) + c(P5 ) r1 s1 r2 s2 P1 Op r3 Oc P2 () r4 P3 Dp P5 s3 s4 Calcul d’itinéraires avec contraintes de synchronisation P4 Dc Juillet 2013 30 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Recherche de la meilleure origine Etant données plusieurs origines avec cout et temps d’arrivée initiaux, sélectionner la source qui minimise le cout à l’arrivée. (c = 5, t = 2) o1 t = 2 →∆ o2 t = 0 → (c = 6, t = 0) () = (c 1= 6, t = 3) x (c = 7, t = 1) ∆= 1 t = 3 → ∆ = 14 (c = 20, t = 17) d t = 1 → ∆ = 10 (c = 17, t = 11) Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 31 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Recherche de la meilleure origine Etant données plusieurs origines avec cout et temps d’arrivée initiaux, sélectionner la source qui minimise le cout à l’arrivée. (c = 5, t = 2) o1 t = 2 →∆ o2 t = 0 → (c = 6, t = 0) () = (c 1= 6, t = 3) x (c = 7, t = 1) ∆= 1 t = 3 → ∆ = 14 (c = 20, t = 17) d t = 1 → ∆ = 10 (c = 17, t = 11) Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 31 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Recherche de la meilleure origine Etant données plusieurs origines avec cout et temps d’arrivée initiaux, sélectionner la source qui minimise le cout à l’arrivée. (c = 5, t = 2) o1 t = 2 →∆ o2 t = 0 → (c = 6, t = 0) () = (c 1= 6, t = 3) x (c = 7, t = 1) ∆= 1 t = 3 → ∆ = 14 (c = 20, t = 17) d t = 1 → ∆ = 10 (c = 17, t = 11) Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 31 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Recherche de la meilleure origine Etant données plusieurs origines avec cout et temps d’arrivée initiaux, sélectionner la source qui minimise le cout à l’arrivée. (c = 5, t = 2) o1 t = 2 →∆ o2 t = 0 → (c = 6, t = 0) () = (c 1= 6, t = 3) x (c = 7, t = 1) ∆= 1 t = 3 → ∆ = 14 (c = 20, t = 17) d t = 1 → ∆ = 10 (c = 17, t = 11) Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 31 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Recherche de la meilleure origine Etant données plusieurs origines avec cout et temps d’arrivée initiaux, sélectionner la source qui minimise le cout à l’arrivée. (c = 5, t = 2) o1 t = 2 →∆ o2 t = 0 → (c = 6, t = 0) () = (c 1= 6, t = 3) x (c = 7, t = 1) ∆= 1 t = 3 → ∆ = 14 (c = 20, t = 17) d t = 1 → ∆ = 10 (c = 17, t = 11) Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 31 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Recherche de la meilleure origine Etant données plusieurs origines avec cout et temps d’arrivée initiaux, sélectionner la source qui minimise le cout à l’arrivée. (c = 5, t = 2) o1 t = 2 →∆ o2 t = 0 → (c = 6, t = 0) () = (c 1= 6, t = 3) x (c = 7, t = 1) ∆= 1 t = 3 → ∆ = 14 (c = 20, t = 17) d t = 1 → ∆ = 10 (c = 17, t = 11) Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 31 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Recherche de la meilleure origine Consistance entre cout et temps d’arrivée Etant donnés deux labels (c, t) et (c0 , t0 ), Consistance si : c ≤ c0 ⇔ t ≤ t0 Approche multi-objectif : on ne supprime pas les labels uniquement sur leur cout Propriétés Sélection de la meilleure origine pour tout les sommets Labels marqués par ordre de cout croissant Meilleur cout d’un sommet → premier label marqué () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 32 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Recherche de la meilleure origine Consistance entre cout et temps d’arrivée Etant donnés deux labels (c, t) et (c0 , t0 ), Consistance si : c ≤ c0 ⇔ t ≤ t0 Approche multi-objectif : on ne supprime pas les labels uniquement sur leur cout Propriétés Sélection de la meilleure origine pour tout les sommets Labels marqués par ordre de cout croissant Meilleur cout d’un sommet → premier label marqué () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 32 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Recherche de la meilleure origine Consistance entre cout et temps d’arrivée Etant donnés deux labels (c, t) et (c0 , t0 ), Consistance si : c ≤ c0 ⇔ t ≤ t0 Approche multi-objectif : on ne supprime pas les labels uniquement sur leur cout Propriétés Sélection de la meilleure origine pour tout les sommets Labels marqués par ordre de cout croissant Meilleur cout d’un sommet → premier label marqué () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 32 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Algorithme proposé (1) Algo A1 A2 A3 A4 A5 Source op oc Xin = N1 ∩ N2 dc Xoff = N3 ∩ N4 Dest. Tous Tous Tous Tous dp Noeuds Marqués N1 N2 N3 N4 N5 Problème PCC PCC M. Orig. PCC (backward) M. Orig. Itération : à chaque étape sélectionner algo ayant le label de plus petit cout Arrêt: Sommet destination piéton est marqué dans A5 Meilleur Origine dans A3 : Dijkstra car consistance cout et temps Meilleur Origine dans A5 : Dijkstra multi-label car non consistance cout et temps () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 33 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Algorithme proposé (1) Algo A1 A2 A3 A4 A5 Source op oc Xin = N1 ∩ N2 dc Xoff = N3 ∩ N4 Dest. Tous Tous Tous Tous dp Noeuds Marqués N1 N2 N3 N4 N5 Problème PCC PCC M. Orig. PCC (backward) M. Orig. Itération : à chaque étape sélectionner algo ayant le label de plus petit cout Arrêt: Sommet destination piéton est marqué dans A5 Meilleur Origine dans A3 : Dijkstra car consistance cout et temps Meilleur Origine dans A5 : Dijkstra multi-label car non consistance cout et temps () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 33 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Algorithme proposé (2) Op P1 P5 P3 r Oc Dp s P4 P2 Dc Résolution concurrente A3 peut être lancé avant la fin de A1 et de A2 A5 peut être lancé avant la fin de A3 et de A4 () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 34 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Restrictions sur les points de rencontre/séparation Définir zones de rencontre / séparation Intégration de connaissances sur le problème Limiter l’exploration du graphe Compromis entre expressivité / efficacité des calculs Exemple Piéton : Accessibilité via un temps de trajet Auto : Sommets du réseau routier Zones de rencontre et de séparation à l’intersection () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 35 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Zone et Guidage Op A1 r2 s2 Zr A2 r3 A3 Zs Dp A5 s3 A4 r4 Oc s4 Dc Condition d’arrêt : Zr exploré → arrêt de A1 et A2 Zs exploré → arrêt de A3 et A4 Principe de guidage A∗ : heuristique hd (x) pour guider vers destination d Définition heuristique HZ (x) pour guider vers zone Z = vers le point le plus proche de la zone Utilisation landmarks pour calculer HZ (x) () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 36 / 42 Méthode pour le calcul des itinéraires de covoiturage Algorithme proposé Zone et Guidage Op A1 r2 s2 Zr A2 r3 A3 Zs Dp A5 s3 A4 r4 Oc s4 Dc Condition d’arrêt : Zr exploré → arrêt de A1 et A2 Zs exploré → arrêt de A3 et A4 Principe de guidage A∗ : heuristique hd (x) pour guider vers destination d Définition heuristique HZ (x) pour guider vers zone Z = vers le point le plus proche de la zone Utilisation landmarks pour calculer HZ (x) () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 36 / 42 Méthode pour le calcul des itinéraires de covoiturage Résultats Données : Aquitaine et Midi-Pyrénées Cas d’étude Covoiturage Bordeaux-Toulouse-Albi Graphe Aquitaine et Midi-Pyrennées 639 765 noeuds 21 439 noeuds de transport en commun 5 millions d’arcs Restrictions Zone de rencontre et de séparation Ville entière : 46 584 sommets (Tlse) et 29 865 (Bdx) Sommets à 10 minutes de marche : env 1 000 sommets (Tlse et Bdx) () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 37 / 42 Méthode pour le calcul des itinéraires de covoiturage Résultats Résultats sur 50 instances Temps CPU (ms) et nb labels marqués C++, Linux, Pentium-4, 2.1GHz, 4Go RAM Zones - Configuration Originale Runtime (ms) 4 160 Labels marqués 1 792 576 Cout 6:50:21 villes villes Arrêt Arrêt / Guidage 1 076 838 585 168 377 902 6:50:23 6:50:23 10-min 10-min Arrêt Arrêt / Guidage 547 202 374 649 124 104 6:52:38 6:52:38 Point de rencontre 6= origine piéton Point de séparation 6= destination piéton dans 21 / 50 Dans A5 : en moy. 366 745 sommets de séparation Dans A5 : 1.17 label / sommet ⇒ proche Dijkstra Impact zones : surtout A2 , A4 (auto), A5 (dernier algo) Impact guidage : surtout A3 , A4 (longs trajets) () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 38 / 42 Méthode pour le calcul des itinéraires de covoiturage Résultats Résultats sur 50 instances Temps CPU (ms) et nb labels marqués C++, Linux, Pentium-4, 2.1GHz, 4Go RAM Zones - Configuration Originale Runtime (ms) 4 160 Labels marqués 1 792 576 Cout 6:50:21 villes villes Arrêt Arrêt / Guidage 1 076 838 585 168 377 902 6:50:23 6:50:23 10-min 10-min Arrêt Arrêt / Guidage 547 202 374 649 124 104 6:52:38 6:52:38 Point de rencontre 6= origine piéton Point de séparation 6= destination piéton dans 21 / 50 Dans A5 : en moy. 366 745 sommets de séparation Dans A5 : 1.17 label / sommet ⇒ proche Dijkstra Impact zones : surtout A2 , A4 (auto), A5 (dernier algo) Impact guidage : surtout A3 , A4 (longs trajets) () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 38 / 42 Conclusion Plan de la présentation 1 Introduction 2 Problèmes de plus courts chemins 3 Méthode pour le calcul d’itinéraires Aller-Retour 4 Méthode pour le calcul des itinéraires de covoiturage 5 Conclusion () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 39 / 42 Conclusion Conclusion Etude de 2 problèmes de calcul d’itinéraires avec contraintes de synchronisation Problèmes polynomiaux mais graphes de grande taille ... et temps de trajet dépendant du temps Difficulté pour avoir des algorithmes exacts efficaces et utilisables en environnement mobile Plateforme de calculs d’itinéraires Données libres : open data (OSM, GTFS) Compliqué (possible ?) d’obtenir des données de trafic dépendant du temps () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 40 / 42 Conclusion Conclusion Etude de 2 problèmes de calcul d’itinéraires avec contraintes de synchronisation Problèmes polynomiaux mais graphes de grande taille ... et temps de trajet dépendant du temps Difficulté pour avoir des algorithmes exacts efficaces et utilisables en environnement mobile Plateforme de calculs d’itinéraires Données libres : open data (OSM, GTFS) Compliqué (possible ?) d’obtenir des données de trafic dépendant du temps () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 40 / 42 Conclusion Perspectives Itinéraire Aller-Retour Problème pour ré-évaluation : intégration Dijkstra multi-label (dernière ré-eval) Limiter les parking : définition de zones / points de parking Itinéraires de covoiturage Attente du piéton à l’origine Autre technique de pré-calculs (contraction-hierarchy) Extension à plusieurs utilisateurs (synchronisés sur les mêmes points) Projet AMORES : informatique ubiquitaire - vie privée Autre approche algorithmique (algo distribué ?) () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 41 / 42 Conclusion Merci de votre attention Questions ? () Calcul d’itinéraires avec contraintes de synchronisation Juillet 2013 42 / 42