I started this blog with the intention of writing about my research. I am a firm advocate of translating complex theories into digestible ideas, and getting people thinking about topics without overwhelming them with information. Since starting this blog I’ve had some time to ruminate on my research, and I’ve gotten some feedback on what people enjoy reading about. Because of this I’ve decided to start a series of posts that are more directly related to my research, which I am calling The Unpredictable Bus. In this series I am going to do my best to address a universal complaint about transit that is directly related to my research: My bus is never on time!
In this first post, I am going to try and convince you that while on the surface this complaint seems simple enough, addressing it is a devilishly tricky problem. After we understand what the problem actually is, we can start looking at ways to fix it. Those will come in subsequent posts.
Before we get into too much detail, it’s important that we are all on the same page regarding a few things. First, what does an on time bus look like? Generally, a bus can be considered on time if it arrives at a stop when promised. If I tell you that buses come at 10:30 and 11:00, and a bus shows up at 10:45, the bus is not on time. If I tell you a bus comes every 10 minutes and you’ve been waiting at a stop for 15 minutes, the bus is not on time. The first example is a late bus in the context of scheduled service, and the second to headway service. For the rest of this series, we are going to consider only scheduled service, although many of the ideas can be applied to both.
Second, we’re going to go ahead and assume that buses really are off-schedule most of the time. This may not always be true for every transit agency, and a lot of it depends on how you count on-time buses. For example, Calgary Transit currently boasts an 89% reliability rate. This number is only for time points, which are about 10% of the stops on a given route. Furthermore, drivers know that they are expected to stay on schedule for those points, and often deviate a lot for the stops in between. They also use +/- 5 minutes as their “on time” metric, which is a fairly large spread. The point being: for the purposes of this discussion we are going to assume that this really is a problem that is worth addressing.
First Day on The Job
Let’s suppose we have been put in charge of creating a schedule for a bus route. Someone has already done the work of choosing where the stops should be, so we don’t need to worry about that part (as it doesn’t really relate to being on time). Let’s also suppose that we aren’t interested in how often we need to send buses, since that problem is more related to how many people will use the service, or how much service we want to provide. We are essentially handed a map of the route, with all the stops, and we are told that (for example) we need to make sure buses run about 10 minutes apart. Our task, then, is to create and publish a schedule that predicts when every bus will arrive (and depart) at every stop for the entire day.
This, in essence, is the scheduling problem.
Let’s stop for a moment and think about the key word in the problem (and by no coincidence in the title of this series of posts): predict. There are probably plenty of times that you have predicted your movement in traffic from one point to another. Chances are high you’ve had to rely on your prediction (or more recently, Google’s prediction) to get you somewhere on time. Chances are also high that you’ve been fairly successful, arriving within a few minutes of when you predicted, with all the chaos of traffic lights, congestion, and weather. So why can’t buses do the same thing?
With a bus route, prediction becomes more difficult for a number of reasons. First, a bus is out on the road longer than the average car, driving the whole day and traversing the city multiple times. That tolerably small error in your prediction just got a whole lot more difficult to meet with a bus. On top of that, buses face another obstacle: they have to stop and pick up people all the time. It turns out that this effect, more than the first, causes many problems including the frustrating situation of two buses pairing up while they move along.
The upshot is this: travel of buses is random. Uncertain. Unpredictable. This may be self-evident, but stating it here makes the scheduling problem clear: we need to provide a fixed promise for something that changes randomly. We must predict the unpredictable.
Maybe you’re ready to cry uncle. “You’re asking the impossible!”, you might say, and in some way we are. Yet buses still tend to run surprisingly on time, in retrospect (then again, even a broken clock is right twice a day). Somehow, people have figured out how to get close, often by trial and error. If we can get this close, maybe we can get even closer.
And if I can, maybe it’s worth a PhD.
In the next post, I’ll break down the unpredictable parts bus travel, and look at the pieces individually, including what makes buses bunch. Then I’ll introduce some strategies for dealing with the randomness, so we can begin to achieve the impossible.