Kostenmodell

Die Kosteneigenschaften 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. Das Kostenmodell ist daher der wichtigste Faktor für die Routenoptimierung.

Das Kostenmodell ist eine Reihe von Eigenschaften, die globale, Fahrzeug- und Versandkosten angeben.

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

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

Checkliste für Essentials

In der folgenden Checkliste wird das erforderliche Wissen beschrieben, mit dem potenzielle kostenbezogene Fehler vermieden werden können. Anhand dieser Liste können Sie Ihre Anfrage validieren und Fehler in Ihrer Antwort beheben.

Attribute

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

Hat Kinder Property-Name Property-Typ Kosten pro Beschreibung des Attributs
Shipment penaltyCost Zahl Lieferung ausgesetzt Die Kosten, die durch das Überspringen des Versands entstehen.
 Die API überspringt eine Sendung, wenn die Kosten für die Durchführung die Kosten für die Strafe übersteigen.
  • Wenn Sie penaltyCost festlegen, werden Sendungen mit höheren Kosten bevorzugt zugestellt.
  • Wenn Sie keine penaltyCost für eine Sendung festlegen, ist die Sendung erforderlich.
  • Wenn Sie penaltyCost für eine Sendung explizit auf null setzen, wird die Sendung von der API immer übersprungen, sofern sie nicht durch andere Einschränkungen erforderlich ist.
Vehicle fixedCost Zahl Versand Feste Kosten, die anfallen, wenn dieses Fahrzeug für den Transport 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 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 Kostenfaktor pro Fahrzeug sein.
costPerKilometer Zahl Kilometer Die Kosten pro gefahrenem Kilometer, 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 bevorzugt.

Beispiele

In diesem Abschnitt werden drei Arten von Beispielen behandelt:

  • Codebeispiele, die die Struktur von Kostenmodelleigenschaften veranschaulichen.
  • Beispielszenario, in dem eine Möglichkeit zur Verwendung von Kostenmodellattributen zur Erreichung eines Geschäftsziels gezeigt wird.
  • Ein Beispiel für eine Anfrage, die die im Beispielszenario festgelegten Werte enthält.

Codebeispiele

Das folgende Codebeispiel zeigt die Struktur der Kostenmodelleigenschaften in Shipment:

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

Das folgende Codebeispiel zeigt die Struktur der Kostenmodelleigenschaften 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 Betreuung von Hunden haben. Sie optimieren eine Route für den Lkw, mit dem Sie die Hunde von ihren Zuhause abholen. In diesem Szenario soll der Optimierer bei der Routenplanung die Kosten für das Abholen der Hunde und den Fahrzeugbetrieb berücksichtigen.

In diesem Beispiel entspricht eine Kosteneinheit 1 $. Das bedeutet, dass die Werte der costModel-Eigenschaft in Ihrer Anfrage die folgenden sind:

Attribut Wert Szenario
penaltyCost 10 Gibt die Gebühr an, die Sie Ihren Kunden in Rechnung stellen, wenn sie ihren Hund nicht am geplanten Tag abholen. Wenn Sie den Hund an einem geplanten Tag nicht abholen, erhält der Kunde einen Rabatt von 40 $ auf den Gesamtbetrag für den Service.
fixedCost 30 Die täglichen Kosten für Ihre Fahrzeugkreditraten 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 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 während der Fahrt bezahlen müssen. Wenn das Fahrzeug steht, kann der Fahrer die hinteren Türen öffnen und die Klimaanlage ausschalten.

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

Das folgende Diagramm zeigt 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 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 hat es einen Autounfall gegeben.

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

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

  • Die rote gepunktete Linie hat einen niedrigen costPerKilometer, da es sich um eine direkte Route handelt. Die costPerHour und costPerTraveledHour sind jedoch aufgrund der Wartezeiten im Verkehr zu hoch, sodass es sich um die teuerste Route handelt.

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

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 Nachricht OptimizeToursResponse enthält Kosteneigenschaften, die die Kosten beschreiben, die bei der Durchführung einer Route anfallen:

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