Readit News logoReadit News
brian_cloutier · 6 years ago
I enjoyed the callout to this when I was reading Google's Percolator paper a few years ago:

> The random-scanning approach requires one additional tweak: when it was first deployed we noticed that scanning threads would tend to clump together in a few regions of the table, effectively reducing the parallelism of the scan. This phenomenon is commonly seen in public transportation systems where it is known as “platooning” or “bus clumping” and occurs when a bus is slowed down (perhaps by traffic or slow loading). Since the number of passengers at each stop grows with time, loading delays become even worse, further slowing the bus. Simultaneously, any bus behind the slow bus speeds up as it needs to load fewer passengers at each stop. The result is a clump of buses arriving simultaneously at a stop [19]. Our scanning threads behaved analogously: a thread that was running observers slowed down while threads “behind” it quickly skipped past the now-clean rows to clump with the lead thread and failed to pass the lead thread because the clump of threads overloaded tablet servers. To solve this problem, we modified our system in a way that public transportation systems cannot: when a scanning thread discovers that it is scanning the same row as another thread, it chooses a new random location in the table to scan. To further the transportation analogy, the buses (scanner threads) in our city avoid clumping by teleporting themselves to a random stop (location in the table) if they get too close to the bus in front of them.

From here: https://ai.google/research/pubs/pub36726

zhte415 · 6 years ago
> To further the transportation analogy, the buses (scanner threads) in our city avoid clumping by teleporting themselves to a random stop (location in the table) if they get too close to the bus in front of them.

Subway trains do this "to regulate service" iirc is the term used on the London Underground.

Takt time[1]and Drum Buffer Rope[2]both related concepts of regulating flow through a process/system.

[1] https://en.m.wikipedia.org/wiki/Takt_time

[2] https://en.m.wikipedia.org/wiki/Theory_of_constraints

etaerc · 6 years ago
I don't really understand why they don't "teleport". There are additional ways to get to a point ahead of a slowed down train with a replacement train, right? When you see one is dragged down too much and starts clogging, introduce a new train in front that jumps in at an expected schedule, then slowly empty the old train and take it out of the loop when its empty.

I haven't seen that but I'm not sure why its not done. I don#t think it will be more expensive in the long run than increasing slack. And the service experience and maintenance level is increased drastically.

icebraining · 6 years ago
London subway trains teleport themselves?

Deleted Comment

Tarean · 6 years ago
This also happened with routing messages - they are periodic and start at random offsets but they bunch up without added randomness https://ee.lbl.gov/papers/sync_94.pdf
dominotw · 6 years ago
This is possible with public transportation too. Trains run express and skip stops all the time.

I think that would be too much hassle with buses but it's possible.

jpatokal · 6 years ago
I have seen full or near-full buses skip scheduled stops to alleviate this. Although from a waiting passenger's POV, having an already delayed bus that has space left zoom past you without stopping is pretty infuriating...!
thatoneuser · 6 years ago
It probably be not too much of you had two way communication with the bus. One can leapfrog the one in front, alleviate the front bus, and everyone's faster. However it probably has limits ie when a passenger on the passing bus wants to stop at the same place as the slow bus next stop.
phinnaeus · 6 years ago
TL;DR - Teleportation will solve public transit problems.
Aeolun · 6 years ago
Except for all those poor people that are still in the bus when it teleports :P
m463 · 6 years ago
if teleportation is impractical you could just use a faster bus, like USB 3.0 or more lanes like PCIe
adrianmonk · 6 years ago
Would it help to have the trailing bus pass the leading bus when they bunch up?

My reasoning:

(1) As the article said, full buses move slower because more passengers means more boarding/unboarding time at stops.

(2) The lead bus is the fuller, slower one. Slower bus in front means buses get closer together.

(3) If one bus passes the other, then you have the faster bus in front and the slower one behind. They should then get further apart.

At least they should for a time. The now-leading bus is going to scoop up a lot of passengers at the next several stops and the now-trailing bus won't, so the leading bus will eventually slow down. So it's not perfectly self-balancing or anything, but maybe it would get some distance between them. More distance than not doing it.

grawprog · 6 years ago
When busses get bunched here, the lead bus just tends to skip stops and leave them for the trailing bus. This doesn't really seem to help much. They usually both stay pretty close together and, as a passenger, you end up standing there confused as to whether the bus just left you or not if you can't see the one behind.
bbarn · 6 years ago
The lead bus is much less equipped to skip a stop if it has more passengers, because there's a greater chance of a passenger needing to stop to disembark. In Chicago, you will see a trailing bus skip but it can do so because the driver hasn't gotten and cord-pulls to signal someone getting off.

Deleted Comment

victor9000 · 6 years ago
A few more points regarding (1). The longer a bus takes to arrive, the more people will accumulate at the next stop, thus compounding the problem. Also, all people don't board the bus at the same speed. The more people that accumulate, the higher likelihood you have of getting an outlier when it comes to boarding time (wheelchair, elderly, bikes, etc). So the later a bus runs, the later it's likely to be.
kuldeep_kap · 6 years ago
You are forgetting people who would want to get off that stop, so this is may not be an option.
joncrane · 6 years ago
The lead bus can slow down between stops and let the empty bus overtake. Essentially "stop" several bus-lengths before the next stop and let the empty bus overtake and pull into the stop ahead of it.

The full bus pulls in directly behind the lead bus and lets passengers out.

userbinator · 6 years ago
The bus in front will have more people, and more likely to stop to let people off (and on).

Meanwhile, the one following behind will be emptier, and thus less likely to need to stop, meaning it can easily pass the one in front (while that one is at a stop for entering/exiting passengers) and then itself take on more passengers at the stops ahead --- which then gradually slows it down too, but at the same time the one behind will be mostly emptying.

I'd say it is reasonably self-balancing.

dominotw · 6 years ago
That bus stop but in front of the slow bus.
cimmanom · 6 years ago
They do that in NY. It typically equalizes and returns to bunching within a few stops, especially on busy routes.
johannes1234321 · 6 years ago
What I see sometimes is that the delayed, leading terminates early and turns around. The later bus then picks up the passengers. Slightly uncomfortable for those passengers, but brings the bus back into schedule (including the driver who has limited working time and a replacement driver expecting the bus somewhere)
seaish · 6 years ago
This would help with not wasting the trailing bus's extra speed, but I think the buses being that close together is already considered failure. And in the real world, there would be many more stops on a circuit. Any advantage the faster bus has will be reset in 1 or 2 stops, and on a route with 10-20 stops, the extra space between them is negligible.
umvi · 6 years ago
You could probably have a computer calculate which stop the trailing bus should jump ahead to.

Then you have the trailing bus switch to "out of service" mode (so it doesn't enrage people when it passes a bunch of stops) and skip ahead 4 or 5 stops or whatever the computer decides is optimal.

eMSF · 6 years ago
Both buses probably need to drop off passengers, though (who would likely be a lot more enraged than people who don't get picked up by the first bus if they didn't get out where they wanted).

Anyway, I think the leading bus skips stops when possible, at least here. I don't think people mind that too much, because for all they know, the bus might simply be too full, although that certainly only happens on exceptional circumstances if ever around here.

djmips · 6 years ago
It would be horrible if the slow bus behind was actually too full to pick up people so you have an empty bus passing stops that the trailing bus will also skip!
foota · 6 years ago
This may not work as well as you'd like if passengers need to get off frequently.
goodcanadian · 6 years ago
They will sometimes do that in Vancouver (or at least they did when I lived there). The lead bus will skip stops if it's able (no one getting off) leaving the passengers for the following bus, but if it has to stop, the trailing bus will just go ahead if it has no one getting off at that stop.

EDIT: it doesn't really help with the bunching, but it does help load balance between the two buses. I've been on rides where two buses passed each other several times.

throw0101a · 6 years ago
The bus driver of the 'skipping bus' also has to be reasonably confident that the next bus will show up shortly. Otherwise, as a passenger, it's very frustrating to see one zoom by: but if you can see another one down the road, then you won't be freak out.
thtthings · 6 years ago
They all don't go to the same destination. They have an overlap of route but all of them go to different destinations. So you cannot just skip a bus stop. You are very rarely if ever going to see the same numbered buses bunched together
tomjakubowski · 6 years ago
Don't overgeneralize. The featured article (simulation, really) is about bunching of buses on the same route, a phenomenon that I, a daily bus commuter in Los Angeles, USA, routinely witness.

Stops on the routes I take are also generally skipped unless someone is waiting at them or a passenger has pulled the cord/pressed the button to request a stop.

Deleted Comment

komali2 · 6 years ago
My first thought is that this would break a shitload of software around bus time indicators - i.e. on bus stops and presumably whatever API the website talks to. I believe the buses function like trains in that sense - they're numbered not just by route, but by actual bus.

Would be nice though.

NikkiA · 6 years ago
The 'next bus' signs around here are all based on realtime GPS-tracking from the buses ('free wifi' is often piggy backed on the data connection the bus thus has to maintain.

I've seen buses run so late that they bunch-up and even to the point where they asked us to switch to the front bus so the rear bus could be taken out of service, once, and never seen the displays at the stops get too confused.

Taniwha · 6 years ago
Of course trolley buses (or streetcars/trams) can't do this
NikkiA · 6 years ago
Trolley buses usually can to an extent - the trolley arm can usually handle the 3m swing or so it takes to pass another bus.
icebraining · 6 years ago
New trolley buses often have batteries, so they can run unplugged for some distance.
fwip · 6 years ago
They do that here in Seattle sometimes.
caymanjim · 6 years ago
This is very common in Manhattan. Whenever I saw a full bus, I'd skip it and wait for the next one, because it was almost certainly going to come along within 5 minutes and be pleasantly uncrowded. On a busy route, it's the sensible choice.

On longer-distance commuter routes, where the scheduled times are 30-60 minutes apart, I wouldn't usually take a chance on waiting for the next one, but I even did that on occasion when a bus was particularly-overcrowded.

tim333 · 6 years ago
It's mostly been fixed in London. They used to be famous for no busses for 20 mins then 3 at once but they are now controlled by a central computer system which knows all the positions via gps and cell data.
fredley · 6 years ago
Sometimes you'll be on a bus and you'll get a message that it has to wait for a short time at a stop (no more than 2 minutes usually), to even out the service. This is when it's getting too close to the bus in front, so it backs off to retain an even distribution of busses.
o_nate · 6 years ago
It probably also helps that they allow people to load at both the front and back of the bus, and they check tickets while the bus is in motion. Buses in the US generally have people load one at a time through the front door and everyone's ticket has to be checked or (even worse) they have to feed dollar bills through the machine. This greatly increases per-person load times, and exacerbates the bunching effect.
inferiorhuman · 6 years ago
That's fascinating. Are there any writeups on it?
nicoburns · 6 years ago
It still happens on the tube (one very full train, followed by a couple of emptier ones). Of course it makes a lot less difference when the trains are every minute...
djsumdog · 6 years ago
If you're at a bad rail stop (like the first one outside of the central part of a city going outbound at rush hour) it's not uncommon to have to wait two or three trains just to be able to board. In a city like Singapore or London it might not be too long since many of their trains are automated (in Singapore they're all automated/driverless) and the busy lines are allocated enough cars to arrive 1 minute apart or less apart.

Even in cities like Chicago where they arrive 3~5 minutes apart at rush hour, you might still be waiting 30 minutes .. like I was yesterday. ... I really prefer finding crap to do in the city or people to hang out with so I can wait out the rush.

jpatokal · 6 years ago
I'm not aware of any metro system in the world that has scheduled headways of under a minute. The Moscow Metro was tops for a long time with 95-second headways on some lines at peak (without full automation, mind you), but Paris Metro Line 1 was recently fully automated and can go as low as 85 seconds. Singapore currently has 120 second headways on its busiest line (East/West, which is not automated) and is working on getting that down to 100: https://medium.com/from-the-red-line/36-just-a-number-21011a...

Note that headway is measured between the arrival of trains, meaning the train has to come to a complete stop, let people get on & off, close doors, speed off and have another train stopped all within that period! So a 90-sec headway will feel like less than a minute to users.

aarongolliver · 6 years ago
Same happens in Seattle (and we have some nice services that show you the GPS locations of all the busses on the route, so you can be pretty sure an empty one is right on its way)
gordo4 · 6 years ago
That app was built by a UW student and uses estimated data based on the schedule, as far as I know. It's not accurate... unless things have changed in the last year or so since I moved.
the_fonz · 6 years ago
There's something to be said for explicitly commuting the least distance (constrained by affordability) and not when everyone else is:

1. less time wasted -> a. more time to be productive in primary pursuits, b. more leisure time and c. if during business hours, more productivity accomplishing errands

2. less stress

bobthepanda · 6 years ago
It is also worth noting that in real life passengers are not uniformly distributed through time. When school lets out, or a train arrives at the station full of transfer passengers, etc. you can get a huge burst of traffic at one stop that screws up everything.

This can have knockback effects, because if buses show up late to their terminal they have now also started their return trip late.

EDIT: edited a word

kilbuz · 6 years ago
Not to be a pedant (too late), but you probably meant 'uniformly distributed' in this case.
vecter · 6 years ago
Not pedantic at all, this is a very crucial distinction.
bobthepanda · 6 years ago
That is indeed what I meant. Thanks for the correction.
tibbon · 6 years ago
This happens all of the time in Boston, especially with the bigger bus lines. No number 1 bus for 30 minutes, then 3 or 4 of them. Regardless of the cause, it's very frustrating as a passenger from a UX standpoint.
screye · 6 years ago
The dreaded 66 lining up one after an other
Topgamer7 · 6 years ago
It's effectively a greedy algorithm where the first occurrence takes the most time, and there are no passengers left for the second bus, so it's load time is lower, and it will catch up. It's a pretty visualization though :)
telesilla · 6 years ago
Thanks for letting me relive nightmare memories of Grand Ave in Chicago! I always wondered, why couldn't the bus drivers be in communication and have the front bus just skip a couple of stops (where people are waiting) when they bunched, which was often even 3 buses!
dmoy · 6 years ago
If nobody signals to get off, buses sometimes will skip if they're bunched. I've seen it in at least three cities before. I have no idea if it's policy or if the drivers on those routes juts took matters into their own hands.

I see bunched buses on the stop right outside my work basically every day. Sometimes four from one route and another three from another parallel route all within a ~5 minute span.

Mercer in Seattle is... not great for traffic.

xyzzyz · 6 years ago
Mercer traffic is pretty good outside of the times of day when it’s closed and used for parking.
unixhero · 6 years ago
Not stopping when nobody signals is the point of the signal right:).
ii0v0ii · 6 years ago
Buses have to let people off, as well as on, no?
kazinator · 6 years ago
Buses don't stop at unoccupied bus-stops, unless someone dings the bell.

The faster bus skipping stops where people are waiting, so they can be picked up by the next bus does work; I've seen it in action.

munk-a · 6 years ago
Interesting, that simulator shows buses that are often full.

I think that's a rather rare case and know of a pretty graspable reason why lower fill buses clump up quite a bit. Assume that a stop produces a customer every minute or so, if a bus is five minutes late to the stop (lets say due to traffic) it will take a bit longer to load customers than normal adding slight amounts to its delay over time - concurrently, the bus behind it will always miss out on the customer potential that the first bus is carrying (so five people on that first stop), this will lower its loading time and cause it to gain time and run ahead of schedule - further lowering the loading time.

What can happen with longer commuterish buses is that the first bus can try and counter this effect by either pulling ahead/behind a stop and unloading passengers only, or by skipping stops if no one wishes to disembark, this shifts the load over to the later bus and can equalize the system - but this sort of thing happens all the time.

Additionally, even without that issue, buses are variable, they usually run in the same lanes as traffic and can be delayed for other reasons, high frequency (2,3,4,5 minute lines) will often have a speed deviation that exceeds the frequency, leading to the common effect of waiting six minutes for a 3 minute frequency bus.

zifnab06 · 6 years ago
In Seattle, where we mostly lack any sort of useable rail, it's entirely normal to have full busses, especially at rush hour. Bunching does happen and I love it because it makes my commute home quiet.
munk-a · 6 years ago
Yea uh... can you guys fix that? Metro is a godsend and Seattle suffers greatly from the lack of it - it's super annoying to try and bus to interesting parts of the city because the traffic in those areas tends to be terrible.

(I'm in vancouver now but for a while I was regularly flying in from the US and I'd usually fly to seattle and then catch the train/amtrack bus up the last leg due to the stupidly large price difference)