EP1463921A1 - Method and device for determining the minimal cost path between two points in a road network - Google Patents
Method and device for determining the minimal cost path between two points in a road networkInfo
- Publication number
- EP1463921A1 EP1463921A1 EP02711926A EP02711926A EP1463921A1 EP 1463921 A1 EP1463921 A1 EP 1463921A1 EP 02711926 A EP02711926 A EP 02711926A EP 02711926 A EP02711926 A EP 02711926A EP 1463921 A1 EP1463921 A1 EP 1463921A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- segments
- node
- level
- graph
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3446—Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes
Definitions
- the invention relates to a method for determining a minimum cost path between two points of a transport network.
- This type of method 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.
- the cost can be a cost in time, distance, money, road comfort or any other parameter.
- 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, motorway or other). A cost is assigned to each segment.
- 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.
- 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.
- 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.
- 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.
- 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 assigned to each segment of the network, - a path graph is developed, substantially starting from at least one of the two points, and
- the two minimum cost paths are determined, belonging respectively to the two graphs, - and the two minimum cost paths are connected in order to obtain the minimum cost path between the two points.
- the cost can be a cost in time, distance, money, road comfort, or other.
- 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.
- One thus considerably reduces the surface analyzed and consequently the number of nodes, without increasing the computation time per node.
- one searches for at least two neighboring nodes of said point, one allocates a non-zero basic cost to each of these two nodes and one develops a single graph from these two nodes.
- the basic cost of each node is determined, by proportionality, from the cost of the segment between these two nodes. If a node is inaccessible, for example due to a prohibited direction, it is not taken into account.
- the graph is developed from the nodes located near the point, by assigning to these nodes a non-zero basic cost. This ultimately amounts to developing the graph virtually from the point considered.
- the segments are classified according to a plurality of network levels
- the graph is developed taking into account only the segments belonging to the levels strictly above the level nii nf .
- the development of said graph is started, taking into account all the segments belonging to all the network levels.
- a group of successive segments of a given level m 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
- an "intermediate" node is a node between the two end nodes of a succession of adjacent segments.
- 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.
- 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.
- FIG. 1 shows a diagram of a client terminal connected to a road navigation assistance server, through the Internet;
- FIG. 2 shows a functional block diagram of the navigation aid server of Figure 1;
- FIG. 3 shows a partial view of a road network
- Figures 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 Figure 3.
- 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.
- 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.
- 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.
- 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.
- 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.
- the reception block 11 is connected, at the input, to the connection interface
- Block 11 is intended to receive requests for determining a road route of minimum cost, 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.
- the receiving block 12 is connected, at the input, to the connection interface
- This block 12 is intended to acquire, via the Internet 3, from supplier servers, not represented, data relating to the road network, including vector mapping data and road traffic information, which is regularly updated.
- the road network map comprises 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.
- 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.
- 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.
- 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.
- 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.
- intermediate node is meant to mean that it is a node between the two end nodes of a succession of adjacent segments.
- 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.
- 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.
- 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.
- 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.
- 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.
- the road network contains a plurality of nodes P n , with n varying from 0 to N, linked in pairs 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.
- the development block 160 uses two tables, respectively called “parent table” and “bucket table”, respectively represented in FIGS. 4 and 5.
- the parents table includes
- a second column of parent nodes intended to contain, for each node of 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 "parent" node P n 'of a node P n is a node connected to the node P ⁇ by a single segment and located upstream of the node P n along a path of the graph.
- the node P n is in fact a "descending" node with respect to the node P n '. It will be noted that the parent node P n 'can have several descending nodes belonging respectively to several paths of the graph.
- 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.
- 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.
- 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.
- the parents' table contains only the nodes P 0 , ..., Pg, P z , necessary for understanding the description below.
- the nodes adjacent to the node P 0 are the nodes of the network connected to the node P n by a single segment (it is rare that there are several).
- the nodes P 4 , P 2 , P 7 and P 5 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.
- each node P n of the list For the analysis of each node P n of the list, one seeks and one determines the nodes adjacent to this node P n . Among these adjacent nodes, the node or nodes which have not already been selected are selected. For each adjacent node which 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 P n ). If the new cost of the node considered is lower than its old cost (appearing in the table of parents), we select this node. Otherwise, the node considered is not selected.
- the parent node P n is associated with this node (by substituting the node P n for the old parent node, in the case where the considered node has already been selected) , we indicate the cost of this node (by replacing it with its old cost, in the case where the node considered has already been selected) and we set the flag of this node to one.
- the graph therefore has a substantially circular shape, centered around the point of origin Po-
- the optimal cost path is reconstructed, going up from the node P z to the node Po, from node to node, using kinship relationships between nodes in the parent table. It is thus determined that the path of minimum cost is the path Po - P 7 - »P z .
- the detection block 161 connected to the development block 160, is intended to calculate, as each graph develops, the number of segments of lowest level m inf belonging to the graph considered, to detect the overshoot of d 'a threshold of number of segments of level m inf , and to signal the exceeding of this threshold by the two graphs to the development block 160, so that it continues the development of the two graphs taking into account only the segments belonging to the levels strictly superior to the level mj nf .
- 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.
- Points A and B are here each located substantially at the location of a node of the road network.
- 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.
- 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.
- 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.
- 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.
- 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 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.
- Block 160 starts the development of the two graphs using the segments of the three network levels.
- 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 only the 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.
- the block 160 detects it and signals it to the development block 161 which continues the development of the two graphs, beyond this threshold S 2 , taking into account only level three segments, strictly greater than level two. It will be noted that if the number of level segments one of one of the two graphs does not reach the threshold Si, the development block 161 develops the two graphs taking account of the three levels, even if the number of level segments one of the other graph reaches and exceeds the threshold S ,.
- the development block 161 interrupts the development of the two graphs.
- the calculation algorithm finds a first point of intersection between C0 and C 1, noted X which is therefore a point which has been chosen by C0 and by C 1.
- V0 [B0]> V0 [X]
- V [Y] V0 [Y] + V1 [Y] and V0 [Y]> V0 [B0]
- V1 [Y]> V1 [B1] We have V [Y]> V0 [B0] + V1 [B1 ] So V [Y]> V0 [X] + VI [X] V [Y]> V [X]
- Block 162 then reconstructs the optimal path between point A and the interference node P, 0 and the optimal path between point B and the interference node P io , using the kinship relationships between nodes in the parent tables, and associate, connects these two optimal paths in order to obtain the minimum cost path between the two points A and B.
- the development block 160 searches for at least two nodes P A , o > PA, I. • • •, forming a segment and between which point A is substantially located.
- Block 160 then assigns to each of the nodes P A o > P AI , • • -, forming a segment, a non-zero basic cost, determined by proportionality from the cost of the segment considered, as explained below.
- P A; n and PA, ⁇ + I two neighboring nodes of point A, forming a road segment on which point A is substantially located.
- the basic cost c (P réelle n ), C (P A, n + i) of each node PA, ⁇ , P A , ⁇ + I is calculated using the following relationships:
- c (P A> n , P A) n + I ), d (P A ⁇ n , P A; n + ⁇ ), d (A, P A , n ) and d (A, P A , n + ⁇ ) represent respectively the cost of the segment connecting P A , n and P A , n + ⁇ , the distance between P A ⁇ n and P A, ⁇ + I> l at distance between P A ⁇ n and A and the distance between P A , n + ⁇ and AT.
- the basic cost of each of these nodes P A ⁇ n is determined , they are selected and they are classified in the array of buckets in ascending order in cost.
- the table of parents we associate with each node P A; n the parent point A, we indicate the cost of this node P A; n and we set its flag to one.
- the send block After determining the minimum cost path, the send block
- the road network could be subdivided into two levels or into more than three levels.
- the navigation aid server creates a virtual network by grouping successive level three segments.
- 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.
- the navigation aid server could calculate the number of segments of each graph belonging to the level m inf most bottom and after the number of segments of level m inf , 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 mj nf , the new lower level taken into account account becoming level m inf + ⁇ .
- the server could repeat this operation, incrementing the lower level as the graphs develop.
- the navigation aid server could be arranged to determine the minimum cost path in terms of distance, money, road comfort or the like.
- 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.
- 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.
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
The invention relates to a network comprising numerous nodes which are paired by means of segments. The inventive method consists in: allocating a cost to each segment in the network; producing two path graphs, essentially from two points respectively; interrupting the production of the two graphs when they comprise at least a first common interference node; determining the two minimal cost paths which belong respectively to the two graphs; and linking the two minimal cost paths in order to obtain the minimal cost path between the two points. The invention also relates to a server which is used to implement said method.
Description
PROCEDE ET DISPOSITIF POUR DETERMINER LE CHEMIN DE COUT MINIMAL ENTRE DEUX POIN TS DANS UN RESEAU ROUTIERMETHOD AND DEVICE FOR DETERMINING THE PATH OF THE COST MINIM A N D E U TRE XP ISO TS IN A ROAD NETWORK
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 5 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. 0This type of method 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. 0
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.
5 Dans les deux cas, le réseau routier est représenté par une pluralité de nœuds (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, motorway or other). A cost is assigned to each segment.
0 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 5 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.0 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 nœud est beaucoup plus important, de sorte que le temps global de calcul est aussi élevé.
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.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. 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 nœuds reliés deux à deux par des segments, dans lequelTo 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
- 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- 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, and
- on détermine le chemin de coût minimal reliant les deux points, procédé caractérisé par le fait que- the minimum cost path connecting the two points is determined, a process characterized by the fact that
- on développe deux graphes de chemins, sensiblement à partir des deux points, respectivement,- two path graphs are developed, substantially from the two points, respectively,
- on interrompt le développement des deux graphes lorsqu'ils comprennent au moins un premier nœud commun d'interférence,- the development of the two graphs is interrupted when they include at least one first common interference node,
- 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.- the two minimum cost paths are determined, belonging respectively to the two graphs, - and the two minimum cost paths are connected 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 nœuds, sans augmenter le temps de calcul par nœud.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. One thus considerably reduces the surface analyzed and consequently 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 nœud d'interférence, on peut ainsi diviser la surface analysée sensiblement par deux.
Avantageusement, dans le cas où l'un au moins des points est sensiblement situé à l'emplacement d'un nœud, on développe le graphe correspondant à partir dudit nœud.Interrupting the development of graphs, as soon as they include a first interference node, we can thus divide the analyzed surface substantially by two. 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 nœuds voisins dudit point, on attribue un coût de base non nul à chacun de ces deux nœuds et on développe un unique graphe à partir de ces deux nœuds.Advantageously also, for at least one of the two points, one searches for at least two neighboring nodes of said point, one allocates a non-zero basic cost to each of these two nodes and one develops a single graph from these two nodes.
Dans ce cas, et de préférence, les deux nœuds formant un segment sur lequel le point est sensiblement situé, on détermine le coût de base de chaque nœud, par proportionnalité, à partir du coût du segment entre ces deux nœuds. Si un nœud est inaccessible, par exemple à cause d'un sens interdit, il n'est pas pris en compte.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. 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 nœud du réseau, on développe le graphe à partir des nœuds situés à proximité du point, en attribuant à ces nœuds 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 assigning 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,In a particular embodiment,
- on classe les segments suivant une pluralité de niveaux de réseau,- the segments are classified according to a plurality of network levels,
- 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- during the development of at least one of the two graphs, the number of segments of the graph belonging to the lowest level m inf is calculated, and
- à partir d'un seuil prédéfini de nombre de segments de niveau minf, on développe le graphe en tenant compte des seuls segments appartenant aux niveaux strictement supérieurs au niveau niinf.- from a predefined threshold of number of segments of level m in f, the graph is developed taking into account only the segments belonging to the levels strictly above the level nii nf .
Ainsi, dès lors que le graphe contient un nombre de segments de niveau πiinf supérieur au seuil, on passe du niveau πijnf au niveau suivant minf+ι et on poursuit le développement du graphe en ne tenant compte que des segments de niveau supérieur ou égal au niveau minf. 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 πii nf greater than the threshold, we pass from level πij nf to the next level m inf + ι and we continue the development of the graph by only taking into account segments of higher level or equal to level m inf . This considerably reduces the number of calculations and, consequently, the calculation time.
Dans ce cas, et de préférence,In this case, and preferably,
- au cours du développement des deux graphes, on calcule le nombre de segments de chaque graphe appartenant au niveau πiinf le plus bas et- during the development of the two graphs, the number of segments of each graph belonging to the lowest level πii nf is calculated and
- lorsque le nombre de segments de niveau minf, 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 πijnf.
Ainsi, on ne passe du niveau minf au niveau mjnf+ι que lorsque les deux graphes contiennent un nombre de segments de niveau mjnf supérieur au seuil. Si le nombre de segments de niveau rιijnf de l'un des deux graphes n'atteint jamais le seuil, on prend en compte tous les segments de niveau supérieur ou égal à rrijnf pour le développement des deux graphes.- when the number of segments of level m inf , for the two graphs, has reached said threshold, the development of the two graphs is continued, taking into account only the segments belonging to the levels strictly higher than the level πij nf . Thus, one passes from the level m inf to the level mj nf + ι only when the two graphs contain a number of segments of level mj nf greater than the threshold. If the number of level segments rιij nf of one of the two graphs never reaches the threshold, we take into account all the segments of level greater than or equal to rrij nf 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, .Advantageously,.
- on recherche un groupe de segments successifs, d'un niveau donné m, comprenant exclusivement des nœuds 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- 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
- on substitue le groupe de segments successifs par un unique segment de niveau m.- the group of successive segments is replaced by a single segment of level m.
Par définition, un nœud "intermédiaire" est un nœud compris entre les deux nœuds d'extrémité d'une succession de segments adjacents.By definition, an "intermediate" node is a node between the two end nodes of a succession of adjacent segments.
On crée ainsi un réseau virtuel comprenant un nombre de nœuds 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 œuvre préférée du procédé de l'invention, ayant trouvé ledit premier nœud commun d'interférence Pi, on recherche le nœud d'interférence optimal Pio parmi les nœuds déjà analysés pour déterminer les deux chemins de coût minimal et contenant le nœud d'interférence optimalIn 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 io among the nodes already analyzed to determine the two paths of minimum cost and containing the optimal interference node
L'invention concerne également un serveur d'aide à la navigation routière pour la mise en œuvre 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.
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: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. 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 attached drawing in which:
- 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 1 shows a diagram of a client terminal connected to a road navigation assistance server, through the Internet;
- la figure 2 représente un schéma bloc fonctionnel du serveur d'aide à la navigation de la figure 1 ;- Figure 2 shows a functional block diagram of the navigation aid server of Figure 1;
- la figure 3 représente une vue partielle d'un réseau routier;- Figure 3 shows a partial view of a road network;
- 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. -- Figures 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 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 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 œuvre 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 11 est relié, en entrée, à l'interface de connexionThe reception block 11 is connected, at the input, to the connection interface
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,
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.Internet 10 and, at the output, to the calculation module 16. Block 11 is intended to receive requests for determining a road route of minimum cost, 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 connexionThe receiving block 12 is connected, at the input, to the connection interface
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 informations concernant le trafic routier, régulièrement mises à jour. La carte du réseau routier comprend μne pluralité de nœuds, 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.Internet 10 and, at the output, to the labeling block 15 and to the classification block 13. This block 12 is intended to acquire, via the Internet 3, from supplier servers, not represented, data relating to the road network, including vector mapping data and road traffic information, which is regularly updated. The road network map comprises 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. 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 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. 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 nœuds intermédiaires n'appartenant à aucun segment de niveau trois autre que ceux du groupe de segments successifs de niveau trois considéré. Par nœud "intermédiaire", on entend signifier qu'il s'agit d'un nœud compris entre les deux nœuds 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 nœuds 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 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.
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 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. 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 nœud P0 et jusqu'à un nœud 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 P 0 and up to a node P z , across the road network, using the bucket algorithm, with reference to Figures 3 to 5.
Le réseau routier contient une pluralité de nœuds 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 nœuds est indiqué entre parenthèses.The road network contains a plurality of nodes P n , with n varying from 0 to N, linked in pairs 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 comprendThe parents table includes
- une première colonne de nœuds, répertoriant tous les nœuds du réseau,- a first column of nodes, listing all the nodes in the network,
- une deuxième colonne de nœuds parents, destinée à contenir, pour chaque nœud du réseau, un nœud parent associé à ce nœud, - une troisième colonne de coûts, destinée à contenir, pour chaque nœud du réseau, le coût de ce nœud, eta second column of parent nodes, intended to contain, for each node of 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
- une quatrième colonne destinée à contenir, pour chaque nœud du réseau, un indice de sélection, appelé "flag", indiquant si ce nœud a ou n'a pas déjà été sélectionné pour faire partie du graphe, selon que le flag vaut un ou zéro.
Par définition, un nœud "parent" Pn' d'un nœud Pn est un nœud relié au nœud Pπ par un seul segment et situé en amont du nœud Pn le long d'un chemin du graphe. Le nœud Pn est en fait un nœud "descendant" vis-à-vis du nœud Pn'. On notera que le nœud parent Pn' peut avoir plusieurs nœuds descendants appartenant respectivement à plusieurs chemins du graphe.- a fourth column intended to contain, for each node of the network, a selection index, called "flag", indicating whether this node has or has not already been selected to be part of the graph, according to whether the flag is worth one or zero. By definition, a "parent" node P n 'of a node P n is a node connected to the node P π by a single segment and located upstream of the node P n along a path of the graph. The node P n is in fact a "descending" node with respect to the node P n '. It will be noted that the parent node P n 'can have several descending nodes belonging respectively to several paths of the graph.
Le tableau des buckets est destiné à contenir la liste des nœuds du graphe, c'est-à-dire les nœuds 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 nœuds. Par définition, le coût d'un nœud, pour un chemin donné, correspond au coût du chemin entre ce nœud et le nœud 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 nœud d'origine P0 jusqu'au nœud Pz s'effectue suivant les étapes décrites ci-après.The development of the graph from the original node P 0 to the node P z is carried out according to the steps described below.
Dans le tableau des parents, la colonne des nœuds 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 nœuds P0, ..., 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 parents' table contains only the nodes P 0 , ..., Pg, P z , necessary for understanding the description below.
D'emblée on notera que le fait de sélectionner un nœud du réseau consiste à introduire ce nœud 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 in the graph.
Etape initialeInitial step
On sélectionne le nœud d'origine P0 et on classe ce nœud P0, 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 nœud P0 et on met le flag du nœud P0 à un. -Le nœud P0 n'est associé à aucun point parent.We select the original node P 0 and we classify this node P 0 , 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 P 0 and one puts the flag of the node P 0 to one. -The node P 0 is not associated with any parent point.
Etapes de développement du grapheDevelopment stages of the graph
On analyse le premier nœud de la liste du tableau des buckets, à savoir P0. Pour cela, on recherche les nœuds adjacents au nœud P0. Par définition, les nœuds "adjacents" à un nœud Pn sont les nœuds du réseau reliés au nœud Pn par un unique segment (il est rare qu'il y en ait plusieurs). On détermine ainsi que les nœuds P4, P2, P7 et P5 sont adjacents au nœud Po, on sélectionne ces nœuds 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 nœud sélectionné P4, P2, P7 et P5, on met le flag de ce nœud à un, on associe à ce nœud le nœud parent Po et on indique le coût de ce nœud.
On analyse ensuite, l'un après l'autre, dans leur ordre de classement, les nœuds suivants de la liste du tableau des buckets. Au fur et à mesure de l'analyse des nœuds successifs de la liste du tableau des buckets, on développe le graphe, en enrichissant le tableau des buckets, jusqu'à ce que le nœud Pz soit sélectionné, en d'autres termes jusqu'à ce que le graphe atteigne le nœud Pz, comme explicité ci-après.We analyze the first node in the list of the buckets table, namely P 0 . For that, one seeks the nodes adjacent to the node P 0 . By definition, the nodes "adjacent" to a node P n are the nodes of the network connected to the node P n by a single segment (it is rare that there are several). We thus determine that the nodes P 4 , P 2 , P 7 and P 5 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 table of parents, for each selected node P 4 , P 2 , P 7 and P 5 , we set the flag for this node to one, we associate with this node the parent node Po and we indicate the cost of this node. 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 P z is selected, in other words until 'until the graph reaches the node P z , as explained below.
Pour l'analyse de chaque nœud Pn de la liste, on recherche et on détermine les nœuds adjacents à ce nœud Pn. Parmi ces nœuds adjacents, on sélectionne le ou les nœuds qui n'ont pas déjà été sélectionnés. Pour chaque nœud adjacent ayant déjà été sélectionné, on calcule le nouveau coût de ce nœud, en tenant compte du fait qu'il appartient à un autre chemin (celui passant par le nœud analysé Pn). Si le nouveau coût du nœud considéré est inférieur à son ancien coût (figurant dans le tableau des parents), on sélectionne ce nœud. Sinon, le nœud considéré n'est pas sélectionné.For the analysis of each node P n of the list, one seeks and one determines the nodes adjacent to this node P n . Among these adjacent nodes, the node or nodes which have not already been selected are selected. For each adjacent node which 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 P n ). If the new cost of the node considered is lower than its old cost (appearing in the table of parents), we select this node. Otherwise, the node considered is not selected.
Après avoir analysé le point Pn, on classe le ou les nœuds 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 nœud sélectionné, on associe à ce nœud le nœud parent Pn (en substituant le nœud Pn à l'ancien nœud parent, dans le cas où le nœud considéré a déjà été sélectionné), on indique le coût de ce nœud (en le substituant à son ancien coût, dans le cas où le nœud considéré a déjà été sélectionné) et on met le flag de ce nœud à un.After having analyzed the point P n , we classify the node (s) selected in the table of buckets, with their respective associated costs, in increasing order in cost. Furthermore, in the parent table, for each selected node, the parent node P n is associated with this node (by substituting the node P n for the old parent node, in the case where the considered node has already been selected) , we indicate the cost of this node (by replacing it with its old cost, in the case where the node considered has already been selected) and we set the flag of this node to one.
On développe ainsi un graphe de manière globalement concentrique, autour du point d'origine P0. Le graphe a donc une forme sensiblement circulaire, centré autour du point d'origine Po-We thus develop a graph in a generally concentric manner, around the point of origin P 0 . The graph therefore has a substantially circular shape, centered around the point of origin Po-
Etape finaleFinal step
Après avoir sélectionné le nœud Pz, autrement dit lorsque le graphe a atteint le nœud Pz, on reconstitue le chemin de coût optimal, en remontant depuis le nœud Pz jusqu'au nœud Po, de nœud en nœud, à l'aide des relations de parenté entre nœuds figurant dans le tableau des parents. On détermine ainsi que le chemin de coût minimal est le chemin Po - P7 — » Pz.After having selected the node P z , in other words when the graph has reached the node P z , the optimal cost path is reconstructed, going up from the node P z to the node Po, from node to node, using kinship relationships between nodes in the parent table. It is thus determined that the path of minimum cost is the path Po - P 7 - »P z .
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 minf appartenant au graphe considéré, à détecter le dépassement d'un seuil de nombre de segments de niveau minf, 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 mjnf.The detection block 161, connected to the development block 160, is intended to calculate, as each graph develops, the number of segments of lowest level m inf belonging to the graph considered, to detect the overshoot of d 'a threshold of number of segments of level m inf , and to signal the exceeding of this threshold by the two graphs to the development block 160, so that it continues the development of the two graphs taking into account only the segments belonging to the levels strictly superior to the level mj nf .
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 nœuds, à l'aide des relations de parenté entre nœuds 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 nœud 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. 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 1 1 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, à
l'aide de l'algorithme à buckets précédemment explicité. Les points A et B étant situés sensiblement à l'emplacement d'un nœud du réseau, on assimile chaque point A, B au nœud situé à proximité, en attribuant un coût de base nul à ce nœud.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 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 nombre de segments de niveau un de l'autre graphe atteint et dépasse le seuil S,.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 only the 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 S 2 , the block 160 detects it and signals it to the development block 161 which continues the development of the two graphs, beyond this threshold S 2 , taking into account only level three segments, strictly greater than level two. It will be noted that if the number of level segments one of one of the two graphs does not reach the threshold Si, the development block 161 develops the two graphs taking account of the three levels, even if the number of level segments one of the other graph reaches and exceeds the threshold S ,.
Dès que les deux graphes comprennent un premier nœud commun d'interférence Pis autrement dit dès qu'un même nœud d'interférence Pj 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 comprise a first common interference node P is in other words as soon as the same interference node Pj 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 nœud commun d'interférence Ps , on analyse à nouveau les tableaux de buckets pour en déduire le nœud d'interférence optima Pio 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 node of interference P s , we again analyze the bucket arrays to deduce therefrom the optimum interference node P io corresponding to the paths of minimal 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.
Le calcul du départ à l'arrivée est noté CO, le calcul de l'arrivée au départ est noté ClLet be a bidirectional calculation. The calculation of the departure on arrival is noted CO, the calculation of the arrival on departure is noted Cl
On note V0[...] et Vl[...] les coûts pour atteindre chaque point, respectivement suivant le calcul C0 et suivant le calcul Cl.One notes V0 [...] and Vl [...] the costs to reach each point, respectively according to calculation C0 and following calculation Cl.
L'algorithme de calcul trouve un premier point d'intersection entre C0 et C 1 , noté X qui est donc un point qui a été choisi par C0 et par C 1. Le coût total du chemin en passant par X est V[X] = V0[X] + VI [X].The calculation algorithm finds a first point of intersection between C0 and C 1, noted X which is therefore a point which has been chosen by C0 and by C 1. The total cost of the path passing through X is V [X] = V0 [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 C0, ou par Cl, et qu'il se trouve donc dans le tableau des buckets de l'un ou de l'autre.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 C0, or by Cl, and that it is therefore in the buckets table of one or the other.
A Calcul 1 A Calculation 1
YY
Soit B0 et Bl les points parents de Y dans les deux calculs.Let B0 and Bl be the parent points of Y in the two calculations.
Considérons que Y n'a été analysé, ni par C0, ni par Cl .Consider that Y has not been analyzed, neither by C0, nor by Cl.
Y n'a pas été analysé par C0, donc B0 n'a pas été choisi par C0, doncY was not analyzed by C0, so B0 was not chosen by C0, therefore
V0[B0] > = V0[X]V0 [B0]> = V0 [X]
Y n'a pas été analysé par Cl, donc Bl n'a pas été choisi par Cl, donc V1[B1] > = V1[X]Y was not analyzed by Cl, therefore Bl was not chosen by Cl, therefore V1 [B1]> = V1 [X]
Comme V[Y] = V0[Y] + V1[Y] et V0[Y] > V0[B0], V1[Y] > V1[B1] On a V[Y] > V0[B0] + V1[B1]
Donc V[Y] > V0[X] + VI [X] V[Y] > V[X]As V [Y] = V0 [Y] + V1 [Y] and V0 [Y]> V0 [B0], V1 [Y]> V1 [B1] We have V [Y]> V0 [B0] + V1 [B1 ] So V [Y]> V0 [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 Bl a déjà été choisi). Donc Y se trouve forcément dans le tableau des buckets de CO ou de Cl.We therefore deduce that if V [Y] <= V [X], Y has necessarily already been analyzed (BO or Bl 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 Cl meilleur que X.Now consider that Y is a junction point of CO and Cl better than X.
Si BO n'a pas déjà été choisi par CO, alors V0[B0] > V0[X]If BO has not already been chosen by CO, then V0 [B0]> V0 [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]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]
II en résulte que B0 a déjà été choisi par Cl . Donc Y n'est pas le point de rencontre de C0 et Cl. Ce qui est absurde par définition.It follows that B0 has already been chosen by Cl. So Y is not the meeting point of C0 and Cl. Which is absurd by definition.
On raisonne de même pour B 1.We reason in the same way for B 1.
II en résulte queAs a result,
B0 et Bl avaient déjà été choisis au moment où on trouve X.B0 and Bl had already been chosen when X is found.
Le bloc 162 reconstitue ensuite le chemin optimal entre le point A et le nœud d'interférence P,0 et le chemin optimal entre le point B et le nœud d'interférence Pio, à l'aide des relations de parenté entre nœuds 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, 0 and the optimal path between point B and the interference node P io , using the kinship relationships between nodes in the parent tables, and associate, connects 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 nœud du réseau, le bloc de développement 160 recherche au moins deux nœuds PA,o> PA,I. • • •, 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 P A , o > PA, I. • • •, forming a segment and between which point A is substantially located.
Le bloc 160 attribue ensuite à chacun des nœuds PAo> PAI, • • -, 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,Π+I,
deux nœuds voisins du point A, formant un segment routier sur lequel le point A est sensiblement situé. Le coût de base c(P „n), C(PA, n+i) de chaque nœud PA,Π, PA,Π+I est calculé à l'aide des relations suivantes:Block 160 then assigns to each of the nodes P A o > P AI , • • -, forming a segment, a non-zero basic cost, determined by proportionality from the cost of the segment considered, as explained below. Let P A; n and PA, Π + I, two neighboring nodes of point A, forming a road segment on which point A is substantially located. The basic cost c (P „ n ), C (P A, n + i) of each node PA, Π, P A , Π + I is calculated using the following relationships:
( n \ ι τ> D \ d(A, PA )( n \ ι τ > D \ d (A, P A )
où c(PA>n,PA)n+I), d(PAιn,PA;n+ι), d(A,PA,n) et d(A,PA, n+ι) représentent respectivement le coût du segment reliant PA,n et PA,n+ι, la distance entre PAιn et PA,Π+I > la distance entre PAιn et A et la distance entre PA,n+ι et A.where c (P A> n , P A) n + I ), d (P Aιn , P A; n + ι), d (A, P A , n ) and d (A, P A , n + ι) represent respectively the cost of the segment connecting P A , n and P A , n + ι, the distance between P Aιn and P A, Π + I> l at distance between P Aιn and A and the distance between P A , n + ι and AT.
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 nœuds PA>n voisins du point A, on détermine le coût de base de chacun de ces nœuds 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 nœud PA;n le point parent A, on indique le coût de ce nœud PA;n et on met son flag à un.During the initial stage, after having determined the nodes P A> n neighbors of point A, the basic cost of each of these nodes P Aιn is determined , they are selected and they are classified in the array of buckets in ascending order in cost. In the table of parents, we associate with each node P A; n the parent point A, we indicate the cost of this node P A; n and we set its flag to one.
Lors des étapes suivantes de développement du graphe, on analyse successivement les nœuds de la liste du tableau des buckets, dans leur ordre de classement, tout en sélectionnant au fur et à mesure de nouveau nœuds pour développer le graphe, comme précédemment explicité.During the following stages of development of the graph, we successively analyze the nodes of the list of the table of buckets, in their order of classification, while gradually selecting new nodes to develop the graph, as previously explained.
On développe ainsi un unique graphe à partir de plusieurs nœuds 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 nœuds, ou sur une place, dans laquelle débouchent plusieurs rues, un nœud é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'émissionAfter determining the minimum cost path, the send block
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.17 transmits to the requesting terminal a notification indicating the minimum cost path between the two points A and B, through the Internet 3 and the cellular network 4.
Le réseau routier pourrait être subdivisé en deux niveaux ou en plus de trois 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 successifs d'un niveau donné m comprenant exclusivement des nœuds 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.The road network could be subdivided into two levels or into more than three levels. 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 minf le plus bas et après que le nombre de segments de niveau minf, 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 mjnf, le nouveau niveau inférieur pris en compte devenant le niveau minf+ι. 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 inf most bottom and after the number of segments of level m inf , 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 mj nf , the new lower level taken into account account becoming level m inf + ι. 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 nœud 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 nœuds 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 œuvre 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
Revendications claims
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 nœuds (Pn) reliés deux à deux par des segments, dans lequel1- Method for determining the minimum cost path between two points (A, B), through a transport network comprising a plurality of nodes (P n ) linked in pairs by segments, in which
- on attribue un coût à chaque segment du réseau,- a cost is allocated to each segment of the network,
- on développe un graphe de chemins, sensiblement à partir de l'un au moins des deux points (A, B), et- a path graph is developed, substantially starting from at least one of the two points (A, B), and
- on détermine le chemin de coût minimal reliant les deux points (A, B), procédé caractérisé par le fait que- the minimum cost path connecting the two points (A, B) is determined, a process characterized by the fact that
- on développe deux graphes de chemins, sensiblement à partir des deux points (A, B), respectivement,- two path graphs are developed, substantially from the two points (A, B), respectively,
- on interrompt le développement des deux graphes lorsqu'ils comprennent au moins un premier nœud commun d'interférence (Pj),- the development of the two graphs is interrupted when they include at least one first common interference node (Pj),
- on détermine les deux chemins de coût minimal, appartenant respectivement aux deux graphes,- the two paths of minimum cost, belonging respectively to the two graphs, are determined,
- 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).
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 nœud, on développe le graphe correspondant à partir dudit nœud.2- The method of 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 nœuds (PA,Π3 PA,Π+I) voisins dudit point (A), on attribue un coût de base non nul à chacun de ces deux nœuds (PA,n, PA,Π+I) et on développe un unique graphe à partir de ces deux nœuds (PA)I1, PA,n+ι).3- Method according to one of claims 1 and 2, wherein, for at least one of the two points (A, B), one searches at least two neighboring nodes (P A, Π3 P A , Π + I ) from said point (A), we assign a non-zero basic cost to each of these two nodes (P A , n , P A, Π + I ) and we develop a single graph from these two nodes (P A) I1 , P A , n + ι).
4- Procédé selon la revendication 3, dans lequel, les deux nœuds (PA>n, PA,n+ formant un segment sur lequel le point (A) est sensiblement situé, on détermine le coût de base de chaque nœud (PA,n, PA,Π+I)5 par proportionnalité, à partir du coût du segment entre ces deux nœuds (PA,n,4- The method of claim 3, wherein, the two nodes (P A> n , P A, n + forming a segment on which the point (A) is substantially located, we determine the basic cost of each node (P A , n , P A , Π + I) 5 by proportionality, from the cost of the segment between these two nodes (P A , n ,
5- Procédé selon l'une des revendications 1 à 4, dans lequel5- Method according to one of claims 1 to 4, wherein
- on classe les segments suivant une pluralité de niveaux de réseau,- the segments are classified according to a plurality of network levels,
- 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 minf, on développe le graphe en tenant compte des seuls segments appartenant aux niveaux strictement supérieurs au niveau πijnf.- during the development of at least one of the two graphs, the number of segments of the graph belonging to the lowest level m inf is calculated, and - from a predefined threshold of number of segments of level m inf , the graph is developed taking into account only the segments belonging to the levels strictly higher than the level πij nf .
6- Procédé selon la revendication 5, dans lequel6- The method of claim 5, wherein
- au cours du développement des deux graphes, on calcule le nombre de segments de chaque graphe appartenant au niveau minf le plus bas et- during the development of the two graphs, the number of segments of each graph belonging to the lowest level m inf is calculated and
- lorsque le nombre de segments de niveau mjnf, 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 mjnf.- when the number of segments of level mj nf , for the two graphs, has reached said threshold, the development of the two graphs is continued, taking into account only the segments belonging to the levels strictly higher than the level mj nf .
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 lequel8- Method according to one of claims 1 to 7, wherein
- on recherche un groupe de segments successifs, d'un niveau donné m, comprenant exclusivement des nœuds 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- 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
- on substitue le groupe de segments successifs par un unique segment de niveau m.- 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.
10- Procédé selon la revendication 9, dans lequel on développe les deux graphes en utilisant un algorithme à buckets.10- The method of 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 nœud commun d'interférence (Pj), on recherche le nœμd d'interférence optimal (Pio) parmi les nœuds déjà analysés pour déterminer les deux chemins de coût minimal et contenant le nœud d'interférence optimal12- Method according to one of claims 1 to 11, wherein, having found said first common interference node (Pj), we search for the optimal interference nodeμd (P io ) among the nodes already analyzed to determine the two minimal cost paths and containing the optimal interference node
13- Serveur d'aide à la navigation routière pour la mise en œuvre 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).13- Server for road navigation assistance for the implementation of the method of one of claims 1 to 12, comprising an interface (10) for connection to a communication network (3), a block (11) of receipt of 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, in which the calculation module (16) comprises a block (160) for developing a graph, a block (161) for detecting the change in the level of segments and a block (162) for determining minimum cost path.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/FR2002/000061 WO2003058170A1 (en) | 2002-01-09 | 2002-01-09 | Method and device for determining the minimal cost path between two points in a road network |
Publications (1)
Publication Number | Publication Date |
---|---|
EP1463921A1 true EP1463921A1 (en) | 2004-10-06 |
Family
ID=8871164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP02711926A Withdrawn EP1463921A1 (en) | 2002-01-09 | 2002-01-09 | Method and device for determining the minimal cost path between two points in a road network |
Country Status (5)
Country | Link |
---|---|
US (1) | US7437239B2 (en) |
EP (1) | EP1463921A1 (en) |
AU (1) | AU2002231861B2 (en) |
CA (1) | CA2472950A1 (en) |
WO (1) | WO2003058170A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109150629A (en) * | 2018-10-12 | 2019-01-04 | 中交第公路勘察设计研究院有限公司 | A kind of road network polymorphic type monitoring device combination distribution method |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1805484B1 (en) * | 2004-10-18 | 2018-05-23 | Compagnie Générale des Etablissements Michelin | Route calculation device and method with progressive elimination of data corresponding to the road network |
WO2006042688A2 (en) * | 2004-10-18 | 2006-04-27 | Societe De Technologie Michelin | Method of establishing neighbouring points for a digital road network system |
FR2881862B1 (en) * | 2005-02-07 | 2007-04-13 | Michelin Soc Tech | METHOD AND DEVICE FOR DETERMINING ROUTE WITH POINTS OF INTEREST |
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 |
CN111651844B (en) * | 2019-12-04 | 2023-04-11 | 台州学院 | Method for calculating multiple bus paths between two bus stops |
Family Cites Families (10)
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 (en) * | 1989-03-31 | 1999-07-19 | アイシン精機株式会社 | Moving route search method and apparatus |
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 (en) * | 1995-05-30 | 2003-02-24 | 株式会社デンソー | Travel guide device for vehicles |
FR2761837B1 (en) * | 1997-04-08 | 1999-06-11 | Sophie Sommelet | NAVIGATION AID DEVICE HAVING A DISTRIBUTED INTERNET-BASED ARCHITECTURE |
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 |
-
2002
- 2002-01-09 AU AU2002231861A patent/AU2002231861B2/en not_active Ceased
- 2002-01-09 WO PCT/FR2002/000061 patent/WO2003058170A1/en not_active Application Discontinuation
- 2002-01-09 EP EP02711926A patent/EP1463921A1/en not_active Withdrawn
- 2002-01-09 CA CA002472950A patent/CA2472950A1/en not_active Abandoned
- 2002-01-09 US US10/500,991 patent/US7437239B2/en not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
See references of WO03058170A1 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109150629A (en) * | 2018-10-12 | 2019-01-04 | 中交第公路勘察设计研究院有限公司 | A kind of road network polymorphic type monitoring device combination distribution method |
CN109150629B (en) * | 2018-10-12 | 2021-05-14 | 中交第一公路勘察设计研究院有限公司 | Road network multi-type monitoring equipment combined layout method |
Also Published As
Publication number | Publication date |
---|---|
WO2003058170A1 (en) | 2003-07-17 |
AU2002231861B2 (en) | 2008-05-15 |
US20050119825A1 (en) | 2005-06-02 |
AU2002231861A1 (en) | 2003-07-24 |
CA2472950A1 (en) | 2003-07-17 |
US7437239B2 (en) | 2008-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1463921A1 (en) | Method and device for determining the minimal cost path between two points in a road network | |
EP2017807B1 (en) | Method of automatically determining speed limits on a road and associated system | |
EP2116015B1 (en) | Method for estimating and signalling the density of mobile nodes in a road network | |
EP1848965B1 (en) | Method and device for determining a route with points of interest | |
EP3894297B1 (en) | Method for characterising bends for warning drivers | |
EP3903069B1 (en) | Method and system for planning a journey | |
WO2017174623A1 (en) | Method and apparatus for identifying congestion bottlenecks | |
FR2947231A1 (en) | METHOD FOR PREDICTIVELY DETERMINING THE ROAD SITUATIONS OF A VEHICLE | |
FR2805641A1 (en) | METHOD FOR MANAGING PARKING SPACES | |
EP2220797B1 (en) | Method for distributing data packets in a mobile node network and associated system | |
EP2785553B1 (en) | Method for estimating the energy consumption of a motor vehicle | |
EP1805485A2 (en) | Method of determining a route as a function of sinuosity index | |
EP1466141B1 (en) | Route determination method and device | |
EP2076735A1 (en) | Method of determining an itinerary so that the fuel consumption can be predetermined according to the characteristics of the route | |
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 | |
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 | |
FR3081413A1 (en) | TREATMENT AND COMMUNICATION INTERFACE FOR GUIDING CONNECTED AND / OR AUTONOMOUS IN A PARKING PARK BY PROVIDING THEM WITH AN OPTIMUM ITINERARY | |
FR3065802A1 (en) | METHOD AND DEVICE FOR UPDATING MAPPING DATA COMPRISING A PLURALITY OF ELEMENTARY ZONES | |
FR3099620A1 (en) | Improved route planning system for users of a multimodal structured transport network | |
FR2716994A1 (en) | Method and device for selecting traffic information. | |
EP3616179B1 (en) | Method and device for controlling the transmission of data from a vehicle to communication equipment | |
EP0728623B1 (en) | Method for controlling the transmission of messages on a transmission network in an automobile's on-board electronic system | |
FR3093976A1 (en) | Method of adaptive routing of a vehicle in a road network | |
EP4418230A1 (en) | Method for determining at least one attribute of road traffic for a transport network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20040802 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR |
|
AX | Request for extension of the european patent |
Extension state: AL LT LV MK RO SI |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: MASTERNAUT |
|
17Q | First examination report despatched |
Effective date: 20100520 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20101201 |