Patrick Niklaus
0b1c9d33a5
Don't use phantom node pairs as input for distance table
2015-12-16 22:51:01 +01:00
Patrick Niklaus
1a8783cfa0
Fix unused variable warning
2015-12-16 22:03:46 +01:00
Patrick Niklaus
24e7d00af5
Fix call to shortest_path from match plugin /cc @danpat
2015-12-15 21:27:03 +01:00
Patrick Niklaus
9414a8085d
Fixed shortest_path when called from match plugin
2015-12-11 05:44:05 +01:00
Patrick Niklaus
b41af5f580
Incoperate PR comments
2015-12-09 23:37:06 +01:00
Patrick Niklaus
cdb1918973
Refactor StaticRTree to remove application dependent code
...
StaticRTree now acts like a container, just returning the input data
(NodeBasedEdge) and not PhantomNodes.
2015-12-09 23:37:05 +01:00
Patrick Niklaus
7e722db3ee
Make the API grammar more strict to actually error
2015-12-09 21:17:18 +01:00
Patrick Niklaus
20c45be3b3
Address PR comments
2015-12-09 21:17:18 +01:00
Fabien Girard
478d4a571a
Support rectangular matrix with less sources than targets
2015-12-09 21:17:18 +01:00
Patrick Niklaus
c38183423f
Move assertion to caller to save parameter
2015-12-05 01:27:01 +01:00
Patrick Niklaus
019e26dd8e
Refactor direct_shortest_path and shortest_path
2015-12-04 23:34:24 +01:00
Patrick Niklaus
4206d98b55
Move leg search to routing base
2015-12-04 20:52:21 +01:00
Daniel Patterson
8f3482561b
Rename great_circle_distance->haversine_distance, and euclidean_distance->great_circle_distance, because that's what they actually are.
2015-11-17 17:10:06 -05:00
Kal Conley
29c75337f2
Fix segmentation fault when sizeof(size_t) < sizeof(int64_t)
2015-10-19 20:13:02 +02:00
Patrick Niklaus
fd84827e51
Don't use stalling in core search
2015-10-19 17:11:03 +02:00
Daniel J. Hofmann
17d8e65c64
Silence unused variable warnings
2015-09-30 18:20:00 +02:00
Daniel J. Hofmann
829b9d96e4
Revert parallelization on algorithms that are used in the server. Let node do this.
...
This reverts @6b2bf49 on the server algorithms.
2015-09-28 20:26:29 +02:00
Daniel J. Hofmann
9231335eef
Use Intel TBB's parallel_sort even for nested parallelism.
...
TBB has a global task scheduler (that's one of the reason TBB is not
linked statically but dyanmically instead). This allows control over all
running threads, enabling us to use nested parallelism and the scheduler
doing all the task allocation itself.
That is, nested parallel execution such as in
parallel_for(seq, [](const auto& rng){
parallel_sort(rng);
});
is no problem at all, as the scheduler still claims control over the
global environment.
Therefore, use `parallel_sort` Range overload where possible.
References:
- https://www.threadingbuildingblocks.org/docs/help/hh_goto.htm#reference/algorithms.htm
- https://www.threadingbuildingblocks.org/docs/help/hh_goto.htm#reference/algorithms/parallel_sort_func.htm
- https://www.threadingbuildingblocks.org/docs/help/hh_goto.htm#reference/task_scheduler.htm
- https://www.threadingbuildingblocks.org/docs/help/hh_goto.htm#reference/task_scheduler/task_scheduler_init_cls.htm
- https://www.threadingbuildingblocks.org/docs/help/hh_goto.htm#tbb_userguide/Initializing_and_Terminating_the_Library.htm
2015-09-28 20:26:03 +02:00
Daniel J. Hofmann
82dd5d8ccf
Use Boost.Optional instead of custom optional monad implementation.
...
This switches out the `<variant/optional.hpp>` implementation of the
optional monad to the one from Boost.
The following trick makes sure we keep compile times down:
- use `<boost/optional/optional_fwd.hpp>` to forward declare the
optional type in header, then include the full blown optional header
only in the implementation file.
- do the same for the files we touch, e.g. forward declare osmium types,
allowing us to remove the osmium header dependency from our headers:
`namespace osmium { class Relation; }
and then include the appropriate osmium headers in the implementation
file only. We should do this globally...
References:
- http://www.boost.org/doc/libs/1_59_0/libs/optional/doc/html/index.html
- https://github.com/osmcode/libosmium/issues/123
2015-09-28 15:00:21 +02:00
Patrick Niklaus
70bb082973
Fix endless loop
2015-09-03 17:02:34 +02:00
Patrick Niklaus
0b53242564
Move distance calculation out of loop
2015-09-03 17:02:34 +02:00
Patrick Niklaus
f11bd509b0
Also prune on MAX_DOUBLE
2015-09-03 17:02:33 +02:00
Patrick Niklaus
57608628a4
Use median sample time instead of average to harden against outliers
2015-09-03 17:02:33 +02:00
Patrick Niklaus
f167c3e12e
Move heap initialization out of loop
2015-09-03 17:02:33 +02:00
Patrick Niklaus
ee0c20ae44
Fix typo
2015-09-03 17:02:33 +02:00
Patrick Niklaus
c30c144120
Move matching default in route_parameters.cpp
2015-09-03 17:02:33 +02:00
Patrick Niklaus
a5ee82b0d1
Make matching thresholds adaptable to different sample lengths
2015-09-03 17:02:33 +02:00
Huyen Chau Nguyen
74e00cf652
fix some small issues:
...
remove empty unit test
remove compiler directives
move trip related files from routing_algorithms to algorithms
run clang-format on files
fix all std::size_t related issues
improve code by adding std::move()s
clean up includes
fixing several code stye and improvement issues
add several small code improvements
return single scc in SplitUnaccessibleLocations() when theres only one
change ComputeRoute() to return an InternalRouteResult by value
improve some code style issues
2015-09-01 15:20:35 +02:00
Huyen Chau Nguyen
e773a80b06
remove possibility to choose algorithm but only use brute force and farthest insertion
2015-09-01 15:20:34 +02:00
Huyen Chau Nguyen
e6eea67eeb
rename all names with round_trip, trip or tsp to trip to standardize the naming
2015-09-01 15:20:34 +02:00
Huyen Chau Nguyen
8429a1e792
add assertions
2015-09-01 15:20:34 +02:00
Huyen Chau Nguyen
93835b9b94
change input param for tsp algos from a vector to a begin and an end iterator
2015-09-01 15:20:34 +02:00
Huyen Chau Nguyen
78a8cf6982
add a wrapper for the distance table for better access
2015-09-01 15:20:34 +02:00
Huyen Chau Nguyen
99cf3219d4
have less redundant code for requests with one or multiple SCCs
2015-09-01 15:20:34 +02:00
Huyen Chau Nguyen
7587e97d46
use typedefs from typedefs.h
...
return roundtrip result as a return parameter and not as an input parameter
2015-09-01 15:20:34 +02:00
Huyen Chau Nguyen
77e9e95067
fix bugs
...
and add todos of code review session with daniel-j-h
2015-09-01 15:20:33 +02:00
Chau Nguyen
6191b6bee2
add parameter to choose algorithm for tsp calculation and remove redundant code
2015-09-01 15:20:33 +02:00
Chau Nguyen
b15f8f68e4
refactor and improve the round trip computation of multiple SCCs
...
Problem:
- old solution was slow
- depending on the result of TarjanSCC, new distance tables and new phantom node vectors were created to run tsp on it
Solution:
- dont create new distance tables and phantom node vectors
- pass an additional vector with the information which locations are in the same component and ignore all others
fix bug for scc split computation
2015-09-01 15:20:33 +02:00
Chau Nguyen
6eeadddd4d
remove attention on unaccessible locations as we filter them beforehand
2015-09-01 15:20:33 +02:00
Chau Nguyen
a40b3a98dc
split algorithms in different plugins for better evaluation
...
split tsp brute force algorithm for better testing
refactor and clean up
2015-09-01 15:20:33 +02:00
Chau Nguyen
f0d66ff0fb
move implementation of algorithms to own hpp in routing_algorithms folder
...
add changes to improve readability
2015-09-01 15:20:33 +02:00
Chau Nguyen
d3ebd360b2
add brute force algorithm for tsp for small tests
2015-09-01 15:20:33 +02:00
Patrick Niklaus
48d1a5ec5d
Make sure to terminate when the core heaps are empty
2015-08-19 12:27:44 +02:00
Patrick Niklaus
7cc875b8db
Initial version of core based search
2015-08-19 12:27:44 +02:00
Patrick Niklaus
49adf2192a
Move calculate_coordinate to algorithms/
...
Fixes #1367
2015-08-12 13:02:18 +02:00
MoKob
b526cadebd
Initial version of core ch
...
This improves preprocessing times in favour of worse query performance.
Core size can be set over the --core parameater, default is the old
behaviour to fully contract the graph.
2015-08-01 18:00:48 +02:00
Patrick Niklaus
5c77bb7c67
Fix inversion of sign
2015-06-17 23:25:16 +02:00
Daniel Patterson
f52abc1a62
When replacing packed_path1/2, also need to replace distance1/2 to properly track.
2015-05-29 16:52:08 +02:00
Daniel Patterson
e763953562
Address #1424 by using the original fix
2015-05-29 16:52:08 +02:00
Patrick Niklaus
dd33a45644
Revert "fix incorrect behavior when via point was on same one-way street as destination but should have been reached before, closes #1424 "
...
This reopens #1424 but potentially fixes #1429 .
This reverts commit 11c671354b
.
2015-05-17 23:35:31 +02:00