Time-Dependent Shortest Paths and the FIFO Property

Earliest-arrival shortest paths in time-dependent flight networks. Introduces departure-dependent edge travel-time functions, the FIFO (First-In, First-Out) property and its role in keeping Dijkstra/A* correct, and how to compute earliest-arrival paths when FIFO holds.

Step 1 of 157%

Tutorial

Time-Dependent Edge Costs

In live air routing, the time it takes to fly a leg depends on when you fly it: winds aloft shift, sector congestion fluctuates, and convective cells drift. To model this, each directed edge e=(u,v)e=(u,v) carries a travel-time function τe(t)\tau_e(t) rather than a fixed weight. If you depart uu at time tt, you arrive at vv at time

av  =  t+τe(t).a_v \;=\; t + \tau_e(t).

We discretize tt into 15-minute buckets, so τe\tau_e is a lookup table indexed by departure bucket bb, where bucket bb starts at clock time 15b15b minutes past the reference.

Example: edge KSFOKDEN\mathrm{KSFO}\to\mathrm{KDEN}, travel times in minutes:

b0123window start12:0012:1512:3012:45τe(b)145150140135\begin{array}{c|cccc} b & 0 & 1 & 2 & 3 \\ \hline \text{window start} & 12{:}00 & 12{:}15 & 12{:}30 & 12{:}45 \\ \tau_e(b) & 145 & 150 & 140 & 135 \end{array}

Departing at the start of bucket 11 (12:15) gives arrival

12:15+150 min=14:45.12{:}15 + 150\text{ min} = 14{:}45.
navigate · Enter open · Esc close · ⌘K/Ctrl K toggle