Kostenmodell

Die Kostenattribute sind unter „ShipmentModel.shipments.Shipment“ und „ShipmentModel.vehicles.Vehicle“ definiert.

Das Hauptziel der Route Optimization API besteht darin, Routen mit den niedrigsten Kosten zu finden. Daher ist das Kostenmodell der Hauptfaktor für die Routenoptimierung.

Das Kostenmodell ist eine Reihe von Attributen, die globale, Fahrzeug- und Sendungskosten angeben.

Kostenmodell-Properties unterstützen die folgenden Arten von Optimierungszielen:

  • Effiziente Fahrzeugzuweisungen und Routen
  • Kostengünstige Abhol- und Lieferzeiten
  • Priorisierung kritischer Sendungen

Struktur

Wie im Diagramm dargestellt, sind die Kostenmodellattribute so strukturiert:

In diesem Dokument werden nur die wichtigsten Parameter des Kostenmodells beschrieben. Eine vollständige Liste der Kostenparameter finden Sie in der Referenzdokumentation.

Essentials-Checkliste

In der folgenden Checkliste wird wichtiges Wissen beschrieben, mit dem potenzielle kostenbezogene Fehler vermieden werden können. Diese Liste kann Ihnen helfen, Ihre Anfrage zu validieren und Fehler in der Antwort zu beheben.

Attribute

In der folgenden Tabelle sind die Attribute des Kostenmodells aufgeführt und beschrieben.

Elternteil Property-Name Property-Typ Kosten pro Property-Beschreibung
Shipment penaltyCost Zahl Lieferung ausgesetzt Die Kosten, die durch das Überspringen der Sendung entstehen.
Die API überspringt eine Sendung, wenn die Kosten für die Ausführung die Strafkosten übersteigen.
  • Wenn Sie penaltyCost festlegen, wird die Lieferung von Sendungen mit höheren Kosten priorisiert.
  • Wenn Sie für eine Sendung keine penaltyCost festlegen, wird die Sendung als obligatorisch eingestuft.
  • Wenn Sie die penaltyCost einer Sendung explizit auf null setzen, wird die Sendung von der API immer übersprungen, sofern keine anderen Einschränkungen gelten.
Vehicle fixedCost Zahl Versand Fixkosten, die anfallen, wenn dieses Fahrzeug für eine Sendung verwendet wird.
costPerHour Zahl Stunde Die Kosten für den Betrieb eines Fahrzeugs pro Stunde, einschließlich Fahr-, Warte-, Besuchs- und Pausenzeiten.
Wenn diese Kosten steigen, versucht der Optimierer, schnellere Routen zu finden, die möglicherweise nicht die kürzesten Routen sind.
Diese Property kann aufgrund ihrer Einfachheit und Vollständigkeit ein effektiver eigenständiger Wert für die Kosten pro Fahrzeug sein.
costPerKilometer Zahl Kilometer Die Kosten pro gefahrenem Kilometer des Fahrzeugs, die Kraftstoffkosten oder amortisierte Fahrzeugwartungskosten darstellen können.
costPerTraveledHour Zahl Stunde Die Kosten für den Betrieb eines Fahrzeugs pro Stunde nur während der Fahrt, ohne Warte-, Besuchs- und Pausenzeiten. Dadurch werden schnellere Routen gegenüber kürzeren Routen priorisiert.

Beispiele

In diesem Abschnitt werden drei Arten von Beispielen behandelt:

  • Codebeispiele, die die Struktur der Kostenmodellattribute veranschaulichen.
  • Ein Beispielszenario, das eine Möglichkeit zeigt, wie Sie mit Kostenmodell-Properties ein Geschäftsziel erreichen können.
  • Ein Anfragebeispiel, das die im Beispielszenario festgelegten Werte enthält.

Codebeispiele

Das folgende Codebeispiel zeigt die Struktur der Kostenmodellattribute in Shipment:

{
  "model": {
    "shipments": [ ...
      {
        "penaltyCost": PENALTY_COST
      }
    ],
    "vehicles": [ ...
    ]
  }
}

Das folgende Codebeispiel zeigt die Struktur der Kostenmodellattribute in Vehicle:

{
  "model": {
    "shipments": [ ...
    ],
    "vehicles": [ ...
      {
        "fixedCost": FIXED_COST,
        "costPerKilometer": KILOMETER_COST,
        "costPerHour": HOUR_COST,
        "costPerTraveledHour": TRAVELED_HOUR_COST
      }
    ]
  }
}

Beispielszenario

In diesem Abschnitt wird ein Szenario beschrieben, in dem Sie eine Hundetagesstätte betreiben. Sie optimieren eine Route für den Transporter, mit dem Sie die Hunde von zu Hause abholen. In diesem Szenario soll der Optimierer bei der Routenplanung die Kosten für das Abholen der Hunde und den Betrieb der Fahrzeuge berücksichtigen.

In diesem Beispiel entspricht eine Kosteneinheit 1 $. Das bedeutet, dass die Attributwerte des Kostenmodells in Ihrer Anfrage so aussehen:

Attribut Wert Szenario
penaltyCost 10 Stellt die Strafe dar, die Sie Ihren Kunden anbieten, wenn sie ihren Hund nicht an einem geplanten Tag abholen. Wenn Sie den Hund an einem geplanten Tag nicht abholen, erhält der Kunde einen Rabatt von 40 $ auf den Gesamtpreis der Dienstleistung.
fixedCost 30 Die täglichen Kosten für die Ratenzahlungen für Ihr Fahrzeug betragen 30 $.
costPerKilometer 0,08 Gibt an, wie viel Benzin Ihr Fahrzeug pro Kilometer verbraucht. Ihr Fahrzeug benötigt 0, 04 Gallonen pro Kilometer und der Preis pro Gallone in Ihrer Region beträgt 2 $.
costPerHour 27 Gibt an, wie viel Sie einem Fahrer für das Fahren Ihres Fahrzeugs zahlen. Sie bezahlen dem Fahrer 27 $ pro Stunde.
costPerTraveledHour 2,5 Gibt an, wie viel Sie pro Stunde für die Klimatisierung des Fahrzeugs für die Hunde während der Fahrt bezahlen müssen. Wenn das Fahrzeug steht, kann der Fahrer die Hecktüren öffnen und die Klimaanlage ausschalten.

Basierend auf Kostenparametern kann der Optimierer Kompromisse eingehen, die für den Nutzer nicht offensichtlich sind, aber durch Optimierung gefunden werden können.

Das folgende Diagramm zeigt ein Beispiel, in dem der Optimierer eine längere, aber schnellere Route über die grüne gestrichelte Linie wählen könnte, um den Verkehr auf der gepunkteten roten Linie zu vermeiden.

Das Fahrzeug hat zwei mögliche Routen: eine, die durch eine grüne gestrichelte Linie dargestellt wird, die länger ist, aber keine Vorfälle aufweist, und eine, die durch eine rote gepunktete Linie dargestellt wird, die kürzer ist, aber in der Mitte einen Autounfall aufweist.

In diesem Szenario sieht die Kostenbilanz der beiden Routen so aus:

  • Die grüne gestrichelte Linie hat einen niedrigen costPerHour- und costPerTraveledHour-Wert, da es sich um eine schnelle Route handelt, auf der Verkehr vermieden wird. Das ist kostengünstiger, auch wenn der costPerKilometer-Wert hoch ist.

  • Die rote gepunktete Linie hat einen niedrigen costPerKilometer, da es sich um eine direkte Route handelt, aber die costPerHour und costPerTraveledHour sind aufgrund der Wartezeiten im Verkehr zu hoch, was sie zur teuersten Route macht.

Der Optimierer bietet nicht nur kostengünstige Routen, sondern auch eine Zusammenfassung der Gesamtkosten der Lieferrouten in den Antwortattributen.

Beispielanfrage

Das folgende Beispiel zeigt die Struktur einer einfachen optimizeTours-Anfrage mit den im Beispielszenario festgelegten Werten:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.8024,
              "longitude": -122.4058
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
        "penaltyCost": 40
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "endLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "fixedCost": 30,
        "costPerKilometer": 0.08,
        "costPerHour": 27,
        "costPerTraveledHour": 2.5
      }
    ]
  }
}

Antwortattribute

Die OptimizeToursResponse-Nachricht enthält Kostenattribute, die die Kosten für das Abschließen einer Route beschreiben:

  • metrics.costs: Die Gesamtkosten für alle Routen, aufgeschlüsselt nach kostenbezogenen Anfragefeldern.
  • metrics.totalCost: Die Gesamtkosten für alle Routen.