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, fahrzeugbezogene und versandbezogene Kosten 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 wichtige 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, dies ist aufgrund anderer Einschränkungen nicht möglich.
Vehicle fixedCost Zahl Versand Feste Kosten, die anfallen, wenn dieses Fahrzeug für den Versand einer 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 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 Kostenangabe pro Fahrzeug sein.
costPerKilometer Zahl Kilometer Die Kosten pro Kilometer, die das Fahrzeug zurücklegt. Diese können Kraftstoffkosten oder amortisierte Kosten für die Fahrzeugwartung darstellen.
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 die Kosten für die Abholung der Hunde und den Fahrzeugbetrieb berücksichtigen.

In diesem Beispiel entspricht eine Kosteneinheit 1 $. 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 Gesamtpreis.
fixedCost 30 Stellt die täglichen Kosten für die 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 Optimizer eine längere, aber schnellere Route über die grüne gestrichelte Linie wählen könnte, um den Verkehr auf der roten gepunkteten Linie zu vermeiden.

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

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

Der Optimizer bietet nicht nur kostengünstige Routen, sondern auch eine Zusammenfassung der Gesamtkosten der Lieferrouten in den Antwort attributen.

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 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.