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 zestaw właściwości określających 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
- Ustalanie priorytetów w przypadku przesyłek o krytycznym znaczeniu
Struktura
Jak widać na diagramie, właściwości modelu kosztów są ustrukturyzowane w ten sposób:
Shipment
zawiera właściwośćpenaltyCost
.Vehicle
zawiera te właściwości:
Ten dokument zawiera 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 niezbędne informacje, które pozwolą uniknąć potencjalnych błędów związanych z kosztami. Ta lista pomoże Ci zweryfikować żądanie i rozwiązać problemy z odpowiedzią.
Właściwości
W tabeli poniżej znajdziesz właściwości modelu kosztów.
Rodzic | Nazwa usługi | Typ obiektu | Koszt za | Opis nieruchomości |
---|---|---|---|---|
Shipment |
penaltyCost |
liczba | Pominięta dostawa | Koszt poniesiony w wyniku pominięcia przesyłki. Interfejs API pomija przesyłkę, gdy koszt jej realizacji przekracza koszt kary.
|
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. 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 przejechania kilometra, np. koszt paliwa i amortyzacji pojazdu. | |
costPerTraveledHour |
liczba | Godzina | Koszt eksploatacji pojazdu na godzinę tylko podczas przejazdu, z wyłączeniem czasu oczekiwania, wizyty i przerwy. W tym przypadku priorytetem są szybsze trasy, a nie krótsze. |
Przykłady
W tej sekcji znajdziesz 3 rodzaje przykładów:
- Przykłady kodu ilustrujące strukturę właściwości modelu kosztów.
- Przykładowy scenariusz, który pokazuje jeden ze sposobów wykorzystania właściwości modelu kosztów do osiągnięcia celu biznesowego.
- Przykładowe żądanie, które zawiera wartości ustawione w scenariuszu przykładowym.
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
W tej sekcji opisujemy scenariusz, w którym prowadzisz firmę zajmującą się opieką nad psami. 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 odbieraniem psów i eksploatacją pojazdów podczas wyznaczania trasy.
W tym przykładzie 1 jednostka kosztu to 1 zł. Oznacza to, że wartości właściwości cost_model w Twoim żądaniu są następujące:
Właściwość | Wartość | Scenariusz |
---|---|---|
penaltyCost |
10 | Określa karę, którą oferujesz klientom za nieodebranie psa w zaplanowanym dniu. Jeśli nie odbierzesz psa w zaplanowanym dniu, klient otrzyma 40 zł zniżki na łączną kwotę za usługę. |
fixedCost |
30 | Reprezentuje dzienny koszt rat pożyczki na pojazd, który wynosi 30 zł dziennie. |
costPerKilometer |
0,08 | Wskaźnik, który informuje, ile paliwa zużywa Twój pojazd na kilometr. Twój pojazd potrzebuje 0,04 galona na kilometr, a cena za galon w Twoim regionie wynosi 2 dolary. |
costPerHour |
27 | Określa, ile płacisz kierowcy za prowadzenie Twojego pojazdu. Płacisz kierowcy 27 zł za godzinę. |
costPerTraveledHour |
2,5 | Informuje, ile 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 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ę oznaczoną zieloną linią przerywaną, aby uniknąć korków na trasie oznaczonej czerwoną linią kropkowaną.
W tym scenariuszu bilans kosztów obu tras jest następujący:
Zielona linia przerywana ma niskie wartości
costPerHour
icostPerTraveledHour
, ponieważ jest to szybka trasa, na której nie ma korków, co jest bardziej opłacalne nawet wtedy, gdy wartośćcostPerKilometer
jest wysoka.Czerwona linia przerywana ma niski
costPerKilometer
, ponieważ jest to trasa bezpośrednia, alecostPerHour
icostPerTraveledHour
są zbyt wysokie ze względu na czas oczekiwania w korkach, co sprawia, że jest to najdroższa trasa.
Oprócz podawania opłacalnych tras optymalizator udostępnia też sumę łącznych kosztów tras dostawy we właściwościach odpowiedzi.
Przykładowe żądanie
Poniższy przykład pokazuje strukturę podstawowego żądania optimizeTours
z wartościami ustawionymi 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 realizacji trasy:
metrics.costs
: łączny koszt wszystkich tras podzielony według pól żądania związanych z kosztem.metrics.totalCost
: łączny koszt wszystkich tras.