SkippedShipment

מציין פרטים של משלוחים שלא בוצעו בפתרון. במקרים טריוויאליים ו/או אם אנחנו יכולים לזהות את הסיבה לדילוג, אנחנו מדווחים על הסיבה כאן.

ייצוג JSON
{
  "index": integer,
  "label": string,
  "reasons": [
    {
      object (Reason)
    }
  ]
}
שדות
index

integer

האינדקס תואם לאינדקס המשלוח במקור ShipmentModel.

label

string

עותק של Shipment.label המתאים, אם צוין ב-Shipment.

reasons[]

object (Reason)

רשימת סיבות שמסבירות את הסיבה לדילוג על המשלוח. הצגת התגובה מעל Reason.

סיבה

אם נוכל להסביר את הסיבה לדילוג על המשלוח, הסיבות יופיעו כאן. אם הסיבה לא זהה בכל הרכבים, ב-reason יהיה יותר מרכיב אחד. לא יכולות להיות סיבות כפולות למשלוח שדילגת עליו, כלומר, כל השדות זהים מלבד exampleVehicleIndex. דוגמה:

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
}

המשלוח שדילגת עליו לא תואם לכל כלי הרכב. הסיבות עשויות להיות שונות בכל כלי הרכב, אבל תהיה חריגה מקיבולת 'תפוחים' של רכב אחד לפחות (כולל רכב 1), תהיה חריגה מקיבולת 'אגסים' של רכב אחד לפחות (כולל רכב 3) ותחרוג לפחות ממגבלת המרחק של רכב אחד (כולל רכב 1).

ייצוג JSON
{
  "code": enum (Code),
  "exampleExceededCapacityType": string,
  "exampleVehicleIndex": integer
}
שדות
code

enum (Code)

יש לעיין בהערות של Code.

exampleExceededCapacityType

string

אם קוד הסיבה הוא DEMAND_EXCEEDS_VEHICLE_CAPACITY, מתעדת חריגה מסוג אחד של קיבולת.

exampleVehicleIndex

integer

אם הסיבה קשורה לאי-תאימות של כלי רכב מסוימים, בשדה הזה מופיע האינדקס של רכב רלוונטי אחד.

קוד

קוד שמזהה את סוג הסיבה. ההזמנה הזו חסרת משמעות. באופן ספציפי, המערכת לא מורה אם סיבה נתונה תופיע לפני הסיבה השנייה בפתרון, אם שתיהן רלוונטיות.

טיפוסים בני מנייה (enums)
CODE_UNSPECIFIED אסור להשתמש באפשרות הזו אף פעם. אם אנחנו לא יכולים להבין למה דילגת על המשלוח, נחזיר קבוצה ריקה של סיבות.
NO_VEHICLE אין במודל רכב שלא מאפשר לבצע את כל המשלוחים.
DEMAND_EXCEEDS_VEHICLE_CAPACITY הביקוש במשלוח חורג מהקיבולת של כלי רכב מסוימים מסוגי הקיבולת, שאחד מהם הוא exampleExceededCapacityType.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT

המרחק המינימלי הנדרש לביצוע המשלוח, כלומר מstartLocation של הרכב אל נקודות האיסוף ו/או המיקום של המשלוח, ואל מיקום הסיום של הרכב, חורג מ-routeDistanceLimit של הרכב.

שימו לב שלחישוב הזה אנחנו משתמשים במרחקים גיאודזיים.

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT

הזמן המינימלי הנדרש לביצוע המשלוח הזה, כולל זמן הנסיעה, זמן ההמתנה וזמן השירות, חורג מ-routeDurationLimit של הרכב.

הערה: זמן הנסיעה מחושב במקרה הטוב ביותר, כלומר במרחק גיאודזי x 36 מטרים לשנייה (בסביבות 130 ק"מ לשעה).

CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT כמו למעלה, אבל אנחנו משווים רק בין זמן הנסיעה המינימלי לבין travelDurationLimit של הרכב.
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS הרכב לא יכול לבצע את המשלוח הזה בתרחיש המקרה הטוב ביותר (ראו CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT לחישוב זמן) אם הוא מתחיל בשעת ההתחלה המוקדמת ביותר: הזמן הכולל יגרום לכך שהרכב יסתיים אחרי שעת הסיום האחרונה שלו.
VEHICLE_NOT_ALLOWED השדה allowedVehicleIndices של המשלוח לא ריק והרכב הזה לא שייך לו.