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:
Shipment
zawiera właściwośćpenaltyCost
.Vehicle
zawiera te właściwości:
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.
|
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.
W tym scenariuszu saldo kosztów obu tras jest następujące:
Zielona przerywana linia ma niski
costPerHour
icostPerTraveledHour
, ponieważ jest to szybka trasa omijająca korki, co jest bardziej opłacalne, nawet gdycostPerKilometer
jest wysoka.Czerwona linia kropkowana ma niską wartość
costPerKilometer
, ponieważ jest to trasa bezpośrednia, ale wartościcostPerHour
icostPerTraveledHour
są zbyt wysokie ze względu na czas oczekiwania w korku, co czyni ją najdrożniejszą trasą.
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:
metrics.costs
: łączny koszt wszystkich tras podzielony na pola żądania związane z kosztami.metrics.totalCost
: łączny koszt wszystkich tras.