Określa szczegóły niewykonanych dostaw w rozwiązaniu. W przypadku błahych przypadków lub jeśli możemy zidentyfikować przyczynę pominięcia, podajemy ją tutaj.
Zapis JSON |
---|
{
"index": integer,
"label": string,
"reasons": [
{
object ( |
Pola | |
---|---|
index |
Indeks odpowiada indeksowi przesyłki w źródle |
label |
Kopia odpowiedniej wartości |
reasons[] |
Lista powodów, dla których przesyłka została pominięta. Zobacz komentarz powyżej |
Przyczyna
Jeśli możemy wyjaśnić, dlaczego przesyłka została pominięta, podamy tutaj powody. Jeśli przyczyna nie jest taka sama w przypadku wszystkich pojazdów, element reason
będzie zawierał więcej niż 1 element. Przesyłka pominięta nie może mieć zduplikowanych przyczyn, czyli wszystkich pól, z wyjątkiem pola exampleVehicleIndex
. Przykład:
reasons {
code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
exampleVehicleIndex: 1
exampleExceededCapacityType: "Apples"
}
reasons {
code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
exampleVehicleIndex: 3
exampleExceededCapacityType: "Pears"
}
reasons {
code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT
exampleVehicleIndex: 1
}
Przesyłka, która została pominięta, jest niezgodna ze wszystkimi pojazdami. Powody mogą być różne w przypadku poszczególnych pojazdów, ale w przynajmniej jednym z nich przekroczona byłaby pojemność „jabłek” (w tym w samochodzie 1), w przynajmniej jednym przekroczona byłaby pojemność „jabłek” (w tym w samochodzie 3), a w przynajmniej jednym przekroczony byłby limit odległości (w tym w samochodzie 1).
Zapis JSON |
---|
{
"code": enum ( |
Pola | |
---|---|
code |
Zapoznaj się z komentarzami w kodzie. |
example |
Jeśli kod powodu to |
example |
Jeśli przyczyna dotyczy niezgodności przesyłki z pojazdem, to pole zawiera indeks odpowiedniego pojazdu. |
Kod
Kod identyfikujący typ przyczyny. Kolejność nie ma znaczenia. W szczególności nie wskazuje, czy dana przyczyna pojawi się przed inną w rozwiązaniu, jeśli obie są stosowane.
Wartości w polu enum | |
---|---|
CODE_UNSPECIFIED |
Nigdy nie należy ich używać. |
NO_VEHICLE |
W modelu nie ma żadnego pojazdu, przez co wszystkie dostawy są niemożliwe. |
DEMAND_EXCEEDS_VEHICLE_CAPACITY |
Popyt na przesyłkę przekracza pojemność pojazdu w przypadku niektórych typów pojemności, w tym exampleExceededCapacityType . |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT |
Minimalna odległość niezbędna do wykonania tej dostawy, czyli od Pamiętaj, że do tego obliczenia używamy odległości geodezyjnych. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT |
Minimalny czas potrzebny do wykonania tej dostawy, w tym czas podróży, oczekiwania i obsługi, przekracza Uwaga: czas podróży jest obliczany w najlepszym możliwym scenariuszu, czyli jako odległość geodezyjna × 36 m/s (około 130 km/h). |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT |
To samo co powyżej, ale porównujemy tylko minimalny czas podróży i travelDurationLimit pojazdu. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS |
Pojazd nie może wykonać tej dostawy w najlepszym scenariuszu (patrz CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT w celu obliczenia czasu), jeśli rozpoczyna się w najwcześniejszym możliwym czasie: łączny czas pracy pojazdu spowoduje, że zakończy on pracę po upływie najpóźniejszego czasu zakończenia. |
VEHICLE_NOT_ALLOWED |
Pole allowedVehicleIndices w przesyłce nie jest puste, a pojazd do niej nie należy. |