מציין פרטים של משלוחים שלא בוצעו בפתרון. במקרים טריוויאליים ו/או אם אנחנו יכולים לזהות את הסיבה לדילוג, אנחנו מדווחים על הסיבה כאן.
ייצוג JSON |
---|
{
"index": integer,
"label": string,
"reasons": [
{
object ( |
שדות | |
---|---|
index |
האינדקס תואם לאינדקס המשלוח במקור |
label |
עותק של |
reasons[] |
רשימת סיבות שמסבירות את הסיבה לדילוג על המשלוח. הצגת התגובה מעל |
סיבה
אם נוכל להסביר את הסיבה לדילוג על המשלוח, הסיבות יופיעו כאן. אם הסיבה לא זהה בכל הרכבים, ב-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 |
יש לעיין בהערות של Code. |
exampleExceededCapacityType |
אם קוד הסיבה הוא |
exampleVehicleIndex |
אם הסיבה קשורה לאי-תאימות של כלי רכב מסוימים, בשדה הזה מופיע האינדקס של רכב רלוונטי אחד. |
קוד
קוד שמזהה את סוג הסיבה. ההזמנה הזו חסרת משמעות. באופן ספציפי, המערכת לא מורה אם סיבה נתונה תופיע לפני הסיבה השנייה בפתרון, אם שתיהן רלוונטיות.
טיפוסים בני מנייה (enums) | |
---|---|
CODE_UNSPECIFIED |
אסור להשתמש באפשרות הזו אף פעם. אם אנחנו לא יכולים להבין למה דילגת על המשלוח, נחזיר קבוצה ריקה של סיבות. |
NO_VEHICLE |
אין במודל רכב שלא מאפשר לבצע את כל המשלוחים. |
DEMAND_EXCEEDS_VEHICLE_CAPACITY |
הביקוש במשלוח חורג מהקיבולת של כלי רכב מסוימים מסוגי הקיבולת, שאחד מהם הוא exampleExceededCapacityType . |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT |
המרחק המינימלי הנדרש לביצוע המשלוח, כלומר מ שימו לב שלחישוב הזה אנחנו משתמשים במרחקים גיאודזיים. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT |
הזמן המינימלי הנדרש לביצוע המשלוח הזה, כולל זמן הנסיעה, זמן ההמתנה וזמן השירות, חורג מ- הערה: זמן הנסיעה מחושב במקרה הטוב ביותר, כלומר במרחק גיאודזי 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 של המשלוח לא ריק והרכב הזה לא שייך לו. |