Odpowiedź po rozwiązaniu problemu optymalizacji wycieczki obejmującego trasy, po których porusza się każdy pojazd, pominięte przesyłki i całkowity koszt rozwiązania.
Zapis JSON |
---|
{ "routes": [ { object ( |
Pola | |
---|---|
routes[] |
Trasy obliczone dla każdego pojazdu; i-ta trasa odpowiada i-temu pojazdowi w modelu. |
requestLabel |
Kopia |
skippedShipments[] |
Lista wszystkich pominiętych przesyłek. |
validationErrors[] |
Lista wszystkich błędów weryfikacji, które udało nam się wykryć niezależnie. Zobacz wyjaśnienie „WIELE BŁĘDÓW” dotyczące komunikatu |
metrics |
Czas trwania, odległość i wskaźniki wykorzystania w tym rozwiązaniu. |
OptimizeToursValidationError
Opisuje błąd lub ostrzeżenie napotkane podczas weryfikowania elementu OptimizeToursRequest
.
Zapis JSON |
---|
{
"code": integer,
"displayName": string,
"fields": [
{
object ( |
Pola | |
---|---|
code |
Błąd weryfikacji jest definiowany przez parę ( Pola w sekcji po tej sekcji zawierają więcej informacji o błędzie. WIELU BŁĘDÓW: jeśli wystąpiło wiele błędów, proces weryfikacji próbuje zwrócić kilka z nich. Ten proces, podobnie jak w przypadku kompilatora, nie jest idealny. Niektóre błędy weryfikacji są „krytyczne”, co oznacza, że zatrzymują cały proces weryfikacji. Dotyczy to m.in. błędów STABILNOŚĆ: |
displayName |
Wyświetlana nazwa błędu. |
fields[] |
Kontekst błędu może mieć wartość 0, 1 (w większości przypadków) lub większą liczbę pól. W przypadku np. w przypadku pojazdu nr 4 i pierwszej dostawy nr 2 można wykonać te czynności:
Pamiętaj jednak, że moc zbioru funkcji |
errorMessage |
Zrozumiały dla człowieka ciąg tekstowy opisujący błąd. Między Stabilność: niestabilna: komunikat o błędzie powiązany z danym parametrem |
offendingValues |
Może zawierać wartości pól. Ta opcja nie jest zawsze dostępna. Nie należy polegać wyłącznie na tym narzędziu i używać go wyłącznie do ręcznego debugowania modelu. |
FieldReference
Określa kontekst błędu weryfikacji. FieldReference
zawsze odnosi się do danego pola w tym pliku i ma taką samą strukturę hierarchiczną. Możemy na przykład określić element 2 w elementach startTimeWindows
pojazdu 5 za pomocą:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
Jednak pomijamy elementy najwyższego poziomu, takie jak OptimizeToursRequest
lub ShipmentModel
, aby nie zaśmiecać wiadomości.
Zapis JSON |
---|
{ "name": string, "subField": { object ( |
Pola | |
---|---|
name |
Nazwa pola, np. „pojazdy”. |
subField |
W razie potrzeby zagnieżdżone pole podrzędne. |
Pole sumy
|
|
index |
Indeks pola, jeśli jest powtarzany. |
key |
Klucz, jeśli pole jest mapą. |
Dane
Ogólne dane, zagregowane na podstawie wszystkich tras.
Zapis JSON |
---|
{
"aggregatedRouteMetrics": {
object ( |
Pola | |
---|---|
aggregatedRouteMetrics |
Dane zbiorcze dotyczące tras. Każde dane to suma (lub wartość maksymalna w przypadku obciążeń) wszystkich pól |
skippedMandatoryShipmentCount |
Liczba pominiętych przesyłek obowiązkowych. |
usedVehicleCount |
Liczba używanych pojazdów. Uwaga: jeśli trasa pojazdu jest pusta, a wartość atrybutu |
earliestVehicleStartTime |
Najwcześniejszy czas uruchomienia używanego pojazdu, obliczany jako minimum dla wszystkich używanych pojazdów w okresie Sygnatura czasowa w formacie RFC3339 UTC „Zulu” z rozdzielczością nanosekundy i maksymalnie 9 cyframi po przecinku. Przykłady: |
latestVehicleEndTime |
Najpóźniejszy czas zakończenia dla używanego pojazdu, obliczony jako maksymalny dla wszystkich używanych pojazdów Sygnatura czasowa w formacie RFC3339 UTC „Zulu” z rozdzielczością nanosekundy i maksymalnie 9 cyframi po przecinku. Przykłady: |
costs |
Koszt rozwiązania z podziałem na pola żądania związane z kosztami. Klucze to ścieżki proto, odnoszące się do wejścia OptimizeToursRequest, np. „model.shipments.pickups.cost”, a wartości to łączny koszt wygenerowany przez odpowiednie pole kosztu, zsumowany w całym rozwiązaniu. Inaczej mówiąc, koszt["model.shipments.pickups.cost"] to suma wszystkich kosztów odbioru w ramach danego rozwiązania. Wszystkie koszty zdefiniowane w modelu są uwzględnione w szczegółowym raporcie z wyjątkiem kosztów związanych z atrybutami przejścia, które od 2022 roku są raportowane tylko w postaci zbiorczej. |
totalCost |
Całkowity koszt rozwiązania. Suma wszystkich wartości na mapie kosztów. |