26.000 Mahlzeiten pro Tag ausgeliefert?
Die Logistik für die Auslieferung in diesem Umfang ist anspruchsvoll. Wir gehen davon aus, dass unsere freiwilligen Fahrer mit 15 Rationen, also 30 Mahlzeiten pro Auslieferungsfahrt, zurechtkommen, und wir weisen ihnen jeweils eine optimierte Fahrtroute zu. Dennoch dauert es etwa 1,5 bis 2 Stunden, bis sie ihre Tour abgeschlossen haben – eine Dauer, die wir für unsere Freiwilligen als nachhaltig erachten, wenn sie 2–3 Mal pro Woche fahren.
Für uns würden 26.000 Mahlzeiten 13.000 Rationen bedeuten. Wir erwarten, dass dies etwa 7.000 Haltestellen (etwa 2 Rationen pro Haltestelle) für uns zur Folge hätte. Unter der Annahme, dass freiwillige Fahrer und normale Autos für die Auslieferung genutzt werden, würde das für uns 700 Fahrer bedeuten, die täglich fahren – also in der Realität etwa 2.000 Fahrer (da unsere Freiwilligen nicht jeden Tag fahren möchten).
Wenn Sie die Quelle der Mahlzeiten kontrollieren (wir stellen das Essen nicht selbst her, was es für uns deutlich schwieriger macht), müssen Sie lediglich die Adressliste zwischen den Fahrern aufteilen und dann jede Route optimieren. Unser Volumen ist deutlich geringer als Ihres (wir rechnen mit 2.000–3.000 Mahlzeiten pro Tag, also einem Zehntel Ihres Volumens), weshalb wir die Adressliste nicht automatisch aufteilen. Jeder Lieferadresse wird ein Stadtviertel zugeordnet, und unsere Disponenten teilen die Lieferliste manuell nach Vierteln auf (eine einfache Sortierung in einer Tabellenkalkulation). Anschließend optimieren wir die Route jedes Fahrers über einen Webserver auf AWS und weisen jedem Fahrer eine optimierte Fahrtroute zu (ein einfacher Algorithmus für das Problem des Handlungsreisenden).
Wir haben bereits über eine automatische Aufteilung der gesamten Adressliste nachgedacht. Doch wir brauchen dies noch nicht, und da wir nicht viel Geld haben, möchten wir unsere Ausgaben für AWS und die Google Maps API niedrig halten
Für das allgemeine Problem des Routenplanens mit mehreren Fahrzeugen gibt es einfache algorithmische Lösungen, die wir beispielsweise hier nutzen könnten:
Bei so vielen Lieferungen stelle ich mir jedoch vor, dass Sie ein sehr großes geografisches Gebiet abdecken. Möglicherweise müssen Sie daher auch die Wohnorte Ihrer Fahrer berücksichtigen, was über das klassische VRP hinausgeht. Einfache Heuristiken könnten möglicherweise die Fahrergruppen und die Lieferadressen in Teilprobleme aufteilen, bei denen sowohl die Lieferungen als auch die Fahrer im selben geografischen Bereich liegen. In diesem Fall könnten Sie erneut eine fertige VRP-Lösung verwenden.
Übrigens nutzen wir die von Google Maps angegebene Reisezeit als punkt-zu-punkt-Entfernung.