Table of Contents
Fetching ...

FLASH-TB: Integrating Arc-Flags and Trip-Based Public Transit Routing

Ernestine Großmann, Jonas Sauer, Christian Schulz, Patrick Steil, Sascha Witt

TL;DR

FLASH-TB is a journey-planning algorithm for public transit networks that combines trip-based public transit routing (TB) with the arc-flags speedup technique, and is significantly more space efficient than existing techniques with a comparable preprocessing time.

Abstract

We present FLASH-TB, a journey planning algorithm for public transit networks that combines Trip-Based Public Transit Routing (TB) with the Arc-Flags speedup technique. The basic idea is simple: The network is partitioned into a configurable number of cells. For each cell and each possible transfer between two vehicles, the algorithm precomputes a flag that indicates whether the transfer is required to reach the cell. During a query, only flagged transfers are explored. Our algorithm improves upon previous attempts to apply Arc-Flags to public transit networks, which saw limited success due to conflicting rules for pruning the search space. We show that these rules can be reconciled while still producing correct results. Because the number of cells is configurable, FLASH-TB offers a tradeoff between query time and memory consumption. It is significantly more space-efficient than existing techniques with a comparable preprocessing time, which store generalized shortest-path trees: to match their query performance, it requires up to two orders of magnitude less memory. The fastest configuration of FLASH-TB achieves a speedup of more than two orders of magnitude over TB, offering sub-millisecond query times even on large countrywide networks.

FLASH-TB: Integrating Arc-Flags and Trip-Based Public Transit Routing

TL;DR

FLASH-TB is a journey-planning algorithm for public transit networks that combines trip-based public transit routing (TB) with the arc-flags speedup technique, and is significantly more space efficient than existing techniques with a comparable preprocessing time.

Abstract

We present FLASH-TB, a journey planning algorithm for public transit networks that combines Trip-Based Public Transit Routing (TB) with the Arc-Flags speedup technique. The basic idea is simple: The network is partitioned into a configurable number of cells. For each cell and each possible transfer between two vehicles, the algorithm precomputes a flag that indicates whether the transfer is required to reach the cell. During a query, only flagged transfers are explored. Our algorithm improves upon previous attempts to apply Arc-Flags to public transit networks, which saw limited success due to conflicting rules for pruning the search space. We show that these rules can be reconciled while still producing correct results. Because the number of cells is configurable, FLASH-TB offers a tradeoff between query time and memory consumption. It is significantly more space-efficient than existing techniques with a comparable preprocessing time, which store generalized shortest-path trees: to match their query performance, it requires up to two orders of magnitude less memory. The fastest configuration of FLASH-TB achieves a speedup of more than two orders of magnitude over TB, offering sub-millisecond query times even on large countrywide networks.
Paper Structure (17 sections, 1 theorem, 3 equations, 4 figures, 2 algorithms)

This paper contains 17 sections, 1 theorem, 3 equations, 4 figures, 2 algorithms.

Key Result

Lemma 1

Let $\mathfrak{T}$ be a transfer set and $J=\left< f_0, T_1[i_1,j_1], \dots, T_k[i_k,j_k], f_{k+1} \right> \in \mathcal{J}(Q,\mathfrak{T})$ an exit-optimal journey for a query $Q=(p_s,p_t,\uptau\xspace_\mathrm{dep})$. Consider a one-to-all TB search for $Q$ using $\mathfrak{T}$ as the transfer set.

Figures (4)

  • Figure 1: An example network in which local pruning conflicts with the latest-exit rule. Gray boxes represent stops. Nodes within the boxes represent stop events and are labeled with their indices along the respective trip. Colored edges represent trips, which are labeled with the departure and arrival times of the respective stop events. Gray edges represent footpaths (between stops) and transfers (between stop events). In this example, it is faster to exit ${T_a}$ at ${T_a[1]}$ and take the footpath to ${p(T_a[2])}$ than to stay seated until ${T_a[2]}$. Therefore, local pruning prevents the one-to-all TB query from scanning the transfer ${(T_a[2],T_b[0])}$. However, the latest-exit rule discards the transfer ${(T_a[1],T_b[0])}$.
  • Figure 2: An example network showing the conflict between line pruning and self-pruning. The trips ${T_a}$ and ${T_b}$ belong to the same line. For a query from ${p_s}$ to ${p_t}$ with departure time ${0}$, a query algorithm with line pruning finds the journey ${\left<T_b[0,1], T_d[0,1]\right>}$. The later trip ${T_a}$ is not entered. A Profile-TB query, however, only finds the journey ${\left<T_a[0,1], T_c[0,1]\right>}$ due to self-pruning.
  • Figure : TB trip scanning operation (for target stop $p_t$).
  • Figure : TB enqueuing operation.

Theorems & Definitions (1)

  • Lemma 1