Głównym celem interfejsu Route Optimization API jest znajdowanie tras o najniższym koszcie. Model kosztów jest więc głównym czynnikiem optymalizacji tras.
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;
- priorytetowe traktowanie przesyłek o krytycznym znaczeniu.
Struktura
Jak pokazano na diagramie, właściwości modelu kosztów są uporządkowane w ten sposób:
Shipmentzawiera właściwośćpenaltyCost.Vehiclezawiera 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 referencyjnej.
Lista kontrolna podstawowych informacji
Ta lista kontrolna zawiera podstawowe informacje , które pomogą Ci 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 listę i opis właściwości modelu kosztów.
| Ma dzieci | Nazwa usługi | Typ obiektu | Koszt za | Opis właściwości |
|---|---|---|---|---|
Shipment |
penaltyCost |
liczba | Pominięta przesyłka | 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 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ą priorytet przed krótszymi. |
Przykłady
W tej sekcji znajdziesz 3 rodzaje przykładów:
- Przykłady kodu , które ilustrują strukturę właściwości modelu kosztów.
- Przykładowy scenariusz , który pokazuje, jak używać właściwości modelu kosztów do osiągania celów biznesowych.
- Przykład żądania , który zawiera wartości ustawione w przykładowym scenariuszu.
Przykładowe fragmenty kodu
Ten przykładowy kod pokazuje strukturę właściwości modelu kosztów w
Shipment:
{ "model": { "shipments": [ ... { "penaltyCost": PENALTY_COST } ], "vehicles": [ ... ] } }
Ten 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 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 rabat w wysokości 40 dolarów od łącznej kwoty usługi. |
fixedCost |
30 | Reprezentuje dzienny koszt rat kredytu samochodowego, 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.
Na ilustracji poniżej przedstawiono 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.

W tym scenariuszu bilans kosztów obu tras jest następujący:
Zielona linia przerywana ma niski
costPerHouricostPerTraveledHour, ponieważ jest to szybka trasa omijająca korki, co jest bardziej opłacalne nawet wtedy, gdycostPerKilometerjest wysoki.Czerwona linia kropkowana ma niski
costPerKilometer, ponieważ jest to trasa bezpośrednia, alecostPerHouricostPerTraveledHoursą zbyt wysokie ze względu na czas oczekiwania w korkach, co sprawia, że jest to najdroższa trasa.
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.