Model kosztu

Właściwości kosztu są zdefiniowane w elementach ShipmentModel.shipments.Shipment i ShipmentModel.vehicles.Vehicle.

Głównym celem interfejsu Route Optimization API jest znajdowanie tras o najniższym koszcie. Dlatego model kosztów jest głównym czynnikiem optymalizacji trasy.

Model kosztów to zbiór właściwości, które określają koszty globalne, koszty pojazdu i koszty dostawy.

Właściwości modelu kosztów obsługują te rodzaje celów optymalizacji:

  • Skuteczne przypisywanie pojazdów i tworzenie tras
  • Ekonomiczne czasy odbioru i dostawy
  • Priorytetowe traktowanie przesyłek pilnych

Struktura

Jak widać na diagramie, właściwości modelu kosztu są uporządkowane w ten sposób:

Ten dokument wyróżnia tylko najważniejsze parametry modelu kosztu. Pełny zestaw parametrów kosztów znajdziesz w dokumentacji.

Lista kontrolna Essentials

Poniższa lista kontrolna zawiera podstawowe informacje, które pomogą Ci uniknąć potencjalnych błędów związanych z kosztami. Ta lista może pomóc w weryfikacji żądania i rozwiązywaniu problemów z otrzymaną odpowiedzią.

Właściwości

W tabeli poniżej znajdziesz opisy właściwości modelu kosztów.

Rodzic Nazwa usługi Typ obiektu Koszt Opis właściwości
Shipment penaltyCost liczba Pominięta dostawa Koszt poniesiony w wyniku pominięcia przesyłki.
Interfejs API pomija dostawę, gdy koszt jej realizacji przekracza koszt kary.
  • Ustawienie penaltyCost spowoduje, że priorytetowo będą traktowane przesyłki o wyższym koszcie.
  • Nieustawienie dostawy penaltyCost powoduje, że dostawa staje się obowiązkowa.
  • Wyraźne ustawienie dostawy penaltyCost na zero powoduje, że interfejs API zawsze pomija dostawę, chyba że jest to wymagane przez inne ograniczenia.
Vehicle fixedCost liczba Wysyłka Stałe koszty stosowane, jeśli pojazd jest używany do obsługi przesyłki.
costPerHour liczba Godzina Koszt obsługi pojazdu na godzinę, w tym czas przejazdu, oczekiwania, wizyty i przerwy.
Wzrost tego kosztu powoduje, że optymalizator próbuje znaleźć szybsze trasy, które nie muszą być najkrótsze.
Ta właściwość może być skutecznym samodzielnym kosztem na pojazd ze względu na swoją prostotę i pełnokształcowość.
costPerKilometer liczba Kilometr Koszt za przejechany kilometr, np. koszty paliwa i amortyzowane koszty konserwacji pojazdu.
costPerTraveledHour liczba Godzina Koszt eksploatacji pojazdu za godzinę tylko w trakcie przejazdu, z wyłączeniem czasu oczekiwania, wizyty i przerwy. W ten sposób priorytetem są szybsze trasy, a nie krótsze.

Przykłady

Ta sekcja zawiera 3 rodzaje przykładów:

  • Przykłady kodu ilustrujące strukturę właściwości modelu kosztowego.
  • Przykładowy scenariusz, który pokazuje jeden ze sposobów korzystania z właściwości modelu kosztów w celu osiągnięcia celu biznesowego.
  • Przykład żądania zawierającego wartości ustawione w przykładowym scenariuszu.

Przykładowe fragmenty kodu

Poniższy przykładowy kod pokazuje strukturę właściwości modelu kosztów w Shipment:

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

Poniższy przykładowy kod pokazuje strukturę właściwości modelu kosztów w Vehicle:

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

Przykładowy scenariusz

Ta sekcja opisuje scenariusz, w którym prowadzisz żłobek dla psów. Optymalizujesz trasę dla ciężarówki, której używasz do odbierania psów z domów. W tym scenariuszu chcesz, aby optymalizator uwzględniał koszty związane z odbiorem psów i obsługą pojazdu podczas wyznaczania trasy.

W tym przykładzie 1 jednostka kosztu odpowiada 1 dolarowi. Oznacza to, że wartości właściwości modelu kosztowego w żądaniu to:

Właściwość Wartość Scenariusz
penaltyCost 10 Reprezentuje karę, jaką nakładasz na klientów za nieodebranie psa w wyznaczonym dniu. Jeśli pies nie zostanie odebrany w zaplanowanym dniu, klient otrzyma 40 dolarów zniżki od łącznej kwoty za usługę.
fixedCost 30 Reprezentuje dzienny koszt spłaty pożyczki na pojazd, który wynosi 30 dolarów dziennie.
costPerKilometer 0,08 Wskaźnik, który informuje, ile paliwa zużywa pojazd na 1 km. Twój pojazd potrzebuje 0,04 galona na 1 km, a koszt 1 galona w Twoim regionie to 2 dolarów.
costPerHour 27 Wskaźnik, który informuje, ile płacisz kierowcy za prowadzenie Twojego pojazdu. Płacisz kierowcy 27 USD za godzinę.
costPerTraveledHour 2,5 Pokazuje, ile kosztuje godzina klimatyzacji w pojazdach dla psów. Gdy pojazd się nie porusza, kierowca może otworzyć tylne drzwi i wyłączyć klimatyzację.

Na podstawie parametrów kosztów optymalizator może dokonywać kompromisów, które nie są oczywiste dla użytkownika, ale można je znaleźć dzięki optymalizacji.

Poniższy diagram pokazuje przykład, w którym optymalizator może wybrać dłuższą, ale szybszą trasę po zielonej przerywanej linii, aby uniknąć korków na przerywanej czerwonej linii.

Samochód ma 2 możliwe trasy: jedna jest oznaczona zieloną przerywaną linią, jest dłuższa, ale nie ma na niej żadnych incydentów, a druga jest oznaczona czerwoną kropkowaną linią, jest krótsza, ale w jej środkowej części doszło do wypadku.

W tym scenariuszu saldo kosztów obu tras jest następujące:

Oprócz wskazywania opłacalnych tras optymalizator podaje też w elementach odpowiedzi łączną sumę kosztów tras dostawy.

Przykład żądania

Ten przykład pokazuje strukturę podstawowego żądania optimizeTours, które zawiera wartości ustawione w przypadku przykładowego scenariusza:

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

Właściwości odpowiedzi

Wiadomość OptimizeToursResponse zawiera właściwości kosztu, które opisują koszty poniesione w procesie realizacji trasy: