FR2818414A1 - Method for determining the minimum cost between two points on a road network in which route calculation starts from both start and end point at the same time to reduce server calculation time - Google Patents

Method for determining the minimum cost between two points on a road network in which route calculation starts from both start and end point at the same time to reduce server calculation time Download PDF

Info

Publication number
FR2818414A1
FR2818414A1 FR0016656A FR0016656A FR2818414A1 FR 2818414 A1 FR2818414 A1 FR 2818414A1 FR 0016656 A FR0016656 A FR 0016656A FR 0016656 A FR0016656 A FR 0016656A FR 2818414 A1 FR2818414 A1 FR 2818414A1
Authority
FR
France
Prior art keywords
segments
node
level
graphs
graph
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.)
Granted
Application number
FR0016656A
Other languages
French (fr)
Other versions
FR2818414B1 (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 S
Original Assignee
WEBRASKA MOBILE TECHNOLOGIES S
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 WEBRASKA MOBILE TECHNOLOGIES S filed Critical WEBRASKA MOBILE TECHNOLOGIES S
Priority to FR0016656A priority Critical patent/FR2818414B1/en
Publication of FR2818414A1 publication Critical patent/FR2818414A1/en
Application granted granted Critical
Publication of FR2818414B1 publication Critical patent/FR2818414B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related 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

Abstract

Method for linking two points on a road network in which two road graphs are developed starting from each of the two points. The graphs show the costs of different routes. When the graphs from each of the two points reach a common node (Pi) further route calculation is stopped and the routes with the minimum cost belonging two each graph are combined to obtain the minimum cost route between the two points. The invention also relates to a corresponding navigation server.

Description

<Desc/Clms Page number 1> <Desc / Clms Page number 1>

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.  The invention relates to a method for determining a minimum cost path between two points of a transport network.

Ce type de procédé est notamment utilisé par des systèmes d'aide à la 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.  This type of process is used in particular by road navigation aid systems, intended to determine the lowest cost road route, between an arrival point and a departure point, at a given instant, in order to assist a driver of a motor vehicle. In this case, the cost can be a cost in time, distance, money, road comfort or any other parameter.

Il existe principalement deux types d'algorithmes permettant de déterminer le chemin routier de coût minimal entre un point de départ et un point d'arrivée.  There are mainly two types of algorithms for determining the minimum cost road route between a departure point and an arrival point.

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'axe routier (rue, route, autoroute ou autre). Un coût est attribué à chaque segment.  In both cases, the road network is represented by a plurality of nodes (graphs), linked in pairs by segments corresponding to portions of the road axis (street, road, highway or other). A cost is assigned to each segment.

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 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.  The first algorithm consists in developing a path graph, starting from the starting point and up to the ending point, without knowing a priori the position of the ending point. The graph develops concentrically, around the starting point, and therefore has a generally circular shape. During the development of the graph, the respective costs of the different paths are determined simultaneously and the optimal path, of minimal cost, connecting the starting point and the ending point is selected.

Avec le second type d'algorithme, qualifié de"heuristique", on fixe le point d'arrivée et on développe un graphe de chemins, en forme de goutte, à partir du point de départ et jusqu'au point d'arrivée en tenant compte de la distance.  With the second type of algorithm, called "heuristic", we fix the end point and we develop a path graph, in the form of a drop, from the start point to the end point by taking distance account.

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 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é.  With the first calculation algorithm, the graph extends over a circular surface, centered around the starting point and with radius R equal to the distance between the starting point and the ending point. The surface analyzed is therefore very important. As a result, the computation time is very high.

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 noeud est beaucoup plus important, de sorte que le temps global de calcul est aussi élevé.  With the second calculation algorithm, the surface analyzed is greatly reduced, due to the shape of the graph. However, the computation time per node is much greater, so that the overall computation time is also high.

<Desc/Clms Page number 2> <Desc / Clms Page number 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.  The present invention proposes to overcome these drawbacks, in other words to reduce the computation time of a path between two points, through a transport network.

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, - 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 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,

Figure img00020001

- et on relie les deux chemins de coût minimal afin d'obtenir le chemin de coût minimal entre les deux points. To this end, the invention relates to a method for determining the minimum cost path between two points, through a transport network comprising a plurality of nodes linked in pairs by segments, in which - a cost is allocated to each segment of the network, - we develop a path graph, substantially starting from at least one of the two points, and - we determine the minimum cost path connecting the two points, process characterized by the fact that - we develop two graphs of paths, substantially from the two points, respectively, - the development of the two graphs is interrupted when they comprise at least a first common interference node, - the two paths of minimum cost, respectively belonging to the two graphs, are determined,
Figure img00020001

- And we connect the two minimum cost paths in order to obtain the minimum cost path between the two points.

Le coût peut être un coût en temps, en distance, en argent, en confort routier, ou autre.  The cost can be a cost in time, distance, money, road comfort, or other.

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 considérablement la surface analysée et par conséquent le nombre de noeuds, sans augmenter le temps de calcul par noeud.  The invention therefore consists in developing two graphs, starting from the two points respectively, until these two graphs meet, whereas, in the prior art, a single graph was developed from one of the two points, until this graph reaches the other point. This considerably reduces the area analyzed and therefore the number of nodes, without increasing the computation time per node.

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. 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.  The solution of the invention, which might seem simple a posteriori, was not so for those skilled in the art who sought to reduce the calculation time. Indeed, it was not obvious a priori to reduce the computation time by increasing the number of graphs developed.

Interrompant le développement des graphes, dès lors qu'ils comprennent un premier noeud d'interférence, on peut ainsi diviser la surface analysée sensiblement par deux.  Interrupting the development of the graphs, as soon as they include a first interference node, one can thus divide the analyzed surface substantially by two.

<Desc/Clms Page number 3> <Desc / Clms Page number 3>

Avantageusement, dans le cas où l'un au moins des points est sensiblement situé à l'emplacement d'un noeud, on développe le graphe correspondant à partir dudit noeud.  Advantageously, in the case where at least one of the points is substantially located at the location of a node, the corresponding graph is developed from said node.

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.  Advantageously also, for at least one of the two points, one searches for at least two nodes neighboring said point, a non-zero basic cost is assigned to each of these two nodes and a single graph is developed from these two nodes.

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.  In this case, and preferably, the two nodes forming a segment on which the point is substantially located, the basic cost of each node is determined, by proportionality, from the cost of the segment between these two nodes.

Si un noeud est inaccessible, par exemple à cause d'un sens interdit, il n'est pas pris en compte. If a node is inaccessible, for example due to a prohibited direction, it is not taken into account.

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 noeuds 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é.  Thus, in the case where the point is not located at the location of a node of the network, the graph is developed from the nodes located near the point, by allocating to these nodes a non-zero basic cost. This ultimately amounts to developing the graph virtually from the point considered.

Dans un mode de réalisation particulier,

Figure img00030001

- 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 mmf le plus bas, et - à partir d'un seuil prédéfini de nombre de segments de niveau mmf, on développe le graphe en tenant compte des seuls segments appartenant aux niveaux strictement supérieurs au niveau mmf. In a particular embodiment,
Figure img00030001

- the segments are classified according to a plurality of network levels, - during the development of at least one of the two graphs, the number of segments of the graph belonging to the lowest mmf level is calculated, and - from a predefined threshold for the number of segments of mmf level, the graph is developed taking into account only the segments belonging to the levels strictly above the mmf level.

Ainsi, dès lors que le graphe contient un nombre de segments de niveau mmf supérieur au seuil, on passe du niveau mmf au niveau suivant m, nf+ et on poursuit le développement du graphe en ne tenant compte que des segments de niveau supérieur ou égal au niveau m, nf. On réduit ainsi considérablement le nombre de calculs et, par conséquent, le temps de calcul.  Thus, as soon as the graph contains a number of segments of level mmf higher than the threshold, one passes from the level mmf to the following level m, nf + and one continues the development of the graph by taking into account only segments of level higher or equal to level m, nf. This considerably reduces the number of calculations and, consequently, the calculation time.

Dans ce cas, et de préférence,

Figure img00030002

- au cours du développement des deux graphes, on calcule le nombre de segments de chaque graphe appartenant au niveau mmf le plus bas et - lorsque le nombre de segments de niveau m, nf, 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, nf. In this case, and preferably,
Figure img00030002

- during the development of the two graphs, the number of segments of each graph belonging to the lowest mmf level is calculated and - when the number of segments of level m, nf, for the two graphs, has reached said threshold, we continue the development of the two graphs taking into account only the segments belonging to the levels strictly higher than the level m, nf.

<Desc/Clms Page number 4> <Desc / Clms Page number 4>

Figure img00040001
Figure img00040001

Ainsi, on ne passe du niveau m, nf au niveau nimfn que lorsque les deux graphes contiennent un nombre de segments de niveau mmf supérieur au seuil. Si le nombre de segments de niveau mmf de l'un des deux graphes n'atteint jamais le seuil, on prend en compte tous les segments de niveau supérieur ou égal à m, pour le développement des deux graphes. Thus, one passes from the level m, nf to the level nimfn only when the two graphs contain a number of segments of level mmf greater than the threshold. If the number of level segments mmf of one of the two graphs never reaches the threshold, all the segments of level greater than or equal to m are taken into account for the development of the two graphs.

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. More preferably, the development of said graph is started, taking into account all the segments belonging to all the network levels.

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 successifs de niveau m considéré, et - on substitue le groupe de segments successifs par un unique segment de niveau m. Advantageously, a group of successive segments of a given level m is sought, comprising exclusively intermediate nodes not belonging to any segment of level at least equal to m other than those of the group of successive segments of level m considered, and - the group of successive segments is replaced by a single segment of level m.

Par définition, un noeud"intermédiaire"est un noeud compris entre les deux noeuds d'extrémité d'une succession de segments adjacents. By definition, an "intermediate" node is a node included between the two end nodes of a succession of adjacent segments.

On crée ainsi un réseau virtuel comprenant un nombre de noeuds fortement réduit. This creates a virtual network comprising a greatly reduced number of nodes.

On peut développer chaque graphe de manière globalement concentrique, par exemple en utilisant un algorithme à buckets. We can develop each graph in a globally concentric way, for example by using a bucket algorithm.

Dans la mise en oeuvre préférée du procédé de l'invention, ayant trouvé ledit premier noeud commun d'interférence Pi, on recherche le noeud 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 PI C. In the preferred implementation of the method of the invention, having found said first common interference node Pi, one searches for the optimal interference node P, o among the nodes already analyzed to determine the two paths of minimum cost and containing the optimal interference node PI C.

L'invention concerne également un serveur d'aide à la navigation 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 bloc d'émission. The invention also relates to a server for assistance with road navigation for implementing the method, comprising an interface for connection to a communication network, a block for receiving requests from client terminals, a block for receiving data from road network, a block for classifying road segments, a block for creating a virtual road network, a block for labeling road segments, a calculation module and an emission block.

<Desc/Clms Page number 5> <Desc / Clms Page number 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 ;

Figure img00050001

- la figure 2 représente un schéma bloc fonctionnel du serveur d'aide à la navigation de la figure 1 ; - 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 un tableau de buckets, après le développement d'un graphe à travers le réseau routier de la figure 3. The invention will be better understood using the following description of the method for determining the minimum cost path between at least two points, through a transport network, according to a particular embodiment of the invention, with reference to the appended drawing in which: FIG. 1 represents a diagram of a client terminal connected to a server for assistance with road navigation, through the Internet;
Figure img00050001

- Figure 2 shows a functional block diagram of the navigation aid server of Figure 1; - Figure 3 shows a partial view of a road network; FIGS. 4 and 5 respectively represent a table of parents and a table of buckets, after the development of a graph through the road network of FIG. 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 transport routier.  The method of the invention makes it possible to determine the path of minimum cost, here in time, between at least two points, through a road transport network.

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'Internet, et destiné à indiquer à des terminaux clients, 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.  In the particular example of the description, this method is implemented by a server 1 for assistance in road navigation, connected to a communication network 3, here the Internet, and intended to indicate to client terminals, on request from the latter, the minimum cost path to connect a starting point and an ending point through the road transport network.

Les terminaux clients comprennent des téléphones cellulaires pouvant se connecter à l'Internet 3, par connexion téléphonique à un fournisseur d'accès 5, à travers un réseau téléphonique cellulaire 4, et communiquer à travers l'Internet 3.  The client terminals include cellular telephones which can connect to the Internet 3, by telephone connection to an access provider 5, through a cellular telephone network 4, and communicate via the 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 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.  The server 1 comprises an interface 10 for connection to the Internet 3, a block 11 for receiving requests from client terminals, a block 12 for receiving data relating to the road network, a block 13 for classifying road segments, a block 14 creation of a virtual road network, a block 15 for labeling road segments, a calculation module 16 and an emission block 17.

Le bloc de réception Il 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,  The reception block It is connected, at the input, to the Internet connection interface 10 and, at the output, to the calculation module 16. The block 11 is intended to receive requests for determining a road path of minimum cost,

<Desc/Clms Page number 6><Desc / Clms Page number 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.  between a starting point and an ending point, issued by client terminals. Each request contains an indication of the location of the starting point and an indication of the location of the ending point.

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.  The reception block 12 is connected, at the input, to the Internet connection interface 10 and, at the output, to the labeling block 15 and to the classification block 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 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 rail, comme un réseau de métro, par mer, comme un réseau de ferry. This block 12 is intended to acquire, via the Internet 3, from supplier servers, not shown, data relating to the road network, comprising in particular vector mapping data and information relating to road traffic, regularly updated. The road network map includes a plurality of nodes, linked in pairs by segments corresponding to portions of road axes. These highways include streets, roads and highways. It will be noted here that the invention also applies to public transport networks, for example by rail, such as a metro network, by sea, such as a ferry network.

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.  The classification block 13, connected to the creation block 14, is intended to classify the road segments here according to three levels, of index one, two and three, corresponding respectively to streets, roads and highways.

L'indice d'un niveau est fonction de 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. The index of a level is a function of the size of the road axes of this level. In this case, the higher the level, the larger the size of the road axes of this level.

Le bloc de création 14, relié au bloc de calcul 16, est destiné à créer 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 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 du groupe considéré.  The creation block 14, connected to the calculation block 16, is intended to create a virtual road network, comprising here a reduced number of level 3 segments. To create this virtual network, the block 14 searches the road network for groups of successive level three segments such that each group comprises exclusively intermediate nodes not belonging to any level three segment other than those of the group of successive level three segments considered. By "intermediate" node is meant to mean that it is a node comprised between the two end nodes of a succession of adjacent segments. Then block 14 substitutes each group of successive level three segments found by a single virtual level three segment, connecting the two end nodes of the succession of segments of the group considered.

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 à jour régulièrement ce coût, à l'aide des informations de trafic routier reçues par le bloc 12.  The labeling block 15, linked to blocks 12, 14 and 16, is intended to assign a cost to each segment of the virtual road network and to update this cost regularly, using the traffic information received by the block 12.

<Desc/Clms Page number 7> <Desc / Clms Page number 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.  The calculation module 16 comprises a block 160 for developing a graph, a block 161 for detecting a change in the level of segments and a block 162 for determining the path of minimum cost.

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.  The development block 160 is intended, at the request of a client terminal, to develop two road path graphs, from the starting point and the finishing point respectively, taking into account the state of road traffic, using here a buckets algorithm.

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.  The buckets algorithm is a graph calculation algorithm. The reader can refer to the work "Algorithmes de graphes" by Christian PRINS, Eyrolles editions, second edition 1997, in order to obtain additional information concerning this algorithm.

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.  In order to succinctly explain the buckets algorithm, we will now describe, by way of example, the development of a graph by the calculation module 16, from a node Po and up to a node Pz, through the road network, using the buckets algorithm, with reference to Figures 3 to 5.

Le réseau routier contient une pluralité de noeuds Pn, 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.  The road network contains a plurality of nodes Pn, with n varying from 0 to N, connected two by two by segments. Each segment is associated with a cost. In Figure 3, the road network is partially shown. The cost of each segment between two nodes is indicated in brackets.

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.  To develop the graph, the development block 160 uses two tables, respectively called "parent table" and "bucket table", respectively represented in FIGS. 4 and 5.

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, - une troisième colonne de coûts, destinée à contenir, pour chaque noeud du réseau, le coût de ce noeud, 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 zéro.  The parent table includes - a first column of nodes, listing all the nodes in the network, - a second column of parent nodes, intended to contain, for each node in the network, a parent node associated with this node, - a third column of costs, intended to contain, for each node of the network, the cost of this node, and - a fourth column intended to contain, for each node of the network, a selection index, called "flag", indicating whether this node has or n 'has not already been selected to be part of the graph, depending on whether the flag is worth one or zero.

<Desc/Clms Page number 8> <Desc / Clms Page number 8>

Figure img00080001
Figure img00080001

Par définition, un noeud"parent"Pn'd'un noeud Pn est un noeud relié au noeud Pn par un seul segment et situé en amont du noeud Pn le long d'un chemin du graphe. Le noeud Pn est en fait un noeud"descendant"vis-à-vis du noeud Pn'. On notera que le noeud parent Pn'peut avoir plusieurs noeuds descendants appartenant respectivement à plusieurs chemins du graphe. By definition, a "parent" node Pn 'of a node Pn is a node connected to the node Pn by a single segment and located upstream of the node Pn along a path of the graph. The node Pn is in fact a "descending" node with respect to the node Pn '. It will be noted that the parent node Pn ′ can have several descending nodes belonging respectively to several paths of the graph.

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 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.  The table of buckets is intended to contain the list of the nodes of the graph, that is to say the nodes selected to be part of the graph, and classified in ascending order in cost, as well as the cost associated with each of these nodes. By definition, the cost of a node, for a given path, corresponds to the cost of the path between this node and the original node of the graph, which is equal to the sum of the costs of the segments forming this path.

Le développement du graphe du noeud d'origine Po jusqu'au noeud Pz s'effectue suivant les étapes décrites ci-après.  The development of the graph from the original node Po to the node Pz is carried out according to the steps described below.

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 tableau des parents ne contient que les noeuds Pô,..., Pg, Pz. nécessaires à la compréhension de l'exposé ci-dessous.  In the parent table, the parent node column and the cost column are initially empty and all flags are initially set to zero. The buckets table is initially empty. For the sake of clarity, the parent table only contains the nodes Pô, ..., Pg, Pz. necessary for understanding the presentation below.

D'emblée on notera que le fait de sélectionner un noeud du réseau consiste à introduire ce noeud dans le graphe.  From the outset, it will be noted that the fact of selecting a node of the network consists in introducing this node into the graph.

Etape initiale
On sélectionne le noeud d'origine Po et on classe ce noeud 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 flag du noeud Po à un. Le noeud Po n'est associé à aucun point parent.
Initial step
We select the original node Po and we classify this node Po, with an initial associated cost, at the top of the list, in the table of buckets. In addition, in the table of the parents, one indicates the initial cost of the node Po and one puts the flag of the node Po to one. The node Po is not associated with any parent point.

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 noeuds"adjacents"à un noeud Pn sont les noeuds du réseau reliés au noeud Pn par un unique segment (il est rare qu'il y en ait plusieurs). On détermine ainsi que les noeuds P4, P2, P7 et Ps sont adjacents au noeud Po, 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, pour chaque noeud sélectionné P4, P2, 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.
Development stages of the graph
We analyze the first node in the list of the buckets table, namely Po. To do this, we search for the nodes adjacent to the Po node. By definition, the nodes "adjacent" to a node Pn are the nodes of the network connected to the node Pn by a single segment (it is rare that there are several). It is thus determined that the nodes P4, P2, P7 and Ps are adjacent to the node Po, we select these adjacent nodes and classify them in the table of buckets, with their respective associated costs, in ascending order in cost. In the parent table, for each selected node P4, P2, P7 and P5, we set the flag for this node to one, we associate the parent node Po with this node and we indicate the cost of this node.

<Desc/Clms Page number 9> <Desc / Clms Page number 9>

Figure img00090001
Figure img00090001

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 soit sélectionné, en d'autres termes jusqu'à ce que le graphe atteigne le noeud Pz, comme explicité ci-après. We then analyze, one after the other, in their order of classification, the following nodes in the list of the table of buckets. As the successive nodes of the list of the table of buckets are analyzed, the graph is developed, by enriching the table of buckets, until the node Pz is selected, in other words until the graph reaches the node Pz, as explained below.

Pour l'analyse de chaque noeud Pn de la liste, on recherche et on détermine les noeuds adjacents à ce noeud Pn. Parmi ces noeuds adjacents, on 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é Pn). Si le nouveau coût du noeud considéré est inférieur à son ancien coût (figurant dans le tableau des parents), on sélectionne ce noeud. Sinon, le noeud considéré n'est pas sélectionné. For the analysis of each node Pn of the list, one searches for and determines the nodes adjacent to this node Pn. Among these adjacent nodes, the node or nodes which have not already been selected are selected. For each adjacent node that has already been selected, the new cost of this node is calculated, taking into account the fact that it belongs to another path (the one passing through the analyzed node Pn). If the new cost of the node considered is lower than its old cost (appearing in the parents' table), this node is selected. Otherwise, the node considered is not selected.

Après avoir analysé le point Pn, on classe le ou les noeuds 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 sélectionné, on associe à ce noeud le noeud parent Pn (en substituant le noeud Pn à l'ancien noeud parent, dans le cas où le noeud considéré a déjà été sélectionné), on indique le coût de ce noeud (en le substituant à son ancien coût, dans le cas où le noeud considéré a déjà été sélectionné) et on met le flag de ce noeud à un. After having analyzed the point Pn, we classify the node (s) selected in the table of buckets, with their respective associated costs, in ascending order in cost. Furthermore, in the parent table, for each selected node, the parent node Pn is associated with this node (by substituting the node Pn for the old parent node, in the case where the node considered has already been selected), we indicates the cost of this node (by replacing it with its old cost, in the case where the node considered has already been selected) and the flag of this node is set to one.

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. A graph is thus developed in a generally concentric manner, around the point of origin Po. The graph therefore has a substantially circular shape, centered around the point of origin Po.

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 Pz 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 ainsi que le chemin de coût minimal est le chemin Pô- P ?- Pz. Final step After having selected the node Pz, in other words when the graph has reached the node Pz, the optimal cost path is reconstructed, going up from the node Pz to the node Po, from node to node, using the kinship relationships between nodes in the parent table. It is thus determined that the path of minimum cost is the path Pô-P? - 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 mmf appartenant au graphe considéré, à détecter le dépassement d'un seuil de nombre de segments de niveau m, nf, 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 The detection block 161, connected to the development block 160, is intended to calculate, as and when the development of each graph, the number of segments of lowest level mmf belonging to the graph considered, to detect the exceeding of a threshold of number of segments of level m, nf, and to signal the exceeding of this threshold by the two graphs to the development block 160, so that the latter continues the

<Desc/Clms Page number 10> <Desc / Clms Page number 10>

Figure img00100001

développement des deux graphes en tenant compte des seuls segments appartenant aux niveaux strictement supérieurs au niveau mmf.
Figure img00100001

development of the two graphs taking into account only the segments belonging to the levels strictly above the mmf level.

Le bloc 162 de détermination du chemin optimal (c'est-à-dire de coût 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. The block 162 for determining the optimal path (that is to say minimum cost), connected to the development block 160, is intended to reconstruct the path of minimum cost, between two nodes, using kinship relationships between nodes in the parent table.

Le bloc d'émission 17, relié au module de calcul 16 et à l'interface de 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. The transmission block 17, connected to the calculation module 16 and to the Internet connection interface 10, is intended to send a message to each requesting terminal in order to notify it of the optimal path between the starting point and the point of arrival.

Le procédé pour déterminer le chemin routier de coût minimal entre 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 chacun situés sensiblement à l'emplacement d'un noeud du réseau routier. The method for determining the minimum cost road route between a starting point A and an arrival point B, through the road network, will now be explained. The points A and B are here each located substantially at the location of a node of the road network.

A l'aide des informations relatives au trafic routier, le bloc de 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é. Using information relating to road traffic, classification block 13 classifies the segments of the road network according to the three network levels (street, road, motorway). Block 14 then creates a virtual road network, comprising a reduced number of level three segments, as previously explained.

Le bloc d'étiquetage 15 attribue un coût à chaque segment du réseau routier virtuel et actualise régulièrement ce 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. The labeling block 15 assigns a cost to each segment of the virtual road network and updates this cost regularly, using the traffic information received. The cost of a level three virtual segment, corresponding to a group of successive segments of the original road network, is equal to the sum of the costs of the segments of this group.

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. A client terminal 2 sends a request to the server 1 for determining the minimum cost path between the starting point A and the ending point B, containing an indication of location of point A and an indication of location of 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. In the server 1, the reception block 11 receives the request from the terminal 2, extracts the location indications from the points A and B therefrom and supplies them to the calculation module 16.

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, à The development block 160 concomitantly develops two path graphs, respectively from the two points A and B, by determining the respective costs of the different paths of each graph, at

<Desc/Clms Page number 11><Desc / Clms Page number 11>

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 noeud.  using the previously explained buckets algorithm. The points A and B being located substantially at the location of a node of the network, each point A, B is assimilated to the node located nearby, by assigning a zero base cost to this node.

Le bloc 160 démarre le développement des deux graphes en utilisant les segments des trois niveaux de réseau.  Block 160 starts the development of the two graphs using the segments of the three network levels.

Au cours du développement des deux graphes, le bloc de détection 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 SI, 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 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 161 qui poursuit le développement des deux graphes, au-delà de ce seuil S2, 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 SI, le bloc de développement 161 développe les deux graphes en tenant compte des trois niveaux, même si le

Figure img00110001

nombre de segments de niveau un de l'autre graphe atteint et dépasse le seuil Si. During the development of the two graphs, the detection block 161 calculates the number of segments of each graph belonging to the lowest level, namely level one. If the number of level one segments, for the two graphs, reaches a predefined threshold SI, the block 161 detects it and signals it to the development block 160. The latter continues the development of the two graphs, beyond this threshold , using the only segments belonging to levels two and three, strictly superior to level one, and, concomitantly, calculates the number of segments of each graph belonging to the lowest level remaining, namely level two. If the number of level two segments, for the two graphs, reaches a predefined threshold S2, the block 160 detects it and signals it to the development block 161 which continues the development of the two graphs, beyond this threshold S2, in taking into account only level three segments, strictly greater than level two. Note that if the number of level one segments of one of the two graphs does not reach the threshold SI, the development block 161 develops the two graphs taking into account the three levels, even if the
Figure img00110001

number of level one segments of the other graph reached and exceeds the threshold Si.

Dès que les deux graphes comprennent un premier noeud commun d'interférence ? autrement dit dès qu'un même noeud d'interférence PI a été sélectionné dans le développement des deux graphes, le bloc de développement 161 interrompt le développement des deux graphes. As soon as the two graphs include a first common interference node? in other words as soon as the same interference node PI has been selected in the development of the two graphs, the development block 161 interrupts the development of the two graphs.

Ayant trouvé ce premier noeud commun d'interférence PI, on analyse à nouveau les tableaux de buckets pour en déduire le noeud d'interférence 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'arrivée, ce qui va maintenant être démontré par des raisonnements par l'absurde.  Having found this first common interference node PI, we again analyze the bucket arrays to deduce therefrom the optimum interference node P, o corresponding to the paths of minimum cost and which has necessarily been analyzed previously and is found in the table buckets from one or other of the starting and ending points, which will now be demonstrated by reasoning by the absurd.

Soit un calcul bidirectionnel.  Let be a bidirectional calculation.

<Desc/Clms Page number 12> <Desc / Clms Page number 12>

Le calcul du départ à l'arrivée est noté CO, le calcul de l'arrivée au départ est noté C 1
On note V0 ] et VI [... ] les coûts pour atteindre chaque point, respectivement suivant le calcul CO et suivant le calcul CI.
The calculation of the departure on arrival is noted CO, the calculation of the arrival on departure is noted C 1
One notes V0] and VI [...] the costs to reach each point, respectively according to calculation CO and following calculation CI.

L'algorithme de calcul trouve un premier point d'intersection entre CO et CI, noté X qui est donc un point qui a été choisi par CO et par CI. Le coût total du chemin en passant par X est V [X] = VO [X] + VI [X].  The calculation algorithm finds a first point of intersection between CO and CI, noted X which is therefore a point which has been chosen by CO and by CI. The total cost of the path passing through X is V [X] = VO [X] + VI [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 CO, ou par CI, et qu'il se trouve donc dans le tableau des buckets de l'un ou de l'autre.

Figure img00120001

Soit BO et B1 les points parents de Y dans les deux calculs. We will demonstrate that if there exists a point Y such that V [Y] <V [X], therefore if the path passing through Y is of better cost than that through X, then Y has already been analyzed, or by CO, or by CI, and that it is therefore in the buckets table of one or the other.
Figure img00120001

Let BO and B1 be the parent points of Y in the two calculations.

Considérons que Y n'a été analysé, ni par CO, ni par CI.

Figure img00120002
Consider that Y was not analyzed, neither by CO, nor by CI.
Figure img00120002

Y n'a pas été analysé par CO, donc BO n'a pas été choisi par CO, donc VO [BO] > = VO [X] Y n'a pas été analysé par CI, donc BI n'a pas été choisi par CI, donc V1 [BI] > = VI [X] Comme V [Y] = VO [Y] + V1 [Y] et VO [Y] > VO [BO], V1 [Y] > YI[BI] On a V [Y] > VO [BO] + VI [Bl] Y was not analyzed by CO, therefore BO was not chosen by CO, therefore VO [BO]> = VO [X] Y was not analyzed by CI, therefore BI was not chosen by CI, so V1 [BI]> = VI [X] Like V [Y] = VO [Y] + V1 [Y] and VO [Y]> VO [BO], V1 [Y]> YI [BI] On a V [Y]> VO [BO] + VI [Bl]

<Desc/Clms Page number 13><Desc / Clms Page number 13>

Donc V [Y] > VO [X] + VI [X]
V [Y] > V [X]
On en déduit donc que si V [Y] < = V [X], Y à forcément été déjà analysé (BO ou BI a déjà été choisi). Donc Y se trouve forcément dans le tableau des buckets de CO ou de Cl.
So V [Y]> VO [X] + VI [X]
V [Y]> V [X]
We therefore deduce that if V [Y] <= V [X], Y has necessarily already been analyzed (BO or BI has already been chosen). So Y is necessarily in the table of CO or Cl buckets.

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 que X.  X being found, it suffices to browse the content of the two bucket arrays to find possible points whose path is cheaper than X.

Considérons maintenant que Y est un point de jonction de CO et CI meilleur que X.  Now consider that Y is a junction point of CO and CI better than X.

Si BO n'a pas déjà été choisi par CO, alors VO [BO] > VO[X]
Pour que le trajet par Y soit quand même de meilleur coût, on doit avoir VI [BO] = VI [Y] + coût de [BO, Y] > VI [X]
Il en résulte que BO a déjà été choisi par Cl. Donc Y n'est pas le point de rencontre de CO et CI. Ce qui est absurde par définition.
If BO has not already been chosen by CO, then VO [BO]> VO [X]
In order for the journey by Y to still be of better cost, we must have VI [BO] = VI [Y] + cost of [BO, Y]> VI [X]
It follows that BO has already been chosen by Cl. Therefore Y is not the meeting point of CO and CI. Which is absurd by definition.

On raisonne de même pour B 1.  We reason in the same way for B 1.

Il en résulte que
BO et BI avaient déjà été choisis au moment où on trouve X.
It follows that
BO and BI had already been chosen when X is found.

Le bloc 162 reconstitue ensuite le chemin optimal entre le point A et 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.  Block 162 then reconstructs the optimal path between point A and the interference node P, o and the optimal path between point B and the interference node P, o, using the kinship relationships between nodes shown in the parent tables, and associate, connect these two optimal paths in order to obtain the minimum cost path between the two points A and B.

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é.  If at least one of the two points A, B, for example the point A, is not situated substantially at the location of a node of the network, the development block 160 searches for at least two nodes PA, O, PA, 1, ..., forming a segment and between which point A is substantially located.

Le bloc 160 attribue ensuite à chacun des noeuds PAO, PA l, 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,n et PA, n+i,  The block 160 then allocates to each of the nodes PAO, PA l, forming a segment, a non-zero basic cost, determined by proportionality from the cost of the segment considered, as explained below. Let PA, n and PA, n + i,

<Desc/Clms Page number 14> <Desc / Clms Page number 14>

Figure img00140001

deux noeuds voisins du point A, formant un segment routier sur lequel le point A est sensiblement situé. Le coût de base C (PAn) cCP A, n+l) de chaque noeud PA. n, PA, n+) est calculé à l'aide des relations suivantes :
Figure img00140002
Figure img00140001

two nodes adjacent to point A, forming a road segment on which point A is substantially located. The basic cost C (PAn) cCP A, n + l) of each node PA. n, PA, n +) is calculated using the following relationships:
Figure img00140002

Figure img00140003

où c (PA, n, PA, n+l), d (PnPn+l), d (A, PA, n) et d (A, ? A. n+)) représentent respectivement le coût du segment reliant PA,n et PA,n+1, la distance entre PA, n et PA, n+l, la distance entre PA, n et A et la distance entre Pua, null et A.
Figure img00140003

where c (PA, n, PA, n + l), d (PnPn + l), d (A, PA, n) and d (A,? A. n +)) respectively represent the cost of the segment connecting PA, n and PA, n + 1, the distance between PA, n and PA, n + l, the distance between PA, n and A and the distance between Pua, null and A.

Pour développer le graphe à partir du point A, on procède de la façon suivante.  To develop the graph from point A, we proceed as follows.

Lors de l'étape initiale, après avoir déterminé les noeuds PA, n voisins du

Figure img00140004

e point A, on détermine le coût de base de chacun de ces noeuds PA. n. on les 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 noeud PA,n le point parent A, on indique le coût de ce noeud PA, n et on met son flag à un. During the initial step, after having determined the nodes PA, n neighbors of the
Figure img00140004

At point A, the basic cost of each of these nodes PA is determined. not. we select them and classify them in the buckets table in ascending order in cost. In the table of parents, we associate with each node PA, n the parent point A, we indicate the cost of this node PA, n and we set its flag to one.

Lors des étapes suivantes de développement du graphe, on analyse 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 noeuds pour développer le graphe, comme précédemment explicité.  During the following stages of development of the graph, the nodes of the list of the table of buckets are successively analyzed, in their order of classification, while progressively selecting new nodes to develop the graph, as previously explained.

On développe ainsi un unique graphe à partir de plusieurs noeuds de 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, entre deux noeuds, ou sur une place, dans laquelle débouchent plusieurs rues, un noeud étant situé à chaque intersection entre la place et une rue.  We thus develop a single graph from several starting nodes, to which we attribute a non-zero basic cost. This is done for example when the starting point, or arrival point, is located in a street, between two nodes, or in a square, into which several streets open, a node being located at each intersection between the square and a street.

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.  After determining the minimum cost path, the transmission block 17 transmits to the requesting terminal a notification indicating the minimum cost path between the two points A and B, via the Internet 3 and the cellular network 4.

Le réseau routier pourrait être subdivisé en deux niveaux ou en plus de trois niveaux.  The road network could be subdivided into two levels or into more than three levels.

<Desc/Clms Page number 15> <Desc / Clms Page number 15>

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 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.  In the above description, the navigation aid server creates a virtual network by grouping successive level three segments. Generally, in the case where the road network is subdivided into M levels, the navigation aid server could search for groups of successive segments of a given level m comprising exclusively intermediate nodes not belonging to any segment of level at least equal to m (that is to say greater than or equal to m) other than those of the group of segments considered, then substitute each group of successive segments by a single segment of level m.

Par ailleurs, toujours 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, nf le plus bas et après que le nombre de segments de niveau mmf, 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 mmf, le nouveau niveau inférieur pris en compte devenant le niveau m, 1. Le serveur pourrait réitérer cette opération, en incrémentant le niveau inférieur au fur et à mesure du développement des graphes.  Furthermore, still in the general case where the road network is subdivided into M levels, during the development of the two graphs, the navigation aid server could calculate the number of segments of each graph belonging to the level m, nf the lower and after the number of segments of level mmf, for the two graphs, has reached a predetermined threshold, develop the two graphs taking into account only the segments belonging to the levels strictly higher than the level mmf, the new lower level taken into account becoming level m, 1. The server could repeat this operation, incrementing the lower level as the graphs develop.

On 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.  We could use a graph calculation algorithm other than the buckets algorithm. In this case, the development of the graphs could be carried out in a non-concentric manner.

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, de départ et d'arrivée, passant par l'un de ces noeuds d'interférence.  Instead of interrupting the development of the two graphs as soon as they include a first common interference node, we could interrupt it when the two graphs include several common points of interference and determine the optimal path between the two points, departure and arrival, passing through one of these interference nodes.

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.  The navigation aid server could be arranged to determine the minimum cost path in terms of distance, money, road comfort or the like.

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éseau cellulaire.  The client terminals could connect to the navigation aid server by a communication network other than the global network comprising the Internet and the cellular network.

Le procédé de l'invention pourrait également être mis en oeuvre par un 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.  The method of the invention could also be implemented by a system other than a navigation aid server and a transport network other than a road network, for example a rail network.

Claims (12)

- 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).  - and we connect the two minimum cost paths in order to obtain the minimum cost path between the two points (A, B).
Figure img00160001
Figure img00160001
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, B), 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,  Claims 1-Method for determining the minimum cost path between two points (A, B), through a transport network comprising a plurality of nodes (Pn) linked in pairs by segments, in which - a cost is assigned to each segment of the network, - a path graph is developed, substantially starting from at least one of the two points (A, B), and - the minimum cost path connecting the two points (A, B) is determined, process characterized by the fact that - two path graphs are developed, substantially from the two points (A, B), respectively, - the development of the two graphs is interrupted when they include at least one first common interference node ( P,), - the two paths of minimum cost are determined, belonging respectively to the two graphs,
2-Procédé selon la revendication 1, 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. 2-A method according to claim 1, wherein, in the case where at least one of the points (A, B) is substantially located at the location of a node, the corresponding graph is developed from said node. 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  3-Method according to one of claims 1 and 2, wherein, for at least one of the two points (A, B), one seeks at least two nodes
Figure img00160002
Figure img00160002
(PA, n, PA, n+l) voisins dudit point (A), on attribue un coût de base non nul à chacun de ces deux noeuds (PA, n, PA, n+l) et on développe un unique graphe à partir de ces deux noeuds (PA, n, PA, n+l).  (PA, n, PA, n + l) neighbors of said point (A), we assign a non-zero basic cost to each of these two nodes (PA, n, PA, n + l) and we develop a single graph with from these two nodes (PA, n, PA, n + l).
4-Procédé selon la revendication 3, dans lequel, les deux noeuds (PA, n, PA, n+l) 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+i), par proportionnalité, à partir du coût du segment entre ces deux noeuds (PA, n, PA, n+ !).  4-A method according to claim 3, wherein, the two nodes (PA, n, PA, n + l) forming a segment on which the point (A) is substantially located, we determine the basic cost of each node (PA , n? PA, n + i), by proportionality, from the cost of the segment between these two nodes (PA, n, PA, n +!). 5-Procédé selon l'une des revendications 1 à 4, dans lequel - on classe les segments suivant une pluralité de niveaux de réseau,  5-Method according to one of claims 1 to 4, in which - the segments are classified according to a plurality of network levels,
Figure img00160003
Figure img00160003
- 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 bas, et  - during the development of at least one of the two graphs, the number of segments of the graph belonging to the lowest level m, nf is calculated, and <Desc/Clms Page number 17> <Desc / Clms Page number 17> - à partir d'un seuil prédéfini de nombre de segments de niveau m, nf, on développe le graphe en tenant compte des seuls segments appartenant aux niveaux strictement supérieurs au niveau minf.  - from a predefined threshold of number of segments of level m, nf, the graph is developed taking into account only the segments belonging to the levels strictly above the minf level.
Figure img00170001
Figure img00170001
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, nf le plus bas et - lorsque le nombre de segments de niveau m, nf, pour les deux graphes, a atteint ledit seuil, on poursuit le développement des deux graphes en tenant  6-A method according to claim 5, in which - during the development of the two graphs, the number of segments of each graph belonging to the lowest level m, nf is calculated and - when the number of segments of level m, nf, for the two graphs, has reached said threshold, the development of the two graphs is continued while taking
Figure img00170002
Figure img00170002
compte des seuls segments appartenant aux niveaux strictement supérieurs au niveau mmf.  counts only the segments belonging to the levels strictly higher than the mmf level.
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. 7-Method according to one of claims 5 and 6, wherein one starts the development of said graph, taking into account all the segments belonging to all network levels. 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.  8-Method according to one of claims 1 to 7, wherein - we are looking for a group of successive segments, of a given level m, comprising exclusively intermediate nodes not belonging to any level segment at least equal to m other than those of the group of successive segments of level m considered, and - the group of successive segments is replaced by a single segment of level m. 9-Procédé selon l'une des revendications 1 à 8, dans lequel on développe chaque graphe, de manière globalement concentrique.  9-Method according to one of claims 1 to 8, wherein each graph is developed, generally concentrically.
Figure img00170003
Figure img00170003
10-Procédé selon la revendication 9, dans lequel on développe les deux graphes en utilisant un algorithme à buckets. 10-A method according to claim 9, wherein the two graphs are developed using a bucket algorithm. 11-Procédé selon l'une des revendications 1 à 10, dans lequel on développe les deux graphes concomitamment. 11-Method according to one of claims 1 to 10, wherein one develops the two graphs concomitantly. 12-Procédé selon l'une des revendications 1 à 11, dans lequel, ayant trouvé ledit premier noeud commun d'interférence (pal), on recherche le noeud d'interférence optimal (pli) 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 (pli) 13-Serveur d'aide à la navigation routière pour la mise en oeuvre 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  12-Method according to one of claims 1 to 11, wherein, having found said first common interference node (pal), we search for the optimal interference node (fold) among the nodes already analyzed to determine the two paths of minimal cost and containing the optimal interference node (fold) 13-Server for assistance with road navigation for implementing the method of one of claims 1 to 12, comprising an interface (10) for connection to a communication network (3), a block (11) for receiving <Desc/Clms Page number 18><Desc / Clms Page number 18> 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).  requests from client terminals, a block (12) for receiving road network data, a block (13) for classifying road segments, a block (14) for creating a virtual road network, a block (15) for labeling of road segments, a calculation module (16) and an emission block (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. 14-Server according to claim 13, wherein the calculation module (16) comprises a block (160) for developing graphs, a block (161) for detecting segment level changes and a block (162) for determining minimum cost path.
FR0016656A 2000-12-20 2000-12-20 ROAD NAVIGATION ASSISTANCE METHOD AND SERVER FOR DETERMINING THE MINIMUM COST PATH BETWEEN TWO POINTS, THROUGH A TRANSPORT NETWORK Expired - Fee Related FR2818414B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0016656A FR2818414B1 (en) 2000-12-20 2000-12-20 ROAD NAVIGATION ASSISTANCE METHOD AND SERVER FOR DETERMINING THE MINIMUM COST PATH BETWEEN TWO POINTS, THROUGH A TRANSPORT NETWORK

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0016656A FR2818414B1 (en) 2000-12-20 2000-12-20 ROAD NAVIGATION ASSISTANCE METHOD AND SERVER FOR DETERMINING THE MINIMUM COST PATH BETWEEN TWO POINTS, THROUGH A TRANSPORT NETWORK

Publications (2)

Publication Number Publication Date
FR2818414A1 true FR2818414A1 (en) 2002-06-21
FR2818414B1 FR2818414B1 (en) 2003-04-04

Family

ID=8857922

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0016656A Expired - Fee Related FR2818414B1 (en) 2000-12-20 2000-12-20 ROAD NAVIGATION ASSISTANCE METHOD AND SERVER FOR DETERMINING THE MINIMUM COST PATH BETWEEN TWO POINTS, THROUGH A TRANSPORT NETWORK

Country Status (1)

Country Link
FR (1) FR2818414B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7925320B2 (en) 2006-03-06 2011-04-12 Garmin Switzerland Gmbh Electronic device mount

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5041983A (en) * 1989-03-31 1991-08-20 Aisin Seiki K. K. Method and apparatus for searching for route
US5610821A (en) * 1994-11-18 1997-03-11 Ibm Corporation Optimal and stable route planning system
US5752217A (en) * 1995-05-30 1998-05-12 Nippondenso Co., Ltd. Navigation system having optimal destination route setting capability
EP0854353A2 (en) * 1997-01-15 1998-07-22 Zexel Corporation Route determination in a vehicle navigation system
FR2761837A1 (en) * 1997-04-08 1998-10-09 Sophie Sommelet NAVIGATION AID DEVICE HAVING A DISTRIBUTED INTERNET-BASED ARCHITECTURE

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5041983A (en) * 1989-03-31 1991-08-20 Aisin Seiki K. K. Method and apparatus for searching for route
US5610821A (en) * 1994-11-18 1997-03-11 Ibm Corporation Optimal and stable route planning system
US5752217A (en) * 1995-05-30 1998-05-12 Nippondenso Co., Ltd. Navigation system having optimal destination route setting capability
EP0854353A2 (en) * 1997-01-15 1998-07-22 Zexel Corporation Route determination in a vehicle navigation system
FR2761837A1 (en) * 1997-04-08 1998-10-09 Sophie Sommelet NAVIGATION AID DEVICE HAVING A DISTRIBUTED INTERNET-BASED ARCHITECTURE

Also Published As

Publication number Publication date
FR2818414B1 (en) 2003-04-04

Similar Documents

Publication Publication Date Title
EP1463921A1 (en) Method and device for determining the minimal cost path between two points in a road network
EP0870290B1 (en) Cost zones
US8700295B2 (en) Method and apparatus for traffic information conversion using traffic information element knowledge base
EP2473820B1 (en) Distributed traffic navigation using vehicular communication
EP2116015B1 (en) Method for estimating and signalling the density of mobile nodes in a road network
US20190114909A1 (en) Method and Apparatus for Identifying Congestion Bottlenecks
US11348453B2 (en) Method and apparatus for dynamic speed aggregation of probe data for high-occupancy vehicle lanes
JP2010048655A (en) System and program for evaluating driving situation
EP1848965A1 (en) Method and device for determining a rout with points of interest
CN111209493A (en) Charging station recommendation method, device, equipment and medium
WO2020136351A1 (en) Method and system for planning a journey
EP2220797B1 (en) Method for distributing data packets in a mobile node network and associated system
CN103185589A (en) Method, device and system for planning running route of group vehicles
EP3721656B1 (en) Method and assembly allowing end-user terminals to exchange over a wireless multi-hop communication proximity network with dynamic architecture
EP2012289B1 (en) Estimation of traffic in a road network
FR2818414A1 (en) Method for determining the minimum cost between two points on a road network in which route calculation starts from both start and end point at the same time to reduce server calculation time
WO2023241368A1 (en) Content pushing processing method and processing device based on on-board navigation
EP1856481B1 (en) Method for locating inside a network an element associated with a geographical position, corresponding location server and computer programme
WO2006042689A1 (en) Method of establishing a sinuosity index for a digital mapping system
FR2800184A1 (en) PROCESS FOR DETERMINING AN ITINERARY INCLUDING BETWEEN A STARTING POINT AND AN ENDING POINT OF A NETWORK, SUCH AS A ROAD NETWORK
WO2024084731A1 (en) Analysis device, analysis method, and analysis programccx
FR3093976A1 (en) Method of adaptive routing of a vehicle in a road network
CN114979579A (en) Road condition information determining method and device, nonvolatile storage medium and processor
CN117968712A (en) Tour guide path planning method, device and medium for rural travel resources
FR2784776A1 (en) Real time vehicle navigation comprises use of two-tier road network, with first principal road network and second minor road network

Legal Events

Date Code Title Description
GC Lien (pledge) constituted
AU Other action affecting the ownership or exploitation of an industrial property right
RG Lien (pledge) cancelled
CA Change of address
CD Change of name or company name
ST Notification of lapse

Effective date: 20110831