You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: readme.Rmd
+15-22Lines changed: 15 additions & 22 deletions
Original file line number
Diff line number
Diff line change
@@ -18,6 +18,7 @@ For now, `cppRouting` can implement :
18
18
- uni-directional Dijkstra algorithm,
19
19
- bi-directional Dijkstra algorithm,
20
20
- uni-directional A* algorithm
21
+
- New bi-directional A* algorithm (Piljs & Post, 2009 : see http://repub.eur.nl/pub/16100/ei2009-10.pdf)
21
22
22
23
All these functions are written in C++ and use std::priority_queue container from the Standard Template Library.
23
24
This package have been made with `Rcpp` and `parallel` packages.
@@ -52,12 +53,10 @@ Data has to be a 3 columns data.frame or matrix containing from, to and a cost/d
52
53
- Isochrones/isodistances with one or multiple breaks.
53
54
54
55
The choice between all the algorithms is available for `get_distance_pair` and `get_path_pair`. In these functions, uni-directional Dijkstra algorithm is stopped when the destination node is reached.
55
-
A* is relevant if geographic coordinates of all nodes are provided. Note that coordinates should be expressed in a projection system.
56
-
To be accurate and efficient, `A*`algorithm should use an admissible heuristic function (here the Euclidean distance), e.g cost and heuristic function must be expressed in the same unit.
57
-
In `cppRouting`, heuristic function `h` is defined such that : h(xi,yi,xdestination,ydestination)/k, with a constant k; so in the case where coordinates are expressed in meters and cost is expressed in time, k is the maximum speed allowed on the road.
56
+
`A*` and `NBA*` are relevant if geographic coordinates of all nodes are provided. Note that coordinates should be expressed in a projection system.
57
+
To be accurate and efficient, `A*`and `NBA*` algorithms should use an admissible heuristic function (here the Euclidean distance), e.g cost and heuristic function must be expressed in the same unit.
58
+
In `cppRouting`, heuristic function `h` is defined such that : h(xi,yi,xdestination,ydestination)/k, with a constant k; so in the case where coordinates are expressed in meters and cost is expressed in time, k is the maximum speed allowed on the road. By default, constant is 1 and is designed for graphs with cost expressed in the same unit than coordinates (e.g meters).
58
59
59
-
By default, constant is 1 and is designed for graphs with cost expressed in the same unit than coordinates (e.g meters).
60
-
61
60
If coordinates cannot be provided, bi-directional Dijkstra algorithm can offer a good alternative to A* in terms of performance.
Copy file name to clipboardExpand all lines: readme.md
+43-71Lines changed: 43 additions & 71 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,7 @@ Package presentation
11
11
- uni-directional Dijkstra algorithm,
12
12
- bi-directional Dijkstra algorithm,
13
13
- uni-directional A\* algorithm
14
+
- New bi-directional A\* algorithm (Piljs & Post, 2009 : see <http://repub.eur.nl/pub/16100/ei2009-10.pdf>)
14
15
15
16
All these functions are written in C++ and use std::priority\_queue container from the Standard Template Library.
16
17
This package have been made with `Rcpp` and `parallel` packages.
@@ -50,11 +51,9 @@ Main functions
50
51
- Isochrones/isodistances with one or multiple breaks.
51
52
52
53
The choice between all the algorithms is available for `get_distance_pair` and `get_path_pair`. In these functions, uni-directional Dijkstra algorithm is stopped when the destination node is reached.
53
-
A\* is relevant if geographic coordinates of all nodes are provided. Note that coordinates should be expressed in a projection system.
54
-
To be accurate and efficient, `A*` algorithm should use an admissible heuristic function (here the Euclidean distance), e.g cost and heuristic function must be expressed in the same unit.
55
-
In `cppRouting`, heuristic function `h` is defined such that : h(xi,yi,xdestination,ydestination)/k, with a constant k; so in the case where coordinates are expressed in meters and cost is expressed in time, k is the maximum speed allowed on the road.
56
-
57
-
By default, constant is 1 and is designed for graphs with cost expressed in the same unit than coordinates (e.g meters).
54
+
`A*` and `NBA*` are relevant if geographic coordinates of all nodes are provided. Note that coordinates should be expressed in a projection system.
55
+
To be accurate and efficient, `A*` and `NBA*` algorithms should use an admissible heuristic function (here the Euclidean distance), e.g cost and heuristic function must be expressed in the same unit.
56
+
In `cppRouting`, heuristic function `h` is defined such that : h(xi,yi,xdestination,ydestination)/k, with a constant k; so in the case where coordinates are expressed in meters and cost is expressed in time, k is the maximum speed allowed on the road. By default, constant is 1 and is designed for graphs with cost expressed in the same unit than coordinates (e.g meters).
58
57
59
58
If coordinates cannot be provided, bi-directional Dijkstra algorithm can offer a good alternative to A\* in terms of performance.
0 commit comments