Besuche in der Nähe mit Übergangsattributen priorisieren

In diesem Beispiel wird gezeigt, wie Sie Übergangsattribute verwenden, um Routen zu priorisieren, bei denen Abholungen und Lieferungen in der Nähe von demselben Fahrzeug in einem Zeitblock ausgeführt werden. Weitere Informationen zu Übergangsattributen finden Sie unter Geschäftslogik mit Übergangsattributen modellieren.

In diesem Fall gilt Folgendes:

  • Die Lieferungen der Sendungen A, B und C liegen nahe beieinander auf derselben Straße.
  • Weitere Lieferungen sind noch in der Zukunft.
  • Für Lieferungen gibt es keine festgelegten Lieferzeiten.
  • Unabhängig vom Besuchsplan muss das Fahrzeug diese Straße zweimal befahren: einmal morgens auf dem Weg vom Depot und einmal abends auf dem Rückweg.
  • Die Gesamtstrecke und die Dauer der Route sind immer gleich, unabhängig davon, wann A, B und C ausgeführt werden.

Beispiel mit Lieferungen von Sendungen auf derselben Straße. Es gibt drei Sendungen (A, B und C), die vom Depot zu anderen Sendungen unterwegs sind. A ist 1.000 m vom Depot entfernt, B ist 50 m weiter vom Depot entfernt und C ist 30 m weiter in derselben Richtung. Es gibt andere Sendungen, die 1.000 m von C entfernt sind.

In diesem Fall und bei einer Anfrage, die nur Kosten pro Stunde und Kosten pro Kilometer verwendet, könnte die optimierte Route so aussehen, dass A und B morgens und C abends bearbeitet werden. Die Kosten der Lösung wären dann dieselben, als wenn alle drei gleichzeitig bearbeitet würden.

Kosten pro Kilometer mit einem Grenzwert

Wenn Sie Besuche in der Nähe gruppieren möchten, müssen Sie zuerst einen Schwellenwert für die Entfernung auswählen. Dies ist die maximale Entfernung zwischen zwei Besuchen, die Sie als nahe beieinander betrachten. In diesem Beispiel wird ein Schwellenwert von 100 Metern verwendet, was in etwa einem Häuserblock in einem Stadtgebiet entspricht. Sie können den Schwellenwert erhöhen oder verringern, um ihn an Ihre geschäftlichen Anforderungen und die Präferenzen Ihrer Fahrer anzupassen.

Wenn Sie Besuche in der Nähe, die maximal 100 Meter voneinander entfernt sind, gruppieren möchten, legen Sie für die ersten 100 Meter jedes Übergangs hohe Kosten und für alle weiteren Meter des Übergangs niedrigere Kosten fest. Da die ersten 100 Meter am teuersten sind, erzielt der Optimierer die größten Einsparungen, wenn er Übergänge verwendet, die kürzer als der Schwellenwert von 100 Metern sind, auch wenn dadurch die Gesamtlänge der Route verlängert wird.

Wenn Sie die Kosten einrichten möchten, fügen Sie ShipmentModel.transition_attributes einen neuen Eintrag mit den folgenden Attributen hinzu:

{
  "model": {
    "transitionAttributes": [
      {
        "excluded_dst_tag": "UNUSED_TAG",
        "excluded_src_tag": "UNUSED_TAG",
        "distanceLimit": {
          "softMaxMeters": 100,
          "costPerKilometerBelowSoftMax": 50,
          "costPerKilometerAboveSoftMax": 1,
        }
      }
    ]
  }
}

Das Tag #unused_tag# darf von keinen Sendungen oder Fahrzeugen verwendet werden, um alle möglichen Übergänge abzugleichen. Weitere Informationen finden Sie unter Alle Besuchsanfragen abgleichen.

Funktionsweise von „Hohe Kosten unter dem Schwellenwert“

In diesem Abschnitt wird gezeigt, wie sich die Kosten unter und über dem Schwellenwert auf die Gesamtkosten verschiedener Lösungen des Beispielszenarios auswirken.

Lösung 1: A und B auf dem Hinweg, C auf dem Rückweg

In dieser Lösung werden die Sendungen auf die beiden Durchfahrten dieser Straße aufgeteilt. Zwei davon werden beim ersten Durchlauf und die verbleibende beim zweiten Durchlauf ausgeliefert. Es gibt fünf Übergänge:

Übergang Entfernung Unter Grenzwert Über Grenzwert
Entfernung Kosten Entfernung Kosten
Depot → A 1.000 m 100 m 5 900 m 0,9
A→B 50 m 50 m 2,5 0 m 0
B→other 1.030 m 100 m 5 930 m 0,93
other→C 1.000 m 100 m 5 900 m 0,9
C→Depot 1.080 m 100 m 5 980 m 0,98 $
Gesamt 450 m 22,5 3.710 m 3,71

Die Gesamtkosten werden als Summe der beiden Kosten pro Kilometer berechnet:

  • die Kosten pro Kilometer unter dem Schwellenwert (50) multipliziert mit der gesamten zurückgelegten Strecke unter dem Schwellenwert (450 m = 0,45 km),
  • die Kosten pro Kilometer über dem Grenzwert (1) multipliziert mit der gesamten zurückgelegten Strecke über dem Grenzwert (3.710 m = 3,71 km).

Die Gesamtkosten betragen also 0,45 * 50 + 3,71 * 1 = 22,5 + 3,71 = 26,21.

Lösung 2: A, B und C auf dem Hinweg, nichts auf dem Rückweg

In dieser Lösung werden im Gegensatz zu Lösung 1 alle drei Sendungen „als Gruppe“ während einer Fahrt auf der Straße zugestellt. Bei der anderen Durchquerung hält das Fahrzeug überhaupt nicht an. Auch hier gibt es fünf Übergänge, aber ihre Länge und Zusammensetzung sind unterschiedlich:

Übergang Entfernung Unter Grenzwert Über Grenzwert
Entfernung Kosten Entfernung Kosten
Depot → A 1.000 m 100 m 5 900 m 0,9
A→B 50 m 50 m 2,5 0 m 0
B→C 30 m 30 m 1.5 0 m 0
C→Sonstige 1.000 m 100 m 5 900 m 0,9
other→depot 2.080 m 100 m 5 1.980 m 1,98
Gesamt 380 m 19 3.780 m 3,78

Bei derselben Berechnung wie in Lösung 1 betragen die Gesamtkosten 0,38 * 50 + 3,78 * 1 = 19 + 3,78 = 22,78. Die Kosten für die Durchführung aller Besuche in einem Zeitblock sind also niedriger als für die Durchführung in zwei Gruppen. Sie können diesen Effekt verstärken, indem Sie DistanceLimit.cost_per_kilometer_below_soft_max erhöhen.

Warum ein niedriger Preis pro Kilometer unter dem Grenzwert nicht funktioniert

Da Sie kurze Übergänge gegenüber langen Übergängen bevorzugen möchten, könnten Sie versucht sein, für lange Übergänge hohe Kosten pro Kilometer und für kurze Übergänge niedrige Kosten pro Kilometer anzugeben. Das hat jedoch den gegenteiligen Effekt: Da die ersten 100 Meter des Übergangs am günstigsten sind, nutzt der Optimierer diese „günstigen“ Meter am effektivsten, indem er Übergänge bevorzugt, die fast oder mehr als 100 Meter lang sind.

Sie können diesen Effekt an den beiden Beispiellösungen sehen. Wenn Sie die Kosten pro Kilometer unter und über dem Schwellenwert vertauschen, ändern sich die Routenkosten:

Hohe Kosten über dem Grenzwert Hohe Kosten unter dem Schwellenwert
Lösung 1 Lösung 2 Lösung 1 Lösung 2
KM unter dem Schwellenwert 0,45 0,38 0,45 0,38
Kosten pro km unter dem Grenzwert 1,00 1,00 50,00 50,00
KM über dem Schwellenwert 3,71 3,78 3,71 3,78
Kosten pro Kilometer über dem Schwellenwert 50,00 50,00 1,00 1,00
Gesamtkosten 185,95 189,38 26.21 22,78

Für jede Version sind die niedrigeren Gesamtkosten der beiden Lösungen fett hervorgehoben. Wenn Sie einen hohen Wert für die Kosten über dem Schwellenwert verwenden, sind die Gesamtkosten der Route jetzt höher für die Route, auf der die Besuche gruppiert sind. Das ist das Gegenteil von dem, was Sie erreichen wollten.