Wie lost deze rekensom voor ons op?

Het is al weer twee jaar geleden dat we bij een seminar waren van een klant van ons. SeeTickets was de organisator en het ging over ticketverkopen door zwarthandelaren. De meningen waren sterk verdeeld en er werd driftig gediscussieerd. Zo zou zwarthandel de prijs opdrijven en uitnodigen tot het verkopen van valse kaartjes. De voorstanders gaven aan dat je door het spelen met de prijs het marktmechanisme beter laat werken. Dit geldt trouwens voor alle markten. Technisch is het dynamisch prijzen van tickets geen enkel probleem dus waarom niet?

Nou lees ik de afgelopen week in een artikel op Orreily.com hoe taxibedrijf Uber slimme rekenmodellen ontwikkelt om vraag en aanbod beter op elkaar af te stemmen. Dit doen ze door de ritprijzen dynamisch vast te stellen.

Uber streeft een aanrijtijd na van 3 tot 5 minuten. In grote steden redden ze dat doorgaans prima, er is voldoende vraag en aanbod. Lastiger wordt het in gebieden waar niet genoeg taxi’s beschikbaar zijn om aan de vraag te voldoen. Uber probeert in dit geval extra taxi’s aan te trekken door tijdelijk de ritprijs te verhogen. Dit doen ze net zo lang totdat de aanrijtijd weer tussen de 3 en 5 minuten ligt. Hiervoor hebben ze een rekenmodel bedacht dat ze momenteel testen. Dit is best lastig. Stel je voor dat het opeens enorm gaat regenen of dat een grote sportwedstrijd net is afgelopen. De vraag naar taxi’s stijgt en de prijs van een standaard rit loopt enorm op. Uber staat voor “On demand & cheap transportation” en van dat “cheap” blijft in dit geval maar weinig van over.

Toch vind ik het idee om de ritprijs te verhogen als het aanbod te laag is wel interessant en logisch. Als je veel wilt betalen dan krijg je ongeacht hoe druk het is dus altijd een taxi. Als je dit niet wilt betalen dan krijg je dus geen taxi en hoef je ook niet voor niets langs de weg te blijven staan. Ik vind het eigenlijk wel mooi.

Vraag blijft staan of taxichauffeurs mee willen doen. Er is namelijk gebleken dat er soms zoveel files staan dat de taxi’s het gebied niet in komen. Ook al verhoog je de ritprijs, veel taxichauffeurs pakken dan nog steeds liever twee goedkopere ritjes dan één dure. Daarnaast trekt het verhogen van de prijs extra taxi’s aan waardoor het in dat gebied nog drukker wordt. Voor het gedachte experiment parkeren we dit argument even. We nemen aan dat hogere ritprijzen meer taxi’s aantrekt en er meer dus aanbod is.

Stel je voor dat we nog iets slims doen. Er zijn wellicht mensen die willen carpoolen en hiervoor kunnen we een slimme App ontwikkelen. We koppelen steeds 4 mensen die dezelfde kant op willen. Vervolgens selecteren we een taxi ergens in het midden van die groep en we laten de 4 passagiers naar de taxi lopen. Dan delen ze die hogere prijs en hebben we 4 mensen vervoerd. Mooie oplossing voor het probleem toch?

Nou worden wij pas echt enthousiast. Met onze klanten denken wij continu mee hoe je kunt ondernemen met Custormer Insights en dan is dit een slim nieuw model. Verhoog de prijs en trek meer taxi’s aan. Organiseer de passagiers slimmer en breng ze bij elkaar. Vroeger was dit onmogelijk geweest en nu bouwen we gewoon een slimme App….. Geniaal toch? Je voelt de “maar” aankomen.

Tja en dan moeten we concluderen dat het voorlopig echt niet gaat werken. Wij roepen altijd dat techniek geen bottleneck meer is maar helaas gaat die vlieger in dit geval niet op. Het model lijkt simpel maar is mega complex. Dit komt omdat er op hetzelfde moment een groot aantal variabelen tegelijk moeten worden bekeken. Om er een paar te noemen:

  1. Er zijn meerdere bewegende taxi’s bij betrokken
  2. Iedere taxi heeft een beperkt aantal stoelen
  3. De bestemmingen zijn voor iedere passagier anders
  4. De beginsituatie van iedere taxi is anders
  5. Er blijven continu nieuwe aanvragen komen
  6. Klanten bewegen
  7. Klanten maken dynamische keuzen om wel/niet meer te wachten
  8. Sommige hebben misschien bagage bij zich
  9. …..

En ga zo maar door. Het model is zo complex dat zelfs het grootste mainframe of cluster ter wereld dit niet binnen een acceptabele termijn kan uitrekenen.

Dit is een bekend wiskundig probleem en wordt ook wel het “Traveling Salesmen Problem” (TSP) genoemd. De vraag bij het TSP is simpel: “Wat is het minimale aantal kilometers dat een handelsreiziger moet afleggen om alle steden in een land één keer te bezoeken.” Dit is al bijna niet uit te rekenen omdat er n! (n faculteit = n × (n-1) × (n-2) × … × 2 × 1) mogelijkheden zijn. Voor degene bij wie de wiskundelessen zijn weggezakt, voor 15 steden moet je dus 1.300 miljard berekeningen uitvoeren. Voor 16 gemeentes kom je op 21.000 miljard berekeningen en bij 17 gemeentes zit je op 355.000 miljard. Het loopt dus hard op en Nederland heeft trouwens 443 gemeentes. Kijk voor de theorie achter het TSP probleem maar eens op http://bit.ly/1NrspHm.

Ze zien ons in het data center al aankomen met onze kleine slimme Uber Appie hahaha. “Hoi. Koppel voor ons even realtime 500 taxi’s en 4 x 500 mensen aan elkaar, die ongeveer in een straal van 1 kilometer van elkaar af zitten maar wel in beweging zijn. O ja, voordat ik het vergeet. Stuur de taxichauffeur en de passagiers even een SMS met de exacte coördinaten en bereken ook nog even de variabele ritprijs. Doe maar gesplitste nota’s omdat er soms mensen zijn die een stuk verder doorrijden dan de anderen.”

Jammer maar helaas. Dit betekent overigens niet dat het geen slim idee is om met flexibele prijzen en carpoolen vraag en aanbod beter op elkaar af te stemmen. Het was innovatief en creatief en wij zijn de eerste om te zeggen dat techniek onze innovatie en creativiteit niet moet afremmen. Deze keer lukt het dus niet. Gelukkig zijn er genoeg Digitale Innovaties en slimme ideeën voor App’s voorhanden die wel werken en Many2More denkt graag met jullie mee  😉

Leave a comment

Your email address will not be published. Required fields are marked *