Predicting bus arrival times using estimated road network state

Tom Elliott

Part 1: Motivation

What's wrong with the current system?

Currently, it works like this …

  1. Bus arrives at a stop, delay is recorded
  2. ETA = scheduled arrival time + delay
  3. Repeat for all stops until it reaches yours …
stop3 stop4

ETAs for a person waiting at the 7:40 stop:

  • Initial expected waiting time: 10 minutes
  • Actual waiting time: 16 minutes

Part 2: Proposed solution

  1. Develop improved model to estimate vehicle speeds
  2. Update network state as buses travel along roads
  3. Use network state to estimate arrival times

1. Bus model: particle filter

  • Flexibility: easily handles asymmetry, multimodality
  • Intuitive likelihood (distance between two points)
  • Transition function can be as complicated as necessary

1. Bus model: particle filter

1. Bus model: particle filter

All we need to do is …

  • Model all buses in Auckland (1000+ at peak hour)
  • In real-time, target is 30 seconds or faster

  • Goodbye R, hello C++

2. Network Model

  • Road segment = stretch of road between two intersections
  • Independent of route
  • State = [travel time, variance]
  • Data = estimated travel time of buses along segment

2. Network Model

  1. Model all buses in real time
  2. Update network state as buses traverse segments

3: Arrival time prediction

  • Sum travel time of road segments along the route
  • For each particle to obtain a distribution
  • Include additional uncertainty for traffic lights, intermediate stops
  • Prediction intervals to account for uncertainty
    (e.g., 10-16 minutes)

Thank you!