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 …
- Bus arrives at a stop, delay is recorded
- ETA = scheduled arrival time + delay
- 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
- Develop improved model to estimate vehicle speeds
- Update network state as buses travel along roads
- 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
- Imaginary fleet, clustered around real bus
- Let them travel independently until new observation recieved
- "Bootstrap resample" based on proximity to real bus
- Travel …
- Resample …
- Travel …
- Resample …
- Travel …
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
- Model all buses in real time
- 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)