Jak opisano pokrótce w sekcji Omówienie optymalizacji trasy, podstawowe żądanie składa się z elementów Model, Przesyłki i Pojazdy jako wymagane podmioty:
- Model przechwytuje ustawienia i ograniczenia dla całego żądania,
obejmujące zarówno
Shipments
, jak iVehicles
. - Przesyłki przedstawiają zadania lub rzeczywiste przesyłki, które obejmują odbiór
czas dostawy:
VisitRequest
. Przesyłki mają lokalne ustawienia i ograniczenia. - Pojazdy to pojazdy, kierowcy lub personel. Pojazdy mają też ustawienia lokalne i ograniczenia.
Właściwości każdego elementu opisują część problemu optymalizacji w na określonym poziomie szczegółowości. Ograniczenia dotyczące całego modelu są stosowane do wszystkich przesyłek i pojazdów, z uwzględnieniem ograniczeń i właściwości określonych w dostawach dotyczą tylko jednej przesyłki lub pojazdu.
Pełną dokumentację poszczególnych typów wiadomości znajdziesz w dokumentacji referencyjnej
dla ShipmentModel
(REST, gRPC), Shipment
(REST, gRPC),
i Vehicle
(REST, gRPC).
OptimizeToursRequest
miejsca zakwaterowania
Oto niektóre często używane właściwości wiadomości OptimizeToursRequest
najwyższego poziomu (REST, gRPC):
searchMode
wskazuje, czy zwrócić pierwsze satysfakcjonujące rozwiązanie. określone ograniczenia lub znaleźć najlepsze możliwe rozwiązanie w zbiorze .considerRoadTraffic
określa, czy używany jest aktualny ruch wyznaczania tras i szacowania szacowanego czasu dotarcia na miejsce.populateTransitionPolylines
określa, czy linie łamane trasy są tokeny tras są zwracane w odpowiedzi.
Właściwości modelu
Oto niektóre często używane właściwości wiadomości ShipmentModel
(REST, gRPC):
globalStartTime
to najwcześniejszy czas rozpoczęcia trasy dla wszystkich pojazdów i przesyłek. Żaden pojazd nie może rozpocząć pierwszego przenoszenia. wysyłek przed tym terminem.globalEndTime
przedstawia najnowszy czas zakończenia tras we wszystkich pojazdach i przesyłki. Wszystkie przypisane przesyłki i przenoszenie muszą zostać ukończone przed tym terminem.
Właściwości dostawy
Niektóre często używane właściwości komunikatu Shipment
(REST, gRPC)
uwzględnij:
pickups[]
ideliveries[]
wskazują, gdzie można odebrać przesyłkę lub przestali żyć. Usługipickups[]
ideliveries[]
używają parametru KomunikatVisitRequest
(REST, gRPC).loadDemands
to ładunek wymagany, aby pojazd mógł przeprowadzić dostawę. Samochody odpowiednieload_limits
(REST, gRPC) określa, jaki ładunek może obsłużyć pojazd w danym momencie. Więcej informacji o obciążeniu znajdziesz w artykule Wymagania i limity obciążenia.penalty_cost
to koszt naliczany w przypadku pominięcia dostawy. Odczytano znajdziesz więcej informacji o kosztach w parametrach modelu kosztu.
Właściwości pojazdu
Oto niektóre często używane właściwości wiadomości Vehicle
(REST, gRPC):
startLocation
oznacza miejsce, w którym pojazd musi rozpocząć trasę. Ta właściwość jest opcjonalna. Jeśli go nie podasz, trasa pojazdu zacznie się w lokalizacji pierwszej przypisanej przesyłki.endLocation
oznacza miejsce, w którym pojazd musi zakończyć trasę. Ta właściwość jest opcjonalna. Jeśli nie podasz tych danych, trasa pojazdu zakończy się w lokalizacji: ostatnią przypisaną przesyłkę.startTimeWindows[]
oznacza, kiedy pojazd może rozpocząć trasę. Ten jest opcjonalna.endTimeWindows[]
oznacza, kiedy pojazd może rozpocząć i zakończyć trasę. Obie właściwości są opcjonalne.loadLimits
to ładowność pojazdu, która jest dostępna do zaspokojenia zapotrzebowania na ładunek. Więcej informacji o wymaganiach i limitach obciążenia znajdziesz w artykułach Żądania obciążenia i Limity.
Pełne przykładowe żądanie w formacie JSON wygląda tak:
{
"model": {
"shipments": [
{
"pickups": [
{
"arrivalLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
}
}
],
"deliveries": [
{
"arrivalLocation": {
"latitude": 37.79581,
"longitude": -122.4218856
}
}
]
}
],
"vehicles": [
{
"startLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"endLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"costPerKilometer": 1.0
}
],
"globalStartTime": "2024-02-13T00:00:00.000Z",
"globalEndTime": "2024-02-14T06:00:00.000Z"
}
}
OptimizeTours
i BatchOptimizeTours
używają wiadomości z żądaniem w sposób podobny do opisanego powyżej, ale w różny sposób. Przed utworzeniem optymalizacji trasy
ważne jest, aby znać różnice między tymi metodami: