
Ridesharing Algorithms in TransLoc OnDemand - fogleman
https://techlog.transloc.com/ridesharing-algorithms-in-transloc-ondemand-7acfeddbfe1f
======
JohnHammersley
This is a great article - it's a set of really clear explanations of several
complicated topics, and kudos to the author for bringing it all together so
well. It reminds me of the research we conducted at Ultra PRT when building
the Heathrow Pod (a driverless taxi system) [1] and evaluating much larger
networks on campuses and in cities.

One aspect I didn't see in the analysis is the effect of a passenger's
willingness to rideshare on the effectiveness of the algorithms - we found it
can have a pretty dramatic effect on system efficiency[2], especially when
operating near capacity (as you'd expect). Does anyone who's used this system
have any experience of this? What happens if passengers refuse to share or
request a different ride?

[1] [http://www.ultraglobalprt.com](http://www.ultraglobalprt.com)

[2]
[https://www.researchgate.net/publication/31589946_Ride_Shari...](https://www.researchgate.net/publication/31589946_Ride_Sharing_in_Personal_Rapid_Transit_Capacity_Planning)

~~~
fogleman
Unlike UberPool or Lyft Carpool, TransLoc OnDemand rides are serviced by
transit agencies, most of which use shuttles or even full-size buses. There's
no choice to share or not share a ride.

------
kelvin0
This is a truly well written and explained article. I love the fact that they
can help positively impact public transportation.

------
superuser2
Transloc's app is the most thoroughly unpleasant piece of software I've ever
had the displeasure of keeping on my iPhone for more than 5 minutes. Sadly,
when it was raining outside and the shuttles only came every half hour, I
didn't have much of a choice.

Arrival data was usually missing (despite shuttles in operation) and when
present, usually wrong. A given intersection would typically have 7 or 8
different _tiny_ touch targets on it representing the different lines and
systems that stop there, and you have to select the right one. No way to do
that except to iterate through them all. The maximum allowed zoom level was
not nearly enough to do this in a reasonable way on an iPhone 4S, certainly
not in the freezing rain.

The was a list of routes you could check and uncheck to add and remove them
from the map. This list was _enormous_ , and the 3 shuttle lines that 99% of
users cared about 95% of the time were buried deep within it. There was no
attempt to remove visual clutter if you had other lines enabled that were not
operating. Lines on the map were color-coded, but it was really not clear how
to match them to route names. There was also no way to do point-to-point
directions or even plot a pin on the map, so you had to zoom in on street
names and manually pan around to find your destination and see what the
appropriate line was, then take a guess at the directionality of the lines to
see where it made sense to get that shuttle. I would usually flip over to
Google Maps to plot a pin, then try to match it up visually when I switched
back to Transloc.

I could go on and on. Do not let these people convince you they are a hip
progressive tech company. They make an enterprisey piece of shit for captive
audiences and it wouldn't even be hard to do far, far better by taking even a
handful of cues from what Google Maps was doing with public transit directions
years prior.

------
ant6n
I wonder the author considered using Integer Linear Programming. For me it
tends to be a go-to way to solve problems like this, but often have issues
when the modelled problems become harder than I thought and processing times
will be .. months?

~~~
personalcompute
You end up with a very similar situation as you do without integer linear
programming - an enormous search space. In the papers I've read on VRP that
provide a linear programming formulation (2), they then fall back to
approximate methods for actually doing the work.

~~~
ant6n
ILP is not the same as brute forcing it, branch and bound and cut will quickly
weed out a lot of that search space. And a good solver should find approximate
solutions quickly.

The question is whether good solutions are found 1) as quickly as with the
simulated annealing approach 2) as good as that approach 3) whether the
formulation is maybe simpler.

------
blisse
Would love to hear more about your thought processes before you posted the
question on StackOverflow. Felt like the instant solution rushed the ending of
the article a bit, but otherwise really enjoyed it.

~~~
fogleman
I first implemented a recursive solution using memoization. But the linear
PAVA algorithm is faster. Not sure what else I was thinking about at the time,
this was 7 months ago.

------
zymhan
I saw you guys at Great Wide Open a couple of weeks ago!

------
acveilleux
Sounds like this could be a shoe-in to sell to traditional transit authorities
that operate an adapted transit network.

------
michaelmior
The title is a bit confusing for me. I think the original title is better:
"Ridesharing Algorithms in TransLoc OnDemand"

~~~
dang
Changed. Submitted title was "On-Demand Transit Algorithms".

~~~
michaelmior
My delayed thanks!

