Kostenmodell

Die Kosten-Properties sind unter „ShipmentModel.shipments.Shipment“ und „ShipmentModel.vehicles.Vehicle“ definiert.

Das Hauptziel der Route Optimization API ist es, 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 Versandkosten angeben.

Die Attribute des Kostenmodells 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 Attribute des Kostenmodells so strukturiert:

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

Checkliste für Grundlagen

Die folgende Checkliste enthält grundlegende Informationen , mit denen Sie potenzielle kostenbezogene Fehler vermeiden können. Anhand dieser Liste können Sie Ihre Anfrage überprüfen und Fehler in Ihrer Antwort beheben.

Attribute

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

Hat Kinder Property-Name Property-Typ Cost-per- Beschreibung des Attributs
Shipment penaltyCost Zahl Übersprungene Lieferung Die Kosten, die durch das Überspringen der Lieferung entstehen.
Die API überspringt eine Lieferung, 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, ist die Sendung obligatorisch.
  • Wenn Sie für eine Sendung explizit penaltyCost auf null setzen, überspringt die API die Sendung immer , es sei denn, andere Einschränkungen erfordern sie.
Vehicle fixedCost Zahl Versand Feste Kosten, die anfallen, wenn dieses Fahrzeug für den Versand verwendet wird.
costPerHour Zahl Stunde Die Kosten für den Betrieb eines Fahrzeugs pro Stunde , einschließlich Transit-, Warte-, Besuchs- und Pausenzeiten.
Wenn diese Kosten steigen, versucht der Optimizer, schnellere Routen zu finden, die möglicherweise nicht die kürzesten sind.
Dieses Attribut kann aufgrund seiner Einfachheit und Vollständigkeit eine effektive eigenständige Kosten pro Fahrzeug sein.
costPerKilometer Zahl Kilometer Die Kosten pro Kilometer , die das Fahrzeug zurücklegt, z. B. Kraftstoffkosten und amortisierte Kosten für die Fahrzeugwartung.
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

Das folgende Codebeispiel zeigt die Struktur der Attribute des Kostenmodells in Shipment:

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

Das folgende Codebeispiel zeigt die Struktur der Attribute des Kostenmodells 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 ein Unternehmen für die Hundebetreuung betreiben. Sie optimieren eine Route für den Lkw, mit dem Sie die Hunde von ihren Häusern abholen. In diesem Szenario soll der Optimizer bei der Routenplanung Kosten im Zusammenhang mit der Abholung der Hunde und dem Fahrzeugbetrieb berücksichtigen.

In diesem Beispiel entspricht eine Kosteneinheit 1 US-Dollar. Das bedeutet, dass die Werte der Attribute 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 nicht an einem geplanten Tag abholen, erhalten die Kunden 40 $ Rabatt auf den Gesamtbetrag ihrer Dienstleistung.
fixedCost 30 Stellt die täglichen Kosten für Ihre Fahrzeugkreditraten dar, die 30 $ pro Tag betragen.
costPerKilometer 0,08 Gibt an, wie viel Benzin Ihr Fahrzeug pro Kilometer verbraucht. Ihr Fahrzeug benötigt 0, 04 Gallonen pro Kilometer und die Kosten pro Gallone in Ihrer Region betragen 2 $.
costPerHour 27 Gibt an, wie viel Sie einem Fahrer für das Fahren Ihres Fahrzeugs bezahlen. Sie zahlen dem Fahrer 27 $ pro Stunde.
costPerTraveledHour 2,5 Gibt an, wie viel Sie pro Stunde für die Klimaanlage des Fahrzeugs für die Hunde bezahlen müssen, während Sie auf der Straße unterwegs sind. Wenn das Fahrzeug nicht fährt, kann der Fahrer die Türen hinten öffnen und die Klimaanlage ausschalten.

Anhand der Kostenparameter kann der Optimizer Kompromisse eingehen, die für den Nutzer nicht offensichtlich sind, aber durch die Optimierung gefunden werden können.

Das folgende Diagramm veranschaulicht 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 meiden.

Für das Fahrzeug gibt es zwei mögliche Routen. Die eine wird durch eine grüne gestrichelte Linie dargestellt. Sie ist länger, aber es gibt keine Vorfälle. Die andere wird durch eine rote gepunktete Linie dargestellt. Sie ist kürzer, aber in der Mitte gibt es einen Autounfall.

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

Neben kostengünstigen Routen bietet der Optimizer in den Antwort attributen auch eine Summe der Gesamtkosten der Lieferrouten.

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
      }
    ]
  }
}

Attribute der Antwort

Die OptimizeToursResponse Nachricht enthält Kostenattribute die die Kosten beschreiben, die bei der Ausführung einer Route entstehen:

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