Skip to main content

All I Want For Christmas is a Super-Intelligent Public Transit System - Part 1

I was having a friendly debate with another commenter over at Chicagoist, in an article lamenting the latest round of RTA cuts. Upon floating some rough ideas for how Chicago's transit system (or, indeed, any city's transit system) could be made to operate more dynamically, I was rebuked by a solid wall of skepticism.

I think my biggest problem--and my problem with most technology--is that I simply don't see the benefit outweighing the expense of implementation coupled with ongoing maintenance. I honestly believe that a simple, fixed route bus system runs about as efficiently as it is possible for a bus system to run.

Could it be? That nearly the simplest possible approach to a bus system one can imagine happens to be the most efficient? I find that to be highly unlikely. Many problem domains don't favor simple approaches. Said another way: the universe is complex; deal with it. Take one example from the field of computer science: sorting numbers. Specifically, how can we efficiently store a collection of numbers that will allow us to quickly search the collection to see if a certain number is already there? One very simple approach is to store the numbers in a sequence, then put that sequence in order using bubble sort, then perform a binary search on the now-sorted collection.

The approach to sorting described above works fine when you're only sorting and searching through a few different numbers. But once you start dealing with thousands, millions, or billions of them, the performance breaks down badly. A more complicated approach to sorting involves using a specialized construct known as a red-black tree. A red-black tree is much, much more difficult to create and work with than the simple approach (believe me, I had to suffer through it in college). But it's also much faster, and handles searching through even very large collections of numbers with acceptable performance.

In many ways, the number sorting example is analogous to comparing a fixed route bus system against the one I will present in this post. Just as with the simple number sorting example, the simple bus system (fixed-route) works OK when the system is small. Suppose that the entire city of Chicago consisted of two high rise condo buildings, one grocery store, and two large office buildings. Every person lives in one of the high rises, works from 9:00AM-5:00PM in one of the offices, and goes grocery shopping every day from 6:00PM-6:30PM. This kind of city is the perfect candidate for a dumb fixed route system! You can set up bus routes that go back and forth between each high rise, and the grocery store and offices. Even if you create "express" routes between each of these buildings (a pretty sweet deal for everyone), that's only ten total routes. You can probably even eliminate some of these if, for example, two of the buildings are close together, or a building is in between two other buildings (the bus can just stop at the building in the middle), etc. And, because everyone is on the same schedule, you only need to run each of the routes at one point during the day (for example, the "high rise to office" routes only need to run a little bit before 9:00AM every day). Cheap, effective, and simple.

But what happens when the people in the high rises start to work different hours from each other? Or start wanting to go grocery shopping early in the morning, before work? Or (gasp), the city starts to grow and a developer builds a whole bunch of townhouses that are scattered around all the existing buildings? In other words, what if our simplistic, imaginary Chicago started to look more like the real thing? You either need to start adding more routes (more buses, drivers, and money), or having existing routes make additional stops (slower commute times, lower frequency of trips), or both.

Fortunately for us, in the real Chicago, the streets are laid out in a nice gridlike fashion with perpendicular "major" streets roughly a half mile apart in all directions. This general layout admittedly lends itself pretty well to a fixed-route system, at least as well as any particular layout could. But regardless of the street layout, and ignoring the fact that many people still need to make trips that don't align to these routes very well, the fixed-route system still breaks down in the face of dynamic human behavior. That's just the price we pay for being free-willed, living beings instead of cold, calculating robots. Just to give a non-comprehensive sample of some pesky human-caused problems that spring to mind...

  • Many people don't follow the same schedule every day. They might go into work early, leave late, or attend to errands/appointments in a completely different location before heading to work.

  • Certain neighborhoods start to become "hot" and lots of people suddenly want to live, dine, or get drunk there. It takes months or years for this sort of information to filter through the bureaucracy before changes to routes are implemented to meet the changed transit need - if ever. By the time the schedules/routes do change, the hot place might have moved somewhere else (coincidentally, I always keep up with these things; I rode my vintage bike to the hot spots way back before anyone else even knew about them).

  • Some people work in different locations some or all days, possibly at different hours. People are moving in to, and out of, the city every day, for a myriad of reasons (excitement over taking advantage of a large urban transit system, followed by the inevitable letdown upon seeing that system in action, being chief among them, I'm sure).

  • People might choose different modes of transit to get to their final destination depending on the season, time of day, their mood, and the alignment of the stars. They might bike in the summer, and in the winter take a bus during rush hour, or drive if it's a weird (i.e. non-rush hour) time.

  • One fine day, a whole bunch of people from all over might be interested in attending the same air show/Hungarian festival/llama parade.

Even if the CTA waved a magical wand (in a union-approved fashion, obviously), read every single rider's mind one evening, figured out their itineraries for the next day, and completely re-organized all their fixed routes to optimally[1] accommodate the day's transit needs given their stock of buses and drivers, it still wouldn't be that useful. The next day, everything would change again!

at this time, please open your favorite media player and start some overly dramatic/cheesy music What are we to do? Is there no hope? Are we stuck with this naive, frustrating, and inefficient way of using our buses? In a word: no! Stay tuned for our next installment; if you want to work ahead, I'd suggest watching some X-Files reruns.

[1] "Optimally" is surprisingly difficult to define in cases like these, and often boils down to what exactly you want to optimize. You can't have it all. For example, you can either minimize the average length of every rider's trip, or minimize the amount of time every rider has to wait before the bus arrives, but not both. For more details than you could ever want to know, as usual, see Wikipedia.


Jenkins said…
Are you suggesting we all use taxi cabs to get everywhere? Because THAT'S as "super-intelligent" as I can think of, but it doesn't seem very environmentally friendly or efficient.

PS - just because the CTA operates with no "delays" doesn't mean the buses & trains aren't overcrowded.

PPS - did you know that once upon a time the el trains used to have more complex stopping patterns, where they wouldn't stop at every station along the route? It was the equivalent of the Metra "express" routes - at some of the older stations, like the Logan Square station I think, you can see "A" and "B" labels that represent which of the two train routes would stop at that station!
Jeff said…
No, it's subtly different from cabs, as you'll see in the next post where I actually lay the groundwork. The crucial difference is that with taxis, the riders have to have a pre-established relationship with each other before they can share a ride. With the system I'll propose, that is not necessary. In fact, the riders do not need to know about anyone else to be able to take advantage of more efficient routes.

The burden of finding other people to share the ride should be shifted from the riders themselves to a central computer, when the necessary data is available.

Popular posts from this blog

The Limits of Determinism

There is something a little bit magic about writing code. You start with nothing*, and after hacking around for a while, you end up with a set of executable instructions that can make a computer do something useful or interesting. This is even more true in recent years than when I started, with the explosion of cloud based services that give individual developers (or small teams) the ability to distribute applications globally, with few obstacles, and at a downright reasonable price. I don't think there are too many fields where an individual can produce something valuable without needing approval, lots of money or supplies, or even to leave the house.

Another aspect to programming that I've grown to appreciate over the course of my career is the deterministic nature of software. Barring some circumstances so rare as to be hardly worth mentioning, a piece of software will perform exactly as its told, repeatedly and without error. Granted, programs rarely do exactly what p…

How I fixed my back pain the hard way: introduction

It was a typical afternoon in early spring, and in a room in a nondescript suburban office building, I was lying motionless on a table, with my right side up. My head rested on a small, firm, black cushion. Suspended about a foot above my head was a large mechanical instrument. A thin metal rod protruded from it, and the end of the rod was nestled between my earlobe and the skin of my neck. To anyone else, it would have looked like something out of a sci-fi movie.

I closed my eyes as the anticipation built. This was not the first time I had been on this table, under this device, and it wouldn't be the last. I took a deep breath and exhaled. A few seconds later, I heard the unmistakable metallic thunk. Along with the sound came the lightest touch I could imagine noticing on my skin. My doctor helped me sit up, then lie down again, on my back this time. Within seconds, I noticed the warmth in my forehead, like someone started shining a bright light across my eyebrows. Thi…

Timeline of a Baltimore Snowstorm

Friday, 2:50PM: In spite of its name, publishes a story about an upcoming blizzard, which would hit the mid-Atlantic region sometime early next week. The writer draws parallels to the historic Ash Wednesday Storm of 1962, which killed 400 and caused $200 million in non-inflation-adjusted damage. At Constellation Energy headquarters, BGE executives leave work early to avoid the preemptive angry calls that start flooding in.

Friday, 3:17PM: The last roll of toilet paper on store shelves within a 35 mile radius of Baltimore is purchased from Giant in Towson.

Saturday: Some anonymous jerk on the internet (probably from D.C.) coins the term "Snowquester." National media sources seize upon this and a Twitter frenzy ensues, to the chagrin of everyone. In response, local redditors suggest the term "Bohquester" as an alternative even though that term has absolutely nothing to do with weather.

Sunday: Local evening news leads with reporters checking in f…