CA2472950A1 - Procede et dispositif pour determiner le chemin de cout minimal entre deux points dans un reseau routier - Google Patents

Procede et dispositif pour determiner le chemin de cout minimal entre deux points dans un reseau routier Download PDF

Info

Publication number
CA2472950A1
CA2472950A1 CA002472950A CA2472950A CA2472950A1 CA 2472950 A1 CA2472950 A1 CA 2472950A1 CA 002472950 A CA002472950 A CA 002472950A CA 2472950 A CA2472950 A CA 2472950A CA 2472950 A1 CA2472950 A1 CA 2472950A1
Authority
CA
Canada
Prior art keywords
segments
node
graph
level
graphs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002472950A
Other languages
English (en)
Inventor
Julien Serre
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WEBRASKA MOBILE TECHNOLOGIES
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CA2472950A1 publication Critical patent/CA2472950A1/fr
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3446Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Navigation (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Le réseau comportant une pluralité de noeuds reliés deux à deux par des segments, on attribue un coût à chaque segment du réseau, on développe deux graphes de chemins, sensiblement à partir des deux points, respectivement, on interrompt le développement des deux graphes lorsqu'ils comprennent au moins un premier noeud commun d'interférence, on détermine les deux chemins de coût minimal, appartenant respectivement aux deux graphes, et on relie les deux chemins de coût minimal afin d'obtenir le chemin de coût minimal entre les deux points. L'invention concerne également un serveur pour la mise en oeuvre du procédé.

Description

PROCEDE ET DISPOSITIF POUR DETERMINER LE CHEMIN DE COUT MINIMAL ENTRE DEUX
POILA
TS DANS UN RESEAU ROUTIER
L'invention concerne un procédé de détermination d'un chemin de coût minimal entre deux points d'un réseau de transport.
Ce type de procédé est notamment utilisé par des systèmes d'aide à la s navigation routière, destinés à déterminer le chemin routier de coût le plus faible, entre un point d'arrivée et un point de départ, à un instant donné, afin d'assister un conducteur de véhicule automobile. Dans ce cas, le coût peut être un coût en temps, en distance, en argent, en confort routier ou en tout autre paramètre.
io Il existe principalement deux types d'algorïthmes permettant de déterminer le chemin routier de coût minimal entre un point de départ et un point d'arrivée.
ts Dans les deux cas, le réseau routier est représenté par une pluralité de noeuds (graphes), reliés deux à deux par des segments correspondant à des portions d'a.xe routier (rue, route, autoroute ou autre). IJn coût est attribué à
chaque segment.
zo Le premier algorithme consiste à développer un graphe de chemins, à
partir du point de départ et jusqu'au point d'arrivée, sans connaître a priori la position du point d'arrivée. Le graphe se développe de façon concentrique, autour du point de départ, et a donc une forme globalement circulaire. Au cours du développement du graphe, on détermine concomitamment les coûts as respectifs des différents chemins et on sélectionne le chemin optimal, de coût minimal, reliant le point de départ et le point d'arrivée.
Avec le second type d'algorithme, qualifié de "heuristique", orn fixe le point d'arrivée et on développe un graphe de chemins, en forme de goutte, à
3o partir du point de départ et jusqu'au point d'arrivée en tenant compte de la distance.
Avec le premier algorithme de calcul, le graphe s'étend sur une surface circulaire, centrée autour du point de départ et de rayon R égal à la distance 3s entre le point de départ et le point d'arrivée. La surface analysée est donc très importante. Il en résulte que le temps de calcul est très élevé.
Avec le second algorithme de calcul, la surface analysée est fortement réduite, du fait de la forme du graphe. Cependant, le temps de calcul par nceud ao est beaucoup plus important, de sorte que le temps global de calcul est aussi élevé.
-2-La présente invention propose de pallier ces inconvénients, autrement dit de réduire le temps de calcul d'un chemin entre deux points, à travers un réseau de transport.
s A cet effet, l'invention concerne un procédé pour déterminer le chemin de coût minimal entre deux points, à travers un réseau de transport comportant une pluralité de noeuds reliés deux à deux par des segments, dans lequel - on attribue un coût à chaque segment du réseau, io - on développe un graphe de chemins, sensiblement à partir de l'un au moins des deux points, et -- on détermine le chemin de coût minimal reliant les deux points, procédé caractérisé par le fait que . - on développe deux graphes de chemins, sensiblement à partir des is deux points, respectivement, - on interrompt le développement des deux graphes lorsqu'ils comprennent au moins un premier nceud commun d'interférence, - on détermine les deux chemins de coût minimal, appartenant respectivement aux deux graphes, Zo ~ - et on relie les deux chemins de coût minimal afin d'obtenir le chemin de coût minimal entre les deux points.
Le coût peut être un coût en temps, en distance, en argent, en confort rourier, ou autre.
2s L'invention consiste donc à développer deux graphes, à partir des deux points respectivement, jusqu'à ce que ces deux graphes se rencontrent, alors que, dans l'art antérieur, on développait un seul graphe à partir de l'un des deux points, jusqu'à ce que ce graphe atteigne l'autre point. On réduit ainsi 3o considérablement la surface analysée et par conséquent le nombre de noeuds, sans augmenter le temps de calcul par noeud.
La solution de l'invention, qui pourrait paraître simple a posteriori, ne l'était pas pour l'homme du métier qui cherchait à réduire le temps de calcul.
3s En effet, il n'était pas évident a priori de réduire le temps de calcul en augmentant le nombre de graphes développés.
Interrompant le développement des graphes, dès lors qu'ils comprennent un premier noeud d'interférence, on peut ainsi diviser la surface a.o analysée sensiblement par deux.
-3-Avantageusement, dans le cas où l'un au moins des points est sensiblement situé à l'emplacement d'un nceud, on développe le graphe correspondant à partir dudit noeud.
Avantageusement encore, pour l'un au moins des deux points, on recherche aux moins deux noeuds voisins dudit point, on attribue un coût de base non nul à chacun de ces deux noeuds et on développe un unique graphe à
partir de ces deux noeuds.
lo Dans ce cas, et de préférence, les deux noeuds formant un segment sur lequel le point est sensiblement situé, on détermine le coût de base de chaque noeud, par proportionnalité, à partir du coût du segment entre ces deux noeuds.
Si un noeud est inaccessible, par exemple à cause d'un sens interdit, il n'est pas pris en compte.

Ainsi, dans le cas où le point n'est pas situé à ~ l'emplacement d'un noeud du réseau, on développe le graphe à partir des nceuds situés à proximité
du point, en attribuant à ces noeuds un coût de base non nul. Cela revient finalement à développer virtuellement le graphe à partir du point considéré.
Dans un mode de réalisation particulier, - on classe les segments suivant une pluralité de niveaux de réseau, - au cours du développement de l'un au moins des deux graphes, on calcule le nombre de segments du graphe appartenant au niveau m;nf le plus 2s bas, et - à partir d'un seuil prédéfini de nombre de segments de niveau m;n~, on développe le graphe en tenant compte des seuls segments appartenant aux niveaux strictement supérieurs au niveau m;,~.
3o Ainsi, dès lors que le graphe contient un nombre de segments de niveau m;nf supérieur au seuil, on passe du niveau m;nf au niveau suivant m;nf+1 et on poursuit le dëveloppement du graphe en ne tenant compte que des segments de niveau supérieur ou égal au niveau m;"f. On réduit ainsi considérablement le nombre de calculs et, par conséquent, le temps de calcul.
Dans ce cas, et de préférence, - au cours du développement des deux graphes, on calcule le nombre de segments de chaque graphe appartenant au niveau m;"f le plus bas et - lorsque le nombre de segments de niveau m;nf, pour les deux graphes, a.o a atteint ledit seuil, on poursuit le développement des deux graphes en tenant compte des seuls segments appartenant aux niveaux strictement supérieurs au niveau m;"f.
-4-Ainsi, on ne passe du niveau m;"f au niveau m;nf+1 que lorsque les deux graphes contiennent un nombre de segments de niveau m;~f supérieur au seuil.
Si le nombre de segments de niveau m;"f de l'un des deux graphes n'atteint s jâmais le seuil, on prend en compte tous les segments de niveau supérieur ou égal à m;"f pour le développement des deux graphes.
De préférence encore, on démarre le développement dudit graphe, en tenant compte de tous les segments appartenant à tous les niveaux' de réseau.
io Avantageusement, - on recherche un groupe de segments successifs, d'un niveau donné
m, comprenant exclusivement des noeuds intermédiaires n'appartenant à aucun segment de niveau au moins égal à m autre que ceux du groupe de segments is successifs de niveau m considéré, et - on substitue le groupe de segments successifs par un unique segment de niveau m.
Par définition, un noeud "intermédiaire" est un noeud compris entre les Zo deux noeuds d'extrémité d'une succession de segments adjacents.
On crée ainsi un réseau virtuel comprenant un nombre de noeuds fortement réduit.
as On peut développer chaque graphe de manière globalement concentrique, par exemple en utilisant un algorithme à buclcets.
Dans la mise en oeuvre préférée du procédé de l'invention, ayant trouvé ledit premier naeud commun d'interférence Pi, on recherche le naeud 3o d'interférence optimal P;o parmi les noeuds déjà analysés pour déterminer les deux chemins de coût minimal et contenant le noeud d'interférence , optimal pro, L'invention concerne également un serveur d'aide à la navigation 3s routière pour la mise en oeuvre du procédé, comprenant une interface de connexion à un rëseau de communication, un bloc de réception de requêtes de terminaux clients, un bloc de réception de données de réseau routier, un bloc de classement de segments routiers, un bloc de création d'un réseau routier virtuel, un bloc d'étiquetage de segments routiers, un module de calcul et un a.o bloc d'émission.
-5-L'invention sera mieux comprise à l'aide de la description suivante du procédé pour déterminer le chemin de coût minimal entre au moins deux points, à travers un réseau de transport, selon un mode de réalisation particulier de l'invention, en référence au dessin annexé sur lequel:
- la figure 1 représente un schéma d'un terminal client relié à un serveur d'aide à la navigation routière, à travers l'Internet;
- la figure 2 représente un schéma bloc fonctionnel du serveur d'aide à
~o la navigation de la figure l;
- la figure 3 représente une vue partielle d'un réseau routier;
- la figures 4 et 5 représentent respectivement un tableau de parents et is un tableau de buclcets, après le développement d'un graphe à travers le réseau routier de la figure 3.
Le procédé de l'invention permet de déterminer le chemin de coût minimal, ici en temps, entre au moins deux points, à travers un réseau de zo transport routier.
Dans l'exemple particulier de la description, ce procédé est mis en oeuvre par un serveur 1 d'aide à..la navigation routière, connecté à un réseau de communication 3, ici l'Intemet, et destiné à indiquer à des terminaux clients, zs sur requéte de ces derniers, le chemin de coût minimal pour relier un point de départ et un point d'arrivée à travers le réseau de transport routier.
Les terminaux clients comprennent des téléphones cellulaires pouvant se connecter à l'Intemet 3, par connexion téléphonique à un fournisseur 3o d'accès 5, à travers un réseau téléphonique cellulaire 4, et communiquer à
travers l'Internet 3.
Le serveur 1 comprend une interface 10 de connexion à l'Internet 3, un bloc 11 de réception de requétes de terminaux clients, un bloc 12 de réception 3s de données relatives au réseau routier, un bloc 13 de classement de segments routiers, un bloc 14 de création d'un réseau routier virtuel, un bloc 15 d'étiquetage de segments ~ routiers, un module de calcul 16 et un bloc d'émission 17.
~o Le bloc de réception 11 est relié, en entrée, à l'interface de connexion Internet 10 et, en sortie, au module de calcul 16. Le bloc 11 est destiné à
recevoir des requêtes de détermination d'un chemin routier de coût minimal,
-6-entre un point de départ et un point d'arrivée, émises par des terminaux clients. Chaque requête contient une indication de localisation du point de départ et une indication de localisation du point d'arrivée.
Le bloc de réception 12 est relié, en entrée, à l'interface de connexion Internet 10 et, en sortie, au bloc d'étiquetage 15 et au bloc de classement 13.
Ce bloc 12 est destiné à acquérir, à travers l'Internet 3, auprès de serveurs fournisseurs, non représentés, des données relatives au réseau routier, comprenant notamment des données de . cartographie vectorielle et des io informations concernant le trafic routier, régulièrement mises à jour. La carte du réseau routier comprend une pluralité de noeuds, reliés deux à deux par des segments correspondant à des portions d'axes routiers. Ces axes routiers comportent des rues, des routes et des autoroutes. On remarquera ici que l'invention s'applique aussi à des réseaux de transport public, par exemple par ls raïl, comme un réseau de métro, par mer, comme un réseau de ferry.
Le bloc de classement 13, relié au bloc de création 14, est destiné à
classer les segments routiers ici suivant trois niveaux, d'indice un, deux et trois, correspondant respectivement aux rues, aux routes et aux autoroutes.
?o . L'indice d'un niveau est fonction dë la taille des axes routiers de ce niveau. En l'espèce, plus le niveau est élevé, plus la taille des axes routiers de ce niveau est importante.
Le bloc de création 14, relié au bloc de calcul 16, est destiné à créer as un réseau routier virtuel, comportant ici un nombre réduit de segments de niveau 3. Pour créer ce réseau virtuel, le bloc 14 recherche dans le réseau routier des groupes de segments successifs de niveau trois tels que chaque groupe comprend exclusivement des noeuds intermédiaires n'appartenant à
aucun segment de niveau trois autre que ceux du groupe de segments 3o successifs de niveau trois considéré. Par noeud "intermédiaire", on entend signifier qu'il s'agit d'un noeud compris entre les deux noeuds d'extrémité
d'une succession de segments adjacents. Puis le bloc 14 substitue chaque groupe de segments successifs de niveau trois trouvé par un unique segment virtuel de niveau trois, reliant les deux noeuds d'extrémité de la succession de segments 3s du groupe considéré.
Le bloc d'étiquetage 15, relié aux blocs 12, 14 et 16, est destiné à
attribuer un coût à chaque segment du réseau routier virtuel et à mettre à j our régulièrement ce coût, à l'aide des informations de trafic routier reçues par le a.o bloc 12.

_7_ Le module de calcul 16 comprend un bloc 160 de développement de graphe, un bloc 161 de détection d'un changement de niveau de segments et un bloc 162 de détermination du chemin de coût minimal.
s Le bloc de développement 160 est destiné, sur requête d'un terminal client, à développer deux graphes de chemin routier, à partir du point de départ et du point d'arrivée respectivement, compte tenu de l'état du trafic routier, en utilisant ici un algorithme à buckets.
io L'algorithme à buckets est un algorithme de calcul de graphes. Le lecteur pourra se reporter à l'ouvrage "Algorithmes de graphes" de Christian PRINS, éditions Eyrolles, deuxième tirage 1997, afin d'obtenir des informations complémentaires concernant cet algorithme.
ls Afin d'expliciter succinctement l'algorithme à buckets, on va maintenant décrire, à titre d'exemple, le développement d'un -graphe par le module de calcul 16, à partir d'un noeud Po et jusqu'à un noeud PZ, à travers le réseau routier, à l'aide de l'algorithme à buckets, en référence aux figures 3 à
5.

Le réseau routier contient une pluralité de noeuds P~, avec n variant de 0 à N, reliés deux à deux par des segments. Chaque segment est associé à un coût. Sur la figure 3, on a représenté partiellement le réseau routier. Le coût de chaque segment entre deux noeuds est indiqué entre parenthèses.
Pour développer le graphe, le bloc de développement 160 utilise deux tableaux, respectivement appelés "tableau des parents" et "tableau des buckets", respectivement représentés sur les figures 4 et 5.
3o Le tableau des parents comprend - une première colonne de noeuds, répertoriant tous les noeuds du rëseau, - une deuxième colonne de noeuds parents, destinée à contenir, pour chaque noeud du réseau, un noeud parent associé à ce noeud, 3s - une troisième colonne de coûts, destinée à contenir, pour chaque noeud du réseau, le coût de ce nceud, et - une quatrième colonne destinée à contenir, pour chaque noeud du réseau, un indice de sélection, appelé "flag", indiquant si ce noeud a ou n'a pas déjà été sélectionné pour faire partie du graphe, selon que le flag vaut un ou 4o zéro.

_g_ Par définition, un noeud "parent" P~' d'un nceud Pn est un noeud relié au noeud P~ par un seul segment et situé en amont du naeud Pn le long d'un chemin du graphe. Le noeud Pn est en fait un naeud "descendant" vis-à-vis du noeud P"'. On notera que le noeud parent Pn' peut avoir plusieurs noeuds s descendants appartenant respectivement à plusieurs chemins du graphe.
Le tableau des buckets est destiné à contenir la liste des noeuds du graphe, c'est-à-dire les noeuds sélectionnés pour faire partie du graphe, et classés dans l'ordre croissant en coût, ainsi que le coût associé à chacun de ces io noeuds. Par définition, le coût d'un noeud, pour un chemin donné, correspond au coût du chemin entre ce noeud et le noeud d'origine du graphe, qui est égal à
la somme des coûts des segments formant ce chemin.
Le développement du graphe du noeud d'origine Po jusqu'au noeud PZ
is s'effectue suivant les étapes décrites ci-après.
Dans le tableau des parents, la colonne des noeuds parents et la colonne des coûts sont initialement vides et tous les flags sont initialement mis à zéro. Le tableau des buckets est initialement vide. Par souci de clarté, le 2o tableau des parents ne contient que les noeuds Po, ..., P8, PZ, nécessaires à la compréhension de l'exposé ci-dessous.
D'emblée on notera que le fait de sélectionner un noeud du réseau consiste à introduire ce noeud dans le graphe.
Etape initiale On sélectionne le naeud d'origine Po et on classe ce naeud Po, avec un coût associé initial, en tête de liste, dans le tableau des buckets. Par ailleurs, dans le tableau des parents, on indique le coût initial du noeud Po et on met le 3o flag du noeud Po à un.-Le noeud Po n'est associé à aucun point parent.
Etapes de développement du graphe On analyse le premier noeud de la liste du tableau des buckets, à savoir Po. Pour cela, on recherche les noeuds adjacents au noeud Po. Par définition, les 3s noeuds "adjacents" à un noeud Pn sont les noeuds du réseau relïés au neeud P
par un unique segment (il est rare qu'il y en ait plusieurs). On détermine ainsi que les noeuds P4, PZ, P7 et PS sont adjacents au nceud Pn, on sélectionne ces noeuds adjacents et on les classe dans le tableau des buckets, avec leurs coûts respectifs associés, dans l'ordre croissant en coût. Dans le tableau des parents, 4o pour chaque noeud sélectionné P4, Pa, P7 et P5, on met le flag de ce noeud à un, on associe à ce noeud le noeud parent Po et on indique le coût de ce noeud.

On analyse ensuite, l'un après l'autre, dans leur ordre de classement, les noeuds suivants de la liste du tableau des buckets. Au fur et à mesure de l'analyse des noeuds successifs de la liste du tableau des buckets, on développe le graphe, en enrichissant le tableau des buckets, jusqu'à ce que le noeud PZ
s soit sélectionné, en d'autres termes jusqu'à ce que le graphe atteigne le nceud PZ, comme explicité ci-après.
Pour l'analyse de chaque noeud Pn de la liste, on recherche et on détermine les noeuds adjacents à ce noeud P". Parmi ces noeuds adjacents, on io sélectionne le ou les noeuds qui n'ont pas déjà été sélectionnés. Pour chaque noeud adjacent ayant déjà été sélectionné, on calcule le nouveau coût de ce noeud, en tenant compte du fait qu'il appartient à un autre chemin (celui passant par le noeud analysé P"). Si le nouveau coût du noeud considéré est inférieur à son ancien coût (figurant dans le tableau des parents), on is sélectionne ce noeud. Sinon, le noeud considéré n'est pas sélectionné.
Après avoir analysé le point P", on classe le ou les naeuds sélectionnés dans le tableau des buckets, avec leurs coûts respectifs associés, dans l'ordre croissant en coût. Par ailleurs, dans le tableau des parents, pour chaque noeud ?o . sélectionné, on associe à ce noeud le noeud parent Pn (en substituant le n~ud Pn à l'ancien noeud parent, dans le cas où le nceud considéré a déjà été
sélectionné), on indique le coût de ce nceud (en le substituant à son ancien coût, dans le cas dù le noeud considéré a déjà été sélectionné) et on met le flag de ce noeud à un.
Zs On développe ainsi un graphe de manière globalement concentrique, autour du point d'origine Po. Le graphe a donc une forme sensiblement circulaire, centré autour du point d'origine Po.
3o Etape finale Après avoir sélectionné le noeud PZ, autrement dit lorsque le graphe a atteint le noeud PZ, on reconstitue le chemin de coût optimal, en remontant depuis le noeud P~ jusqu'au noeud Po, de noeud en noeud, à l'aide des relations de parenté entre noeuds figurant dans le tableau des parents. On détermine 3s ainsi que le chemin de coût minimal est le chemin Po ~ P7 ~ PZ.
Le bloc de détection 161, relié au bloc de développement 160, est destiné à calculer, au fur et à mesure du développement de chaque graphe, le nombre de segments de niveau le plus bas m;"f appartenant au graphe a.o considéré, à détecter le dépassement d'un seuil de nombre de segments de niveau m;"f, et à signaler le dépassement de ce seuil par les deux graphes au bloc de développement 160, de façon à ce que celui-ci poursuive le développement des deux graphes en tenant compte des seuls segments appartenant aux niveaux strictement supérieurs au niveau m;nf.
Le bloc 162 de détermination du chemin optimal (c'est-à-dire de coût s minimal), relié au bloc de développement 160, est destiné à reconstituer le chemin de coût minimal, entre deux noeuds, à l'aide des relations de parenté
entre noeuds figurant dans le tableau des parents.
Le bloc d'émission 17, relié au module de calcul 16 et à l'interface de lo connexion Internet 10, est destiné à émettre un message vers chaque terminal requérant afin de lui notifier le chemin optimal entre le point de départ et le point d'arrivée.
Le procédé pour déterminer le chemin routier de coût minimal entre ls un point de départ A et un point d'arrivée B, à travers le réseau routier, va maintenant être explicité. Les points A et B sont ici Ehacun situés sensiblement à l'emplacement d'un noeud du réseau rôutier.
A l'aide des informations relatives au trafic routier, le bloc de 2o classement 13 classe les segments du réseau routier suivant les trois niveaux de réseau (rue, route, autoroute). Le bloc 14 crée ensuite un réseau routier virtuel, comportant un nombre réduit de segments de niveau trois, comme précédemment explicité.
2s Le bloc d'étiquetage 15 attribue un coût à chaque segment du réseau routier virtuel et actualise régulièrement cé coût, à l'aide des informations de trafic reçues. Le coût d'un segment virtuel de niveau trois, correspondant à
un groupe de segments successifs du réseau routier d'origine, est égal à la somme des coûts des segments de ce groupe.

Un terminal client 2 adresse au serveur 1 une requête de détermination du chemin de coût minimal entre le point de départ A et le point d'arrivée B, contenant une indication de localisation du point A et une indication de localisation du point B.
Dans le serveur 1, le bloc de réception 11 reçoit la requête du terminal 2, en extrait les indications de localisation des points A et B et les fournit au module de calcul 16.
4o Le bloc de développement 160 développe concomitamment deux graphes de chemins, respectivement à partir des deux points A et B, en déterminant les coûts respectifs des différents chemins de chaque graphe, à

s l'aide de l'algorithme à buckets précédemment explicité. Les points A et B
étant situés sensiblement â l'emplacement d'un noeud du réseau, on assimile chaque point A, B au noeud situé à proximité, en attribuant un coût de base nul à ce naeud.
Le bloc 160 démarre le développement des deux graphes en utilisant les segments des trois niveaux de réseau.
Au cours du développement des deux graphes, le bloc de détection l0 161 calcule le nombre de segments de chaque graphe appartenant au niveau le plus bas, à savoir le niveau un. Si le nombre de segments de niveau un, pour les deux graphes, atteint un seuil prédéfini S 1, le bloc 161 le détecte et le signale au bloc de développement 160. Celui-ci poursuit le développement des deux graphes, au-delà de ce seuil, en utilisant les seuls segments 1 s appartenant aux niveaux deux et trois, strictement supérieurs au niveau un, et, concomitamment, calcule le nombre de segments .de chaque graphe appartenant au niveau le plus bas restant, à savoir le niveau deux. Si le nombre de segments de niveau deux, pour les deux graphes, atteint un seuil prédéfini S2, le bloc 160 le détecte et le signale au bloc de développement ao _ qui poursuit le développement des deux graphes, au-delà de ce seuil SZ, en ne tenant compte que des segments de niveau trois, strictement supérieurs au niveau deux. On notera que si le nombre de segments de niveau un de l'un des deux graphes n'atteint pas le seuil S 1, le bloc de développement 161 développe les deux graphes en tenant compte des trois niveaux, même si le as nombre de segments de niveau un de l'autre graphe atteint et dépasse le seuil S1.
Dès que les deux graphes comprennent un premier noeud commun d'interférence P;, autrement dit dès qu'un même noeud d'interférence P; a été
3o sélectionné dans le développement des deux graphes, le bloc de développement 161 interrompt le développement des deux graphes.
Ayant trouvé ce premier noeud commun d'interférence P; , on analyse à
nouveau les tableaux de buckets pour en déduire le noeud d'interférence 3s optima P;o correspondant aux chemins de coût minimal et qui a forcément été
analysé précédemment et se trouve dans le tableau de buckets de l'un ou l'autre des points de départ et d'arnvée, ce qui va maintenant être démontré
par des raisonnements par l'absurde.
4o Soit un calcul bidirectionnel.

Le calcul du départ à l'arrivée est noté C0, le calcul de l'arrivée au départ est noté C 1 On note VO[...] et V1[...] les coûts pour atteindre chaque point, s respectivement suivant le calcul CO et suivant le calcul C 1.
io is L'algorithme de calcul trouve un premier point d'intersection entre CO
et C 1, noté X qui est donc un point qui a été choisi par CO et par C 1. Le coût total du chemin en passant par X est V[X] = VO[X] + V 1 [X].
Nous allons démontrer que s'il existe un point Y tel que V[Y] < V[X], donc si le chemin passant par Y est de meilleur coût que celui par x, alors Y
a déjà été analysé, ou par C0, ou par Cl, et qu'il se trouve donc dans le tableau des buckets de l'un ou de l'autre.
X
A
Cala Calcul 1 2s Y
Soit BO et Bl les points parents de Y dans les deux calculs.
Considérons que Y n'a été analysé, ni par C0, ni par C 1.
3s Y n'a pas été analysé par C0, donc BO n'a pas été choisi par C0, donc Vo[BO] > = vo[x]
Y n'a pas été analysé par C l, donc B 1 n'a pas été choisi par C 1, donc V1[B1] >=V1[X]
Comme V [Y] = VO [Y] + V 1 [Y] et VO [Y] > VO [BO], V 1 [Y] > V 1 [B 1 On a V [Y] > VO [BO] + V 1 [B 1 ]

Donc V[Y] > VO[X] + V1[X]
V [Y] > V [X]
On en déduit donc que si V[Y] c= V[X], Y à forcément été déjà
s analysé (BO ou B 1 a déj à été choisi). Donc Y se trouve forcément dans le tableau des buckets de CO ou de C 1.
X étant trouvé, il suffit donc de parcourir le contenu des deux tableaux de buckets pour trouver d'éventuels points dont le chemin est de meilleur coût i o que X.
Considérons maintenant que Y est un point de j onction de CO et C 1 meilleur que X.
is Si BO n'a pas déjà été choisi par C0, alors VO[BO] > VO[X]
Pour que le trajet par Y soit quand méme de meilleur coût, on doit avoir V 1 [BO] = V 1 [Y] + coût de [B0, Y] > V 1 [X]
ao ~ Il en résulte que BO a déjà été choisi par C1. Donc Y n'est pas le point de rencontre de CO et C 1. Ce qui est absurde par définition.
On raisonne de même pour B 1.
2s Il en résulte que BO et B1 avaient déjà été choisis au moment où on trouve X.
Le bloc 162 reconstitue ensuite le chemin optimal entre le point A et 30 le noeud d'interférence P;o et le chemin optimal entre le point B et le noeud d'interférence P;o, à l'aide des relations de parenté entre noeuds figurant dans les tableaux des parents, et associe, relie ces deux chemins optimaux afin d'obtenir le chemin de coût minimal entre les deux points A et B.
3s Si l'un au moins des deux points A, B, par exemple le point A, n'est pas situé sensiblement à l'emplacement d'un noeud du réseau, le bloc de développement 160 recherche au moins deux noeuds PA,o, PA,1, ..., formant un segment et entre lesquels le point A est sensiblement situé.
a.o Le bloc 160 attribue ensuite à chacun des noeuds PAO, PA1, ..., formant un segment, un coût de base non nul, déterminé par proportionnalité à partir du coût du segment considéré, comme explicité ci-après. Soit PA,~ et PA,"+~, deux noeuds voisins du point A, formant un segment routier sur lequel le point A est sensiblement situé. Le coût de base c(PA"~), c(PA, ~+,) de chaque neeud PA,n, PA,"+, est calculé à l'aide des relations suivantes:
d ('~, pA.n C\pA.n ~ C'PA.n ~ pA.n+1 ~ ' d PA.n,pA.n*I
[, (P~ d ~~~ pA.n*~
C \PA.n+~ ~ = C \ 'A.n ~ ~A.nW ) ' d pA n , PA.n+1 où c(PA,n,Pa,,n+1), d(PA>",PA,"+t)~ d(A,PA,") et d(A,PA, "+1) représentent respectivement le coût du segment reliant PA,n et P~,n+i, la distance entre PA,"
et PA,n+a la distance entre PA,n et A et la distance entre PA,n+1 et A.
io Pour développer le graphe à partir du point A, on procède de la façon suivante.
Lors de l'étape initiale, après avoir déterminé les noeuds PA,n voisins du point A, on détermine le coût de base de chacun de ces noeuds PA,n, on les is sélectionne et on les classe dans le tableau des buckets par ordre croissant en coût. Dans le tableau des parents, on associe à chaque nceud PA,n le point parent A, on indique le coût de ce noeud PA,n et on met son flag à un.
Lors des étapes suivantes de développement du graphe, on analyse zo successivement les noeuds de la liste du tableau des buckets, dans leur ordre de classement, tout en sélectionnant au fur et à mesure de nouveau nceuds pour développer le graphe, comme précédemment explicité.
On développe ainsi un unique graphe à partir de plusieurs noeuds de 2s départ, auxquels on attribue un coût de base non nul. On procède de la sorte par exemple lorsque le point de départ, ou d'arrivée, est situé dans une rue, encre deux noeuds, ou sur une place, dans laquelle débouchent plusieurs rues, un noeud étant situé à chaque intersection entre la place et une rue.
3o Après la détermination du chemin de coût minimal, le bloc d'émission 17 transmet au terminal requérant une notification indiquant le chemin de coût minimal entre les deux points A et B, à travers l'Internet 3 et le réseau cellulaire 4.
3s Le réseau routier pourrait être subdivisé en deux niveaux ou en plus de trots niveaux.

Dans la description qui précède, le serveur d'aide à la navigation crée un réseau virtuel en regroupant des segments successifs de niveau trois. D'une manière générale, dans le cas où le réseau routier est subdivisé en M niveaux, le serveur d'aide à la navigation pourrait rechercher des groupes de segments s successifs d'un niveau donné m comprenant exclusivement des noeuds intermédiaires n'appartenant à aucun segment de niveau au moins égal à m (c'est-à-dire supérieur ou égal à m) autre que ceux du groupe de segments considéré, puis substituer chaque groupe de segments successifs par un unique segment de niveau m.
io Par ailleurs, toujouzs dans le cas général où le réseau routier est subdivisé en M niveaux, au cours du développement des deux graphes, le serveur d'aide à la navigation pourrait calculer le nombre de segments de chaque graphe appartenant au niveau m;"f le plus bas et après que le nombre ls de segments de niveau m;nf, pour les deux graphes, a atteint un seuil prédéterminé, dëvelopper les deux graphes en tenant compte des seuls segments appartenant aux niveaux strictement supérieurs au niveau m;"f, le nouveau niveau inférieur pris en compte devenant le niveau m;"f+1. Le serveur pourrait réitérer cette opération, en incrémentant le niveau inférieur au fur et à
20 ~ mesure du développement des graphes.
~n pourrait utiliser un algorithme de calcul de graphes autre que l'algorithme à buckets. Dans ce cas, le développement des graphes pourrait s'effectuer de façon non concentrique.
Au lieu d'interrompre le développement des deux graphes dès lors qu'ils comprennent un premier noeud commun d'interférence, on pourrait l'interrompre lorsque les deux graphes comprennent plusieurs points communs d'interférence et déterminer le chemin optimal entre les deux points, 3o de départ et d'arnvëe, passant par l'un de ces noeuds d'interférence.
Le serveur d'aide à la navigation pourrait être agencé pour déterminer le chemin de coût minimal en distance, en argent, en confort routier ou autre.
3s Les terminaux clients pourraient se relier au serveur d'aide à la navigation par un réseau de communication autre que le réseau global comprenant l'Internet et le résëau cellulaire.
Le procédé de l'invention pourrait également être mis en oeuvre par un 4o système autre qu'un serveur d'aide à la navigation et à un réseau de transport autre qu'un réseau routier, par exemple à un réseau ferroviaire.

Claims (14)

Revendications
1- Procédé pour déterminer le chemin de coût minimal entre deux points (A, B), à travers un réseau de transport comportant une pluralité de noeuds (Pn) reliés deux à deux par des segments, dans lequel - on attribue un coût à chaque segment du réseau, - on développe un graphe de chemins, sensiblement à partir de l'un au moins des deux points (A, B), et - on détermine le chemin de coût minimal reliant les deux points (A, procédé caractérisé par le fait que - on développe deux graphes de chemins, sensiblement à partir des deux points (A, B), respectivement, - on interrompt le développement des deux graphes lorsqu'ils comprennent au moins un premier noeud commun d'interférence (P;), - on détermine les deux chemins de coût minimal, appartenant respectivement aux deux graphes, - et on relie les deux chemins de coût minimal afin d'obtenir le chemin de coût minimal entre les deux points (A, B).
2- Procédé selon la revendication l, dans lequel, dans le cas où l'un au moins des points (A, B) est sensiblement situé à l'emplacement d'un noeud, on développe le graphe correspondant à partir dudit noeud.
3- Procédé selon l'une des revendications 1 et 2, dans lequel, pour l'un au moins des deux points (A, B), on recherche aux moins deux noeuds (P A,n P A,n+1) voisins dudit point (A), on attribue un coût de base non nul à
chacun de ces deux noeuds (PA,n, PA,n+1) et on développe un unique graphe à
partir de ces deux noeuds (PA,n, PA,n+1).
4- Procédé selon la revendication 3, dans lequel, les deux noeuds (PA,n, PA,n+1) formant un segment sur lequel le point (A) est sensiblement situé, on détermine le coût de base de chaque noeud (PA,n, PA,n+1), par proportionnalité, à partir du coût du segment entre ces deux noeuds (PA,n, PA,n+1 )
5- Procédé selon l'une des revendications 1 à 4, dans lequel - on classe les segments suivant une pluralité de niveaux de réseau, - au cours du développement de l'un au moins des deux graphes, on calcule le nombre de segments du graphe appartenant au niveau minf le plus bas, et - à partir d'un seuil prédéfini de nombre de segments de niveau m inf, on développe le graphe en tenant compte des seuls segments appartenant aux niveaux strictement supérieurs au niveau m inf.
6- Procédé selon la revendication 5, dans lequel - au cours du développement des deux graphes, on calcule le nombre de segments de chaque graphe appartenant au niveau m inf le plus bas et - lorsque le nombre de segments de niveau m inf, pour les deux graphes, a atteint ledit seuil, on poursuit le développement des deux graphes en tenant compte des seuls segments appartenant aux niveaux strictement supérieurs au niveau m inf.
7- Procédé selon l'une des revendications 5 et 6, dans lequel on démarre le développement dudit graphe, en tenant compte de tous les segments appartenant à tous les niveaux de réseau.
8- Procédé selon l'une des revendications 1 à 7, dans lequel - on recherche un groupe de segments successifs, d'un niveau donné
m, comprenant exclusivement des noeuds intermédiaires n'appartenant à aucun segment de niveau au moins égal à m autre que ceux du groupe de segments successifs de niveau m considéré, et - on substitue le groupe de segments successifs par un unique segment de niveau m.
9- Procédé selon l'une des revendications 1 à 8, dans lequel on développe chaque graphe, de manière globalement concentrique.
10- Procédé selon la revendication 9, dans lequel on développe les deux graphes en utilisant un algorithme à buckets.
11- Procédé selon l'une des revendications 1 à 10, dans lequel on développe les deux graphes concomitamment.
12- Procédé selon l'une des revendications 1 à 11, dans lequel, ayant trouvé ledit premier noeud commun d'interférence (P i), on recherche le noeud d'interférence optimal (P io) parmi les noeuds déjà analysés pour déterminer les deux chemins de coût minimal et contenant le noeud d'interférence optimal (P io).
13- Serveur d'aide à la navigation routière pour la mise en couvre du procédé de l'une des revendications 1 à 12, comprenant une interface (10) de connexion à un réseau de communication (3), un bloc (11) de réception de requêtes de terminaux clients, un bloc (12) de réception de données de réseau routier, un bloc (13) de classement de segments routiers, un bloc (14) de création d'un réseau routier virtuel, un bloc (15) d'étiquetage de segments routiers, un module de calcul (16) et un bloc d'émission (17).
14- Serveur selon la revendication 13, dans lequel le module de calcul (16) comprend un bloc (160) de développement de graphe, un bloc (161) de détection de changement de niveau de segments et un bloc (162) de détermination de chemin de coût minimal.
CA002472950A 2002-01-09 2002-01-09 Procede et dispositif pour determiner le chemin de cout minimal entre deux points dans un reseau routier Abandoned CA2472950A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/FR2002/000061 WO2003058170A1 (fr) 2002-01-09 2002-01-09 Procede et dispositif pour determiner le chemin de cout minimal entre deux points dans un reseau routier

Publications (1)

Publication Number Publication Date
CA2472950A1 true CA2472950A1 (fr) 2003-07-17

Family

ID=8871164

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002472950A Abandoned CA2472950A1 (fr) 2002-01-09 2002-01-09 Procede et dispositif pour determiner le chemin de cout minimal entre deux points dans un reseau routier

Country Status (5)

Country Link
US (1) US7437239B2 (fr)
EP (1) EP1463921A1 (fr)
AU (1) AU2002231861B2 (fr)
CA (1) CA2472950A1 (fr)
WO (1) WO2003058170A1 (fr)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080195307A1 (en) * 2004-10-18 2008-08-14 Michel Raynaud Method of Establishing Neighboring Points for a Digital Road Network System
EP1805484B1 (fr) * 2004-10-18 2018-05-23 Compagnie Générale des Etablissements Michelin Procede et dispositif de calcul d'itineraire avec elimination progressive des donnees correspondant au reseau routier
FR2881862B1 (fr) * 2005-02-07 2007-04-13 Michelin Soc Tech Procede et dispositif de determination d'itineraire avec points d'interet
US8015144B2 (en) 2008-02-26 2011-09-06 Microsoft Corporation Learning transportation modes from raw GPS data
US8972177B2 (en) 2008-02-26 2015-03-03 Microsoft Technology Licensing, Llc System for logging life experiences using geographic cues
US8966121B2 (en) 2008-03-03 2015-02-24 Microsoft Corporation Client-side management of domain name information
US9063226B2 (en) 2009-01-14 2015-06-23 Microsoft Technology Licensing, Llc Detecting spatial outliers in a location entity dataset
US8275649B2 (en) 2009-09-18 2012-09-25 Microsoft Corporation Mining life pattern based on location history
US9009177B2 (en) 2009-09-25 2015-04-14 Microsoft Corporation Recommending points of interests in a region
US8612134B2 (en) 2010-02-23 2013-12-17 Microsoft Corporation Mining correlation between locations using location history
US9261376B2 (en) 2010-02-24 2016-02-16 Microsoft Technology Licensing, Llc Route computation based on route-oriented vehicle trajectories
US10288433B2 (en) * 2010-02-25 2019-05-14 Microsoft Technology Licensing, Llc Map-matching for low-sampling-rate GPS trajectories
US8719198B2 (en) 2010-05-04 2014-05-06 Microsoft Corporation Collaborative location and activity recommendations
US9593957B2 (en) 2010-06-04 2017-03-14 Microsoft Technology Licensing, Llc Searching similar trajectories by locations
US9754226B2 (en) 2011-12-13 2017-09-05 Microsoft Technology Licensing, Llc Urban computing of route-oriented vehicles
US20130166188A1 (en) 2011-12-21 2013-06-27 Microsoft Corporation Determine Spatiotemporal Causal Interactions In Data
CN109150629B (zh) * 2018-10-12 2021-05-14 中交第一公路勘察设计研究院有限公司 一种路网多类型监测设备组合布设方法
CN111651844B (zh) * 2019-12-04 2023-04-11 台州学院 一种用于计算两个公交站点间多条乘车路径的方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5170353A (en) * 1988-11-17 1992-12-08 U.S. Philips Corporation Bucket-oriented route planning method, and navigation system comprising a route planner for carrying out such a method
JP2920639B2 (ja) * 1989-03-31 1999-07-19 アイシン精機株式会社 移動経路探索方法および装置
US5610821A (en) * 1994-11-18 1997-03-11 Ibm Corporation Optimal and stable route planning system
US5938720A (en) 1995-02-09 1999-08-17 Visteon Technologies, Llc Route generation in a vehicle navigation system
JP3381459B2 (ja) * 1995-05-30 2003-02-24 株式会社デンソー 車両用走行案内装置
FR2761837B1 (fr) * 1997-04-08 1999-06-11 Sophie Sommelet Dispositif d'aide a la navigation ayant une architecture distribuee basee sur internet
GB2327108B (en) * 1997-04-09 2002-04-10 Luk Getriebe Systeme Gmbh Motor vehicle with automatic clutch
US6038559A (en) * 1998-03-16 2000-03-14 Navigation Technologies Corporation Segment aggregation in a geographic database and methods for use thereof in a navigation application
US6192314B1 (en) * 1998-03-25 2001-02-20 Navigation Technologies Corp. Method and system for route calculation in a navigation application
US20020169543A1 (en) * 2001-04-02 2002-11-14 Blewitt Ronald L. Long distance routing

Also Published As

Publication number Publication date
AU2002231861B2 (en) 2008-05-15
US7437239B2 (en) 2008-10-14
US20050119825A1 (en) 2005-06-02
EP1463921A1 (fr) 2004-10-06
WO2003058170A1 (fr) 2003-07-17
AU2002231861A1 (en) 2003-07-24

Similar Documents

Publication Publication Date Title
CA2472950A1 (fr) Procede et dispositif pour determiner le chemin de cout minimal entre deux points dans un reseau routier
US9778059B2 (en) Point of interest search along a route
US20190114909A1 (en) Method and Apparatus for Identifying Congestion Bottlenecks
CA2757148C (fr) Recherche de point d&#39;interet le long d&#39;une route avec retour
US20110160986A1 (en) Method and apparatus for traffic information conversion using traffic information element knowledge base
EP2458333B1 (fr) Dispositif d&#39;estimation de route et procédé pour l&#39;estimation d&#39;une route
US20080004789A1 (en) Inferring road speeds for context-sensitive routing
CN105245956A (zh) 一种音视频数据推荐方法、装置及系统
WO2014203475A1 (fr) Systeme, procédé et programme de mise à jour de cartes
FR2881862A1 (fr) Procede et dispositif de determination d&#39;itineraire avec points d&#39;interet
FR2761771A1 (fr) Dispositif de recherche d&#39;itineraire
JP2015031533A (ja) 経路探索装置、コンピュータプログラム及び経路探索方法
EP2785553B1 (fr) Procede d&#39;estimation de la consommaton energetique d&#39;un vehicule automobile
EP1466141B1 (fr) Procede et systeme de determination de l&#39;itineraire emprunte par un vehicule
CN112597333A (zh) 基于行程的智能媒体控制
EP1856481B1 (fr) Procédé de localisation au sein d&#39;un réseau d&#39;un élément associé à une position géographique, serveur de localisation et programme d&#39;ordinateur correspondants
CN111044067A (zh) 路径确定方法及装置
FR2818414A1 (fr) Procede et serveur d&#39;aide a la navigation routiere pour determiner le chemin de cout minimal entre deux points, a travers un reseau de transport
WO2006042689A1 (fr) Procede d’etablissement d’un indice de sinuosite pour systeme de cartographie numerique
FR2876819A1 (fr) Procede de determination d&#39;un itineraire en fonction de l&#39;indice de sinuosite.
CN110646011B (zh) 导航路径选择方法、装置和车载设备
EP0670565A1 (fr) Procédé et dispositif de sélection d&#39;informations routières
KR20190037987A (ko) Poi 정보 관리 장치 및 방법
CN114582139B (zh) 一种道路确定方法、装置、云服务及存储介质
JP7473444B2 (ja) ナビゲーション装置、ナビゲーション方法、及びプログラム

Legal Events

Date Code Title Description
EEER Examination request
FZDE Dead