Bus public transport algorithm

前端 未结 7 1783
耶瑟儿~
耶瑟儿~ 2021-01-30 11:38

I am working on an offline C# application that can find bus routes. I can extract the timetable/bus/route data. I am searching for the most simple solution that will work with

7条回答
  •  再見小時候
    2021-01-30 12:30

    There is an extensive list of publications (30+) on public transport routing algorithms that has been compiled over time by contributors to the open-source (Java) OpenTripPlanner project here:

    https://github.com/opentripplanner/OpenTripPlanner/wiki/RoutingBibliography

    OpenTripPlanner is multi-modal routing engine that also includes bike and walk - from the above link:

    This is a list of articles, dissertations, and books that have inspired and informed both the existing OTP routing engine and some ongoing experiments. Currently, OpenTripPlanner uses a single time-dependent (as opposed to time-expanded) graph that contains both street and transit networks. Walk-only and bicycle-only trips are generally planned using the A* algorithm with a Euclidean heuristic or contraction hierarchies. Walk+Transit or Bike+Transit trips are planned using a variant of the MOA* algorithm with epsilon-dominance for path pruning and the Tung-Chew heuristic (a graph providing a lower bound on aggregate weight) for queue ordering.

    The routing bibliography above includes references for the following categories of algorithms and related work:

    • Path Search Speedup Techniques
    • Multi-objective Pareto Shortest Paths
    • Resource-constrained Routing
    • Contraction and Transfer Patterns
    • Timetable-based routing
    • ALT and Metric Embeddings
    • Calibration and Implementation Details
    • Post-Dijkstra Public Transit Routing

    If you find something new that's not on the list, please feel free to add it to the wiki!

    As far as other open-source public transport routing libraries - there is also the RRRR project by Bliksem Labs:

    https://github.com/bliksemlabs/rrrr

    From the above link:

    RRRR (usually pronounced R4) is a C-language implementation of the RAPTOR public transit routing algorithm. It is the core routing component of the Bliksem journey planner and passenger information system. The goal of this project is to generate sets of Pareto-optimal itineraries over large geographic areas (e.g. BeNeLux or all of Europe), improving on the resource consumption and complexity of existing more flexible alternatives. The system should eventually support real-time vehicle/trip updates reflected in trip plans and be capable of running directly on a mobile device with no Internet connection.

    Both OpenTripPlanner and RRRR use GTFS data.

提交回复
热议问题