Model kosztu

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

Głównym celem Route Optimization API jest znajdowanie tras o najniższym koszcie. W związku z tym model kosztów jest głównym czynnikiem optymalizacji tras.

Model kosztów to zestaw właściwości, które określają koszty globalne, koszty pojazdów i koszty przesyłek.

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

  • Efektywne przypisywanie pojazdów i wyznaczanie tras
  • ekonomiczne terminy odbioru i dostawy,
  • Priorytetowe traktowanie przesyłek o kluczowym znaczeniu

Struktura

Jak widać na diagramie, właściwości modelu kosztów mają taką strukturę:

W tym dokumencie omówiono tylko najważniejsze parametry modelu kosztów. 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 Ci sprawdzić żądanie 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 miejsca zakwaterowania
Shipment penaltyCost liczba Pominięta dostawa Koszt poniesiony w wyniku pominięcia dostawy.
Interfejs API pomija przesyłkę, gdy koszt jej realizacji przekracza koszt kary.
  • Ustawienie penaltyCost nadaje priorytet dostawie przesyłek o wyższym koszcie.
  • Jeśli nie ustawisz penaltyCost przesyłki, będzie ona obowiązkowa.
  • Jeśli wyraźnie ustawisz wartość penaltyCost przesyłki na 0, interfejs API będzie zawsze pomijać tę przesyłkę, 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 przesyłki.
costPerHour liczba Godzina Koszt eksploatacji pojazdu na godzinę, w tym czas przejazdu, oczekiwania, wizyty i przerwy.
W miarę wzrostu 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 pojazdu ze względu na prostotę i kompletność.
costPerKilometer liczba Kilometr Koszt przejechania kilometra przez pojazd, który może obejmować koszty paliwa lub amortyzowane koszty utrzymania pojazdu.
costPerTraveledHour liczba Godzina Koszt eksploatacji pojazdu na godzinę tylko podczas jazdy, z wyłączeniem czasu oczekiwania, wizyty i przerw. Dzięki temu szybsze trasy będą miały priorytet nad krótszymi.

Przykłady

W tej sekcji znajdziesz 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ład

W tej sekcji opisujemy scenariusz, w którym prowadzisz hotel dla psów. Optymalizujesz trasę dla ciężarówki, którą odbierasz psy 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 kosztu odpowiada 1 zł. Oznacza to, że wartości właściwości modelu kosztów w żądaniu są następujące:

Właściwość Wartość Scenariusz
penaltyCost 10 Represents the penalty you offer to your customers for not picking up their dog on a scheduled day. Za każdym razem, gdy nie odbierzesz psa w zaplanowanym dniu, klient otrzyma 40 USD zniżki na całą usługę.
fixedCost 30 Reprezentuje dzienny koszt spłaty kredytu na pojazd, który wynosi 30 USD dziennie.
costPerKilometer 0,08 Wskazuje, ile benzyny zużywa Twój pojazd na kilometr. Twój pojazd potrzebuje 0,04 galona na kilometr, a koszt galona w Twoim regionie wynosi 2 dolary.
costPerHour 27 Wskazuje, ile płacisz kierowcy za prowadzenie pojazdu. Płacisz kierowcy 27 USD za godzinę.
costPerTraveledHour 2,5 Wskazuje, ile musisz zapłacić za godzinę działania klimatyzacji w pojeździe dla psów podczas podróży. Gdy pojazd się nie porusza, kierowca może otworzyć drzwi z tyłu 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 przedstawia przykład, w którym optymalizator może wybrać dłuższą, ale szybszą trasę (zielona przerywana linia), aby uniknąć ruchu na czerwonej kropkowanej linii.

Pojazd ma 2 możliwe trasy: jedną oznaczoną zieloną przerywaną linią, która jest dłuższa, ale nie ma na niej żadnych zdarzeń, i drugą oznaczoną czerwoną kropkowaną linią, która jest krótsza, ale pośrodku niej doszło do wypadku samochodowego.

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

Oprócz opłacalnych tras optymalizator podaje też we właściwościach odpowiedzi sumę całkowitych kosztów tras dostawy.

Przykładowe żądanie

Poniższy przykład pokazuje strukturę podstawowego żądania optimizeTours, które zawiera 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

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

  • metrics.costs: łączny koszt wszystkich tras z podziałem na pola żądania związane z kosztami.
  • metrics.totalCost: łączny koszt wszystkich tras.