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