An Experiment on Transfer Patterns Robustness
Visit the project site for an overview and experimental results.
Transit Planner is an efficient route planner for public transportation networks. Its implementation is based on the transfer patterns precomputation, providing ultra-fast query times on large networks.
The planner was used to conduct experiments on the reliablity of transfer patterns in the presence of real-time updates of the network, like delays or connectivity problems.
Transit Planner and all its auxiliary modules were developed by Eugen Sawin, Philip Stahl and Jonas Sternisko during a master team project at Prof. Hannah Bast's chair at the University of Freiburg, Germany.
Transit Planner and all its auxiliary modules are released under the GNU General Public License Version 3, see the COPYING notice for the full license text.
This is Eugen Sawin's fork of the original team project. To obtain the version used during the experiments, visit the code section of the project overview website.
- POSIX.1b-compliant operating system (librt)
- GNU GCC 4.6
- GNU Make
- Python 2.7 (only for style checking and the documentation server)
- Boost C++ Libraries 1.46
- OpenMP 4.6
- Google C++ Test Framework 1.6 (only required for testing)
- Google C++ Style Guide Linter (included, only required for style checking)
To build Transit Planner use:
$ make compile
For performance measuring use the more optimised version:
$ make opt
Alternatively you can build, test and check style at once using:
Testing (depends on gtest)
To build and run the unit tests use:
$ make test
Checking Code Style
To test code style conformance with the Google C++ Style Guide use:
$ make checkstyle
To start the Transit Planner server use:
$ ./build/ServerMain [-i <datasets>] [-m <num-workers>] [-p <port>]
<dataset> are the GTFS directories of the transit networks,
<num-workers> are the maximum number of threads to be used and
<port> is the port to be used for listening.
To show the full usage help use:
$ ./build/ServerMain -h