Besuche in der Nähe mit Übergangsattributen priorisieren

In diesem Beispiel wird gezeigt, wie Sie mithilfe von Übergangsattributen Routen priorisieren, bei denen Abholungen und Lieferungen in der Nähe vom selben 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 von Sendungen A, B und C befinden sich nah beieinander auf derselben Straße.
  • Weitere Lieferungen sind in Planung.
  • Für die Übermittlungen sind keine Lieferzeiten angegeben.
  • 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 für Lieferungen von Sendungen auf derselben Straße Es gibt drei Sendungen A, B und C, die sich vom Depot auf dem Weg zu anderen Sendungen befinden. A ist 1.000 m vom Depot entfernt, B ist 50 Meter weiter vom Depot entfernt und C ist 30 Meter weiter in derselben Richtung. Es gibt weitere Sendungen, die sich 1.000 m von C entfernt befinden.

In dieser Situation und bei einer Anfrage, bei der nur die Kosten pro Stunde und die Kosten pro Kilometer verwendet werden, könnten A und B auf der optimierten Route am Morgen und C am Abend abgefertigt werden. Die Kosten der Lösung wären dann dieselben wie bei einer gleichzeitigen Abfertigung aller drei Aufträge.

Kosten pro Kilometer mit Grenzwert

Wenn Sie Besuche in der Nähe gruppieren möchten, müssen Sie zuerst einen Grenzwert für die Entfernung auswählen. Das ist die maximale Entfernung zwischen zwei Besuchen, die Sie als „in der Nähe“ betrachten. In diesem Beispiel wird ein Grenzwert von 100 Metern verwendet, der etwa einem Häuserblock in einem städtischen Gebiet entspricht. Sie können den Grenzwert an die Anforderungen Ihres Unternehmens und die Präferenzen Ihrer Fahrer anpassen.

Wenn Sie nahe gelegene Besuche innerhalb von 100 Metern voneinander gruppieren möchten, legen Sie hohe Kosten für die ersten 100 Meter jeder Überführung und niedrigere Kosten für alle zusätzlichen Meter der Überführung fest. Da die ersten 100 Meter am teuersten sind, erzielt der Optimierer die größten Einsparungen, wenn Übergänge verwendet werden, die kürzer als 100 Meter sind, auch wenn dadurch die Gesamtlänge der Route verlängert wird.

Um die Kosten einzurichten, fügen Sie ShipmentModel.transition_attributes einen neuen Eintrag mit den folgenden Properties 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, damit alle möglichen Übergänge übereinstimmen. Weitere Informationen finden Sie unter Alle Besuchsanfragen abgleichen.

Funktionsweise bei hohen Kosten unter dem Grenzwert

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

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

In dieser Lösung werden die Sendungen auf die beiden Durchquerungen dieser Straße aufgeteilt. Zwei davon werden bei der ersten Durchsuchung und die verbleibende bei der zweiten zugestellt. 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→Sonstiges 1.030 m 100 m 5 930 m 0,93
Sonstiges → 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 ergeben sich aus der Summe der beiden Kosten pro Kilometer:

  • die Kosten pro Kilometer unter dem Grenzwert (50) multipliziert mit der zurückgelegten Gesamtstrecke unter dem Grenzwert (450 m = 0,45 km),
  • die Kosten pro Kilometer über dem Grenzwert (1) multipliziert mit der zurückgelegten Gesamtstrecke ü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 ausführen, nichts auf dem Rückweg

Anders als bei Lösung 1 werden bei dieser Lösung alle drei Sendungen bei einer einzigen Fahrt über die Straße „als Gruppe“ zugestellt. Bei der anderen Durchfahrt hält das Fahrzeug überhaupt nicht an. Auch hier gibt es fünf Übergänge, deren Länge und Zusammensetzung sich jedoch unterscheiden:

Ü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→Sonstiges 1.000 m 100 m 5 900 m 0,9
andere → 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 Durchführung aller Besuche in einem Zeitblock ist also günstiger als in zwei Gruppen. Sie können diesen Effekt verstärken, indem Sie DistanceLimit.cost_per_kilometer_below_soft_max erhöhen.

Warum ein niedriger Kilometerpreis unter dem Grenzwert nicht funktioniert

Da Sie kurze Übergänge gegenüber langen bevorzugen möchten, sind Sie möglicherweise versucht, für lange Übergänge hohe Kosten pro Kilometer festzulegen und die niedrigen Kosten pro Kilometer für kurze Übergänge beizubehalten. Dies hat jedoch einen umgekehrten Effekt: Da die ersten 100 Meter der Überleitung am günstigsten sind, nutzt der Optimierer diese „günstigen“ Meter am effektivsten, indem er Überleitungen bevorzugt, die fast oder über 100 Meter lang sind.

Sie können diesen Effekt an den beiden Beispiellösungen sehen. Wenn Sie den Kilometerpreis unter und über den Grenzwert setzen, ändern sich die Routenkosten:

Hohe Kosten über dem Grenzwert Hohe Kosten unter dem Grenzwert
Lösung 1 Lösung 2 Lösung 1 Lösung 2
Kilometer unter dem Grenzwert 0,45 0,38 0,45 0,38
Kosten pro Kilometer unter Grenzwert 1 1 50,00 50,00
Kilometer über dem Grenzwert 3.71 3,78 3.71 3,78
Kosten pro Kilometer über Grenzwert 50,00 50,00 1 1
Gesamtkosten 185.95 189.38 26.21 22.78

Bei jeder Version wird der niedrigere der Gesamtkosten der beiden Lösungen fett hervorgehoben. Sie sehen, dass die Gesamtkosten der Route, in der die Besuche gruppiert sind, jetzt höher sind, wenn Sie einen hohen Kostenwert über dem Grenzwert verwenden. Das ist das Gegenteil von dem, was Sie erreichen wollten.