דרישות עומס ומגבלות הן סוג של אילוץ שאפשר להשתמש בו כדי לנהל את הקיבולת. הם מציינים את הקיבולת הנדרשת של המשלוח ואת הקיבולת המקסימלית של הרכב, וכך מאפשרים לבצע אופטימיזציה של הקצאת המסלולים על סמך האילוצים האלה.
מגבלות ועומס עבודה יכולים לתמוך ביעדים כמו:
- למנוע עומס יתר על כלי רכב.
- מעקב אחר השינויים בעומסי כלי הרכב במהלך האיסוף וההעברה של המשלוחים.
- הגבלת מספר הפעמים שכלי רכב יכול לבקר במיקום ספציפי.
הדרישות והמגבלות של העומסים מצוינות במאפיינים הבאים:
loadDemands
מציין את נפח האחסון הנדרש למשלוח מסוים.loadLimits
מציין את הקיבולת המקסימלית של רכב נתון.
מבנה
כפי שמוצג בתרשים, הדרישות והמגבלות של העומסים מחולקות באופן הבא:
loadDemands
הוא נכס שלShipment
. ל-Shipment
יכולות להיות כמה דרישות טעינה.loadLimits
הוא נכס שלVehicle
. ל-Vehicle
יכולות להיות כמה מגבלות עומס.
מאפיינים
בקטע הזה מתוארים המאפיינים של דרישות העומס והמגבלות, שהם:
- סוג עומס: מאפיין משותף בין דרישות העומס לבין המגבלות.
Load
ו-LoadLimit
: מאפיינים ייחודיים שמופיעים בבקשות העומס ובמגבלות העומס, בהתאמה.
סוג העומס
סוגי עומסים הם מפתחות מחרוזת שמזהים את סוג דרישות העומס של משלוח ואת מגבלות העומס של רכב. לסוגים של עומסי עבודה יש את המאפיינים החשובים הבאים:
- הגדרה על ידי המשתמש: סוגי העומסים הם אלה שאתם מגדירים. אין משתני מערכת מוגדרים מראש לסוגים של עומסי עבודה.
- משותף: סוגי עומסי המשא מיועדים לשיתוף בין משלוחים לבין כלי רכב. פירוש הדבר הוא שמשלוח יאכלס את קיבולת הרכב עד למגבלה שלו רק אם סוגי העומסים שלו תואמים. אם לא צוינה מגבלת עומס מסוג מסוים ברכב, הוא יכול לשאת כמות בלתי מוגבלת של סוג העומס הזה.
מפתחות המחרוזות שמייצגים את סוגי העומסים משתמשים בתחביר של סוג המפה של Protocol Buffers. כדי למנוע בעיות, אסור שהמפתחות של המחרוזות יהיו null. כשנותנים שם לסוג עומס, מומלץ להשתמש במזהים שמתארים את סוג העומס ואת היחידות שלו. לדוגמה: weightKg, volume_gallons, palletcount או frequencyDaily.
Load
וגם LoadLimit
האובייקטים Load
ו-LoadLimit
מכילים מאפיינים ספציפיים להגדרת דרישות הקיבולת של משלוחים וכלי רכב. המאפיינים האלה מתוארים בטבלה הבאה:
אובייקט | הורה | נכס | סוג הנכס | תיאור הנכס |
---|---|---|---|---|
Load |
loadDemands |
amount |
מחרוזת (בפורמט int64) | הגדרת דרישת הקיבולת של המשלוח בסוג שצוין. |
LoadLimit |
loadLimits |
maxLoad |
מחרוזת (בפורמט int64) | הגדרת קיבולת העומס המקסימלית של הרכב בסוג שצוין. |
דוגמאות
בדוגמה הבאה מוצג המבנה של בקשת עומס, שבו אפשר להגדיר את הסוג loadDemands
כמחרוזת ואת המאפיין amount
כמחרוזת בפורמט int64:
"loadDemands": {
"MATCHING_LOAD_TYPE ": {
"amount": "YOUR_LOAD_AMOUNT "
}
}
בדוגמה הבאה מוצג המבנה הבסיסי ביותר של מגבלת עומס, שבו אפשר להגדיר את הסוג loadLimits
כמחרוזת, ואת המאפיין maxLoad
כמחרוזת בפורמט int64:
"loadLimits": {
"MATCHING_LOAD_TYPE ": {
"maxLoad": "YOUR_MAX_LOAD "
}
}
רוצה לנסות?
אפשר להשתמש בדוגמאות הקוד שלמעלה כדי ליצור תרחיש בדיוני. בתרחיש הזה, יש לכם משלוח במשקל 10 ק"ג ויש לכם רכב שיכול לשאת 100 ק"ג:
בדוגמה
loadDemands
, מגדירים את סוג העומס כ-weightKg
.לאחר מכן, גם סוג העומס בדוגמה
loadLimits
יאוכלס, וישתף את סוג העומס. חשוב לזכור שהסוגים שלloadDemands
ו-loadLimits
צריכים להתאים כדי שהמשלוח יעמוד במגבלות של הרכב.באותה דוגמה של
loadDemands
, מגדירים את המאפייןamount
לערך10
.כלומר, משקל המשלוח הוא 10 קילוגרמים.
בדוגמה
loadLimits
, מגדירים את המאפייןmaxLoad
לערך100
.המשמעות היא שהרכב יכול לשאת עד 100 קילוגרם.
חשוב לזכור שאין קבוצה של סוגים מוגדרים מראש. בדוגמה הזו, אפשר לשנות את הקילוגרמים לנקודות, או לשנות אותם למדידות לינאריות במקום למשקלים. הגמישות הזו מאפשרת לכם להתאים את הביקוש ועומסי העומס לצרכים הספציפיים שלכם.
דוגמה לבקשה
בדוגמה הבאה מוצג המבנה של בקשת optimizeTours
בסיסית עם loadDemands
בשליחה ו-loadLimits
ברכב:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 00.000000, "longitude": 00.000000 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 00.000000, "longitude": 00.000000 } } ], "loadDemands": { "MATCHING_LOAD_TYPE ": { "amount": "YOUR_LOAD_AMOUNT " } } } ], "vehicles": [ { "startLocation": { "latitude": 00.000000, "longitude": 00.000000 }, "endLocation": { "latitude": 00.000000, "longitude": 00.000000 }, "costPerKilometer": 1.0, "loadLimits": { "MATCHING_LOAD_TYPE ": { "maxLoad": "YOUR_MAX_LOAD " } } } ] } }
חשוב לזכור שלמשלוח יכולות להיות כמה דרישות טעינה, ולרכב יכולות להיות כמה מגבלות טעינה. כך תוכלו להגדיר אילוצים מורכבים שמערכת האופטימיזציה תיקח בחשבון כשהיא תבצע אופטימיזציה של המסלולים של הצי.