Określa szczegóły niezrealizowanych dostaw w rozwiązaniu. W najprostszych przypadkach lub jeśli jesteśmy w stanie zidentyfikować przyczynę pominięcia, podajemy tutaj jej przyczynę.
Zapis JSON |
---|
{
"index": integer,
"label": string,
"reasons": [
{
object ( |
Pola | |
---|---|
index |
Indeks odpowiada indeksowi przesyłki w źródle |
label |
Kopia odpowiedniego pola |
reasons[] |
Lista powodów, dla których dostawa została pominięta. Zobacz komentarz powyżej |
Przyczyna
Jeśli będziemy mogli wyjaśnić, dlaczego przesyłka została pominięta, tutaj znajdziesz jej powody. Jeśli powód nie jest taki sam dla wszystkich pojazdów, reason
będzie mieć więcej niż 1 element. Pominięta przesyłka nie może mieć zduplikowanych powodów, tj. gdy wszystkie pola są takie same oprócz 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
}
Pominięta przesyłka jest niezgodna ze wszystkimi pojazdami. Przyczyny mogą być różne w przypadku wszystkich pojazdów, ale w co najmniej jednym z nich przekroczyłaby pojemność (w tym pojazd nr 1), co najmniej 1 pojazd „Gruszki” przekroczyłaby pojemność (w tym pojazd nr 3) i przekroczyła limit odległości w przypadku co najmniej 1 pojazdu (w tym pojazdu 1).
Zapis JSON |
---|
{
"code": enum ( |
Pola | |
---|---|
code |
Więcej informacji znajdziesz w komentarzach do kodu. |
exampleExceededCapacityType |
Jeśli kod przyczyny to |
exampleVehicleIndex |
Jeśli przyczyna jest niezgodność między pojazdem transportowym i wysyłką, w tym polu znajdziesz indeks jednego odpowiedniego pojazdu. |
Kod
Kod identyfikujący typ przyczyny. Ta kolejność jest bez znaczenia. W szczególności nie wskazuje, czy dana przyczyna pojawi się wcześniej w rozwiązaniach, jeśli oba te warunki będą spełnione.
Wartości w polu enum | |
---|---|
CODE_UNSPECIFIED |
Nie należy ich nigdy używać. Jeśli nie będziemy mogli zrozumieć, dlaczego przesyłka została pominięta, zwracamy po prostu pusty zestaw powodów. |
NO_VEHICLE |
W modelu nie ma żadnego pojazdu, co uniemożliwiałoby realizację wszystkich dostaw. |
DEMAND_EXCEEDS_VEHICLE_CAPACITY |
Zapotrzebowanie na dostawę przekracza pojemność pojazdu w przypadku niektórych typów pojemności, z których jeden wynosi exampleExceededCapacityType . |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT |
Minimalna odległość wymagana do realizacji tej przesyłki, tj. od Pamiętaj, że w tych obliczeniach używamy odległości geodezyjnych. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT |
Minimalny czas niezbędny do wykonania tej przesyłki, w tym czas podróży, czas oczekiwania i obsługa, przekracza Uwaga: czas podróży jest obliczany według najlepszego przypadku, czyli odległość geodezyjna x 36 m/s (około 130 km/h). |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT |
Tak jak powyżej, ale porównujemy tylko minimalny czas podróży z travelDurationLimit pojazdu. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS |
Pojazd nie może zrealizować tej wysyłki w najlepszym przypadku (wyliczenie czasu znajdziesz na stronie CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT ), jeśli rozpoczyna się najwcześniej w momencie rozpoczęcia. W związku z tym całkowity czas zakończenia pracy pojazdu spowoduje, że zakończy się on po najpóźniejszej godzinie zakończenia. |
VEHICLE_NOT_ALLOWED |
Pole allowedVehicleIndices przesyłki nie jest puste, a pojazd do niego nie należy. |