Calcul d’itinéraire multimodal et multiobjectif en milieu urbain

Calcul d’itinéraire multimodal et multiobjectif en milieu urbain

Une méconnaissance des réseaux

La situation est paradoxale. La plupart des personnes intérrogées répondent qu’elles abandonneraient la voiture si les transports en commun étaient mieux développées. Pourtant une part considérable de la population en France est desservie par les transports en communs et se situe à moins de deux kilomètres d’un arrêt de transports en communs (soit moins de dix minutes à vélo). Il s’agit donc bien souvent d’une méconnaissance des réseaux (« je ne savais pas qu’il y avait telle ligne »), d’un manque de volonté de mieux les connaître (« je n’ai pas envie d’apprendre par cœur l’horaire du bus »), de préjugés (« le bus c’est lent »7 ). Ainsi, très peu de personnes savent qu’il est possible de prendre un bus RATP au prix d’un simple ticket (1¤70 en juillet 2010) pour aller de l’aéroport d’Orly à Paris8 . Cette situation est encore plus criante dans le communes rurales. Ainsi le réseau des 62 lignes régulières d’autocar de la Haute-Garonne est inconnu pour la plupart des Toulousains alors qu’il permet d’accéder à pratiquement toutes les communes du département

Trop de possibilités Finalement, l’offre des transports en commun est pénalisée par sa richesse. Ainsi la RATP et la SNCF proposent cinq cartes différentes pour l’Île-de-France : réseau de bus, réseau de métro, réseau de RER et réseau de Transilien (trains de banlieue) et le réseau noctilien (bus de nuit). À celà il faut rajouter les réseaux de bus départementaux. De ce fait, l’utilisateur a tendance à se rabattre sur un seul mode de transport et n’envisagera pas les autres devant la complexité de se représenter tout le réseau multimodal. Il est donc parfaitement compréhensible que les trajets empruntés ne combinent pas plusieurs modes de transport.

 Généralités sur les graphes 

Dans un article publié en 1736, Leonhard Euler démontre qu’il est impossible d’emprunter une et une seule fois les sept ponts de Königsberg (aujourd’hui Kaliningrad). Pour cela il introduit une structure de données qui sera appelée plus tard graphe. Un graphe est une structure de données très simple utilisée dans de nombreux domaines tels que les télécommunications, la planification, l’électronique, les transports ou encore la théorie de la complexité. Généralités sur les graphes 10 Figure 1.1 Les sept ponts de Königsberg. Euler démontra qu’il est impossible de traverser une et une seule fois tous les ponts et introduisit la notion de graphe Google Scholar référence près de cinq millions d’articles comportant le mot graph dans le titre. Face à l’étendue du domaine il ne serait donc pas possible de présenter l’ensemble de la théorie des graphes. Nous nous focaliserons donc dans cet état de l’art sur le problème particulier du plus court chemin. Après avoir défini les notations, nous présenterons les principaux algorithmes en nous intéressant en particulier à leurs conditions d’applications. 

 Notations 

En simplifiant à l’extrême, un graphe définit l’existence d’une relation entre objets tels qu’une ligne entre deux stations de métro, une relation d’amitié dans un réseau social ou encore une rue entre deux carrefours. État de l’art 11 Nœuds et arcs Les objets sont appelés nœuds (nodes) ou sommets (vertices) et les relations arcs (edges) ou arêtes (links). Soit N l’ensemble des n = |N| nœuds où || désigne le cardinal d’un ensemble et A l’ensemble des m = |A| arcs. Puisqu’un arc relie toujours exactement deux nœuds (mais deux nœuds ne sont pas nécessairement reliés), on a A ⊆ N × N. G(N, A) définit donc un graphe. Figure 1.2 Les sept ponts de Königsberg représentés par un graphe. Les arcs représentent les ponts, les nœuds 1 et 2 la terre ferme et les nœuds 3 et 4 les îles Être orienté ou pas Lorsque les relations sont symétriques, le graphe est dit non-orienté. Formellement, un graphe est non-orienté lorsque ∀(u, v) ∈ A, (v, u) ∈ A. Un réseau informatique sera généralement non-orienté puisque deux ordinateurs peuvent communiquer dans les deux sens. À l’opposé, un réseau routier est orienté pour modéliser les rues à sens unique. Il est habituel (mais pas systématique) d’utiliser les termes nœud et arc pour les graphes orientés et sommet et arête pour les graphes non orientés. Poids sur les arcs Dans de nombreux problèmes, il est souhaitable de pouvoir qualifier une relation. Pour cela à chaque arc est associé un poids qui le décrit. Dans un réseau social il peut définir la nature de la relation (ami, famille, collègue) et dans un réseau routier la longueur d’une rue. Parfois le terme coût est utilisé. En associant à chaque arc ∀a ∈ A un poids ca ∈ C, on obtient un graphe G(N, A,C) qui est dit valué. Même si dans les cas les plus courants les poids sont constants, il est possible d’utiliser des fonctions pour représenter les poids. 

Représentation 

Pour représenter un graphe informatiquement, généralement deux modélisations sont utilisées. Matrice d’adjacence Une matrice M de dimension n×n représente un graphe de la manière suivante : Muv = 1 s’il existe un arc du nœud u au nœud v et 0 sinon. Plutôt que 1, il est possible d’utiliser le poids de l’arc pour marquer son existence. Si cette représentation permet de facilement tester l’existence d’un arc en O(1), obtenir l’ensemble des successeurs d’un nœud est en O(n). Enfin, la mémoire nécessaire pour stocker la matrice est en O(n 2 ). Liste d’adjacence Dans cette représentation, un vecteur de n éléments contient pour chaque nœud la liste de ses successeurs. Cette représentation nécessite donc moins de mémoire qu’une matrice d’adjacence et obtenir la liste des successeurs d’un nœud est en O(1). Lorsque le degré des nœuds est indépendant de la taille du graphe — comme dans un réseau routier — État de l’art 13 alors la mémoire nécessaire est en O(n). Cette représentation est donc préférée pour les graphes grands et peu denses.

Table des matières

Partie 1 : État de l’art et problématique
1 État de l’art
1.1 Généralités sur les graphes
1.1.1 Notations
1.1.2 Représentation
1.2 Plus courts chemins simples
1.2.1 Définitions
1.2.2 Caractéristiques des algorithmes
1.2.3 Principaux algorithmes
1.3 Plus court chemin avec coûts variables
1.3.1 Formalisation
1.3.2 Chemin le plus rapide sans contrainte
1.3.3 Prise en compte des grilles horaires
1.3.4 Chemin de moindre coût
1.4 Optimisation multiobjectif
1.4.1 Formalisme et notations
1.4.2 Complexité
1.4.3 Approches a priori
1.4.4 Approches interactives
1.4.5 Approches a posteriori
1.5 Itinéraires multimodaux
1.5.1 Difficultés
1.5.2 Graphe multivalué
1.5.3 Approche time-expanded
1.5.4 Approche multiobjectif
1.5.5 Questionnement
2 Problématique
2.1 Problématique
2.1.1 Intérêt pour l’utilisateur
2.1.2 Intérêt scientifique 8
2.1.3 Taille des problèmes
2.1.4 Comparatif des approches existantes
2.2 Limite d’application des algorithmes
2.2.1 Plus court chemin statique
2.2.2 Chemin le plus rapide en fonction du temps
2.2.3 Chemin de moindre coût dépendant du temps
2.2.4 Plus court chemin multiobjectif dynamique
2.2.5 Conditions générales
2.3 Front de Pareto généré selon les fonctions de coût
2.3.1 Les graphes
2.3.2 Les coûts
2.3.3 Résultats
2.3.4 Conclusion sur la nature des fonctions de coût
2.4 Sélection de certaines solutions
Partie 2 : Modèle et expérimentations
3 Modélisation d’un réseau multimodal
3.1 Caractéristiques souhaitées
3.1.1 Modélisation naturelle
3.1.2 Aucune perte d’information
3.1.3 Prise en compte de tous les modes de transport
3.1.4 Respect de la contrainte FIFO
3.2 Modélisation des différents modes
3.2.1 Voitures, piétons et cyclistes
3.2.2 Transports en commun
3.2.3 Vélos en libre service et taxis
3.2.4 Co-voiturage et transport à la demande
3.3 Nature des fonctions de coût
3.3.1 Formalisation des fonctions de coût
3.3.2 Caractéristiques des fonctions de coût
3.3.3 Implémentation des fonctions
3.3.4 Approche statistique des coûts
3.4 Considérations pratiques
3.4.1 Taille du graphe généré
3.4.2 Occupation mémoire
3.4.3 Obtention des données
4 Itinéraire multimodal le plus rapide
4.1 Algorithmes
4.1.1 Dijkstra généralisé
4.1.2 Algorithme A*
4.2 Expérimentations
4.2.1 Implémentation
4.2.2 Ensemble de tests
4.2.3 Protocole d’expérimentation
4.2.4 Les paramètres testés
4.3 Résultats expérimentaux
4.3.1 Utilisation de fonctions de coût
4.3.2 Taille des instances
4.3.3 Algorithme A*
5 Meilleur itinéraire multimodal multiobjectif
5.1 Algorithme de Martins dépendant du temps
5.1.1 Heuristiques
5.1.2 Expérimentations
5.1.3 Résultats
5.1.4 Comparaison avec l’existant
5.1.5 Conclusion
5.2 Algorithme de Tsaggouris
5.2.1 Limitations
5.2.2 Expérimentations
5.2.4 Conclusion
5.3 Contraction hierarchies
5.3.1 Adaptation
5.3.2 Expériences
5.3.3 Conclusion sur les contractions hierarchies
6 Sélection d’un sous-ensemble de solutions de qualité
6.1 Action lors de la modélisation
6.1.1 Expérimentation
6.1.2 Résultats
6.1.3 Conclusion
6.2 Action pendant la recherche d’itinéraire : dominance relâchée
6.2.1 Expérimentation et résultats
6.2.2 Application
6.2.3 Conclusion
6.3 Action a posteriori : classification des solutions
6.3.1 Procédure
6.3.2 Exemple
6.3.3 Nécessité de la normalisation
6.3.4 Bilan des k-means
7 Variantes simples
7.1 Optimiser le temps
7.2 Heure d’arrivée précise
7.2.1 Inversion du graphe
7.2.2 Modification du calcul du temps
7.2.3 Implémentation
7.3 Départs décalés
7.3.1 Lancer plusieurs calculs d’itinéraires
7.3.2 Utiliser plus d’étiquettes de départ
7.3.3 Créer plusieurs étiquettes pour les grilles horaires
7.4 Départs et arrivées multiples
7.5 Parallélisation
7.5.1 Paralléliser l’algorithme
7.5.2 Paralléliser les requêtes
7.6 Isochrones
A Implémentation
A.1 Architecture du projet
A.1.1 Organisation générale
A.1.2 Traitement des données
A.1.3 Interface web
A.2 Détail des algorithmes
A.2.1 Gestion de la file de priorité
A.2.2 Gestion des horaires
A.3 Capture d’écran du démonstrateur
B Systèmes existants
B.1 Navitia de Canal TP
B.2 Reittiopas
B.3 Google maps
B.4 Géovélo
B.5 Transpolitan
B.6 OpenTripPlanne

projet fin d'etudeTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *