Model kosztu

Właściwości kosztów są zdefiniowane w 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:

  • efektywne przypisywanie pojazdów i trasy;
  • opłacalne czasy odbioru i dostawy;
  • priorytetowe traktowanie krytycznych przesyłek.

Struktura

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

Ten dokument zawiera tylko najważniejsze parametry modelu kosztów. Pełny zestaw parametrów kosztów znajdziesz w dokumentacji referencyjnej.

Podstawowa lista kontrolna

Poniższa lista kontrolna zawiera podstawowe informacje , które pomogą Ci uniknąć potencjalnych błędów związanych z kosztami. Ta lista pomoże Ci zweryfikować prośbę i rozwiązać problemy z odpowiedzią.

Właściwości

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

Ma dzieci Nazwa usługi Typ obiektu Koszt za Opis właściwości
Shipment penaltyCost liczba Pominięta dostawa Koszt poniesiony w wyniku pominięcia dostawy.
Interfejs API pomija dostawę, gdy koszt jej realizacji przekracza koszt kary.
  • Ustawienie penaltyCost powoduje, że dostawa przesyłek o wyższym koszcie ma wyższy priorytet.
  • Nieustawienie dostawy penaltyCost sprawia, że dostawa jest obowiązkowa.
  • Jawne ustawienie dostawy penaltyCost na zero powoduje, że interfejs API zawsze pomija dostawę, chyba że wymagają tego inne ograniczenia.
Vehicle fixedCost liczba Wysyłka Stały koszt stosowany, jeśli ten pojazd jest używany do obsługi dostawy.
costPerHour liczba Godzina Koszt eksploatacji pojazdu na godzinę, w tym czas przejazdu, oczekiwania, wizyty i przerwy.
Wraz ze wzrostem tego kosztu optymalizator próbuje znaleźć szybsze trasy, które mogą nie być najkrótsze.
Ta właściwość może być skutecznym samodzielnym kosztem na pojazd ze względu na swoją prostotę i kompletność.
costPerKilometer liczba Kilometr Koszt na kilometr przejechany przez pojazd, który może reprezentować koszty paliwa lub amortyzowane koszty utrzymania pojazdu.
costPerTraveledHour liczba Godzina Koszt eksploatacji pojazdu na godzinę tylko podczas przejazdu, z wyłączeniem czasu oczekiwania, wizyty i przerwy. Dzięki temu szybsze trasy mają wyższy priorytet niż krótsze.

Przykłady

Ta sekcja zawiera 3 rodzaje przykładów:

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 firmę zajmującą się opieką nad psami. Optymalizujesz trasę dla ciężarówki, której używasz do odbierania psów z ich domów. W tym scenariuszu chcesz, aby optymalizator uwzględniał koszty związane z odbiorem psów i eksploatacją pojazdu podczas wyznaczania trasy.

W tym przykładzie 1 jednostka kosztów reprezentuje 1 dolara. Oznacza to, że wartości właściwości modelu kosztów w Twoim żądaniu są następujące:

Właściwość Wartość Scenariusz
penaltyCost 10 Reprezentuje karę, którą oferujesz klientom za nieodebranie psa w zaplanowanym dniu. Jeśli nie odbierzesz psa w zaplanowanym dniu, klient otrzyma 40 dolarów zniżki na łączną kwotę usługi.
fixedCost 30 Reprezentuje dzienny koszt rat pożyczki na pojazd, który wynosi 30 dolarów dziennie.
costPerKilometer 0,08 Reprezentuje ilość benzyny, jaką Twój pojazd zużywa na kilometr. Twój pojazd potrzebuje 0,04 galona na kilometr, a koszt galona w Twoim regionie wynosi 2 dolary.
costPerHour 27 Reprezentuje kwotę, jaką płacisz kierowcy za prowadzenie pojazdu. Płacisz kierowcy 27 dolarów za godzinę.
costPerTraveledHour 2,5 Reprezentuje kwotę, jaką musisz zapłacić za klimatyzację w pojeździe na godzinę dla psów podczas jazdy. Gdy pojazd się nie porusza, kierowca może otworzyć tylne drzwi i wyłączyć klimatyzację.

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

Poniższy diagram przedstawia przykład, w którym optymalizator może wybrać dłuższą, ale szybszą trasę oznaczoną zieloną linią przerywaną, aby uniknąć korków na czerwonej linii kropkowanej.

Pojazd ma 2 możliwe trasy: jedną przedstawioną zieloną linią przerywaną, która jest dłuższa, ale nie ma na niej żadnych incydentów, i drugą przedstawioną czerwoną linią kropkowaną, która jest krótsza, ale w jej środkowej części doszło do wypadku samochodowego.

W tym scenariuszu bilans kosztów obu tras jest następujący:

Oprócz zapewniania opłacalnych tras optymalizator podaje też w właściwościach odpowiedzi sumę łącznych kosztów tras dostawy.

Przykład żądania

Poniższy przykład pokazuje strukturę podstawowego optimizeTours żądania zawierającego wartości ustawione w przykładowym scenariuszu:

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

Komunikat OptimizeToursResponse zawiera właściwości kosztów które opisują koszty poniesione w trakcie realizacji trasy:

  • metrics.costs: łączny koszt wszystkich tras podzielony według pól żądania związanych z kosztami.
  • metrics.totalCost: łączny koszt wszystkich tras.