כפי שמתואר בקצרה בקטע סקירה כללית על אופטימיזציית מסלולים, בקשה בסיסית מורכבת מהישויות הנדרשות דגם, משלוחים וכלי רכב:
- Model מתעד את ההגדרות והאילוצים של הבקשה כולה, כולל
Shipments
ו-Vehicles
. - משלוחים מייצגים משימות או משלוחים בפועל שכוללים
VisitRequest
של איסוף ומשלוח. להזמנות יש הגדרות ומגבלות מקומיות. - כלי רכב מייצגים כלי רכב, נהגים או אנשי צוות. לכלי הרכב יש גם הגדרות ומגבלות מקומיות.
המאפיינים של כל ישות מתארים חלק מבעיית אופטימיזציה ברמת פירוט מסוימת. אילוצים ברמת המודל חלים על כל המשלוחים והרכבים, ואילוצים ומאפיינים שצוינו במשלוחים או ברכב ספציפיים לכל משלוח או רכב.
למסמכי עזר מלאים לגבי כל סוג הודעה, אפשר לעיין במסמכי העזר של ShipmentModel
(REST, gRPC), Shipment
(REST, gRPC) ו-Vehicle
(REST, gRPC).
OptimizeToursRequest
מלונות
אלה כמה מהמאפיינים הנפוצים של הודעת OptimizeToursRequest
ברמה העליונה (REST, gRPC):
searchMode
מציין אם להחזיר את הפתרון הראשון שעונה על האילוצים שצוינו או למצוא את הפתרון הטוב ביותר האפשרי עד למועד היעד שנקבע.considerRoadTraffic
קובע אם נעשה שימוש בנתוני תנועה בזמן אמת לצורך חישוב מסלולים והערכת זמן הגעה משוער.populateTransitionPolylines
קובע אם הקווים פוליגוניים ואסימוני הניתוב מוחזרים בתגובה או לא.
מאפייני המודל
דוגמאות למאפיינים נפוצים של ההודעה ShipmentModel
(REST, gRPC):
- השדה
globalStartTime
מייצג את שעת ההתחלה המוקדמת ביותר של המסלולים בכל כלי הרכב והמשלוחים. אסור להתחיל את ההעברות והמשלוחים הראשונים של רכב לפני המועד הזה. - השדה
globalEndTime
מייצג את שעת הסיום האחרונה של המסלולים בכל כלי הרכב והמשלוחים. כל המשלוחים וההעברות שהוקצו צריכים להסתיים לפני המועד הזה.
מאפייני המשלוח
המאפיינים הנפוצים של הודעת Shipment
(REST, gRPC) כוללים:
- המאפיינים
pickups[]
ו-deliveries[]
מייצגים את המיקום שבו אפשר לאסוף או להעביר משלוח. המאפייניםpickups[]
ו-deliveries[]
משתמשים בהודעהVisitRequest
(REST, gRPC). loadDemands
מייצג את העומס הנדרש כדי להשלים את המשלוח של רכב. המאפיין התואםload_limits
(REST, gRPC) של כלי הרכב מייצג את כמות העומס שכלי הרכב יכול להכיל בכל פעם. מידע נוסף על עומס זמין במאמר דרישות עומס ומגבלות.penalty_cost
מייצג את העלות שנצברת אם משלוח מושמט. מידע נוסף על עלויות זמין במאמר פרמטרים של מודל עלות.
מאפייני הרכב
אלה כמה מהמאפיינים הנפוצים של ההודעה Vehicle
(REST, gRPC):
startLocation
מייצג את המקום שבו רכב חייב להתחיל את המסלול. המאפיין הזה הוא אופציונלי. אם לא מציינים זאת, המסלול של הרכב מתחיל במיקום של המשלוח הראשון שהוקצה לו.endLocation
מייצג את המקום שבו הרכב חייב לסיים את המסלול. הנכס הזה הוא אופציונלי. אם לא מציינים את המיקום, המסלול של הרכב מסתיים במיקום של המשלוח האחרון שהוקצה לו.- השדה
startTimeWindows[]
מייצג את המועד שבו הרכב יכול להתחיל את המסלול שלו. המאפיין הזה הוא אופציונלי. - השדה
endTimeWindows[]
מייצג את הזמנים שבהם רכב יכול להתחיל ולסיים את המסלול שלו. שני המאפיינים הם אופציונליים. loadLimits
מייצג את קיבולת הרכב שזמינה כדי לעמוד בדרישות העומס של המשלוחים. קראו מידע נוסף על הדרישות והמגבלות של העומס במאמר דרישות ומגבלות של עומס.
בקשה לדוגמה מלאה בפורמט JSON נראית כך:
{
"model": {
"shipments": [
{
"pickups": [
{
"arrivalLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
}
}
],
"deliveries": [
{
"arrivalLocation": {
"latitude": 37.79581,
"longitude": -122.4218856
}
}
]
}
],
"vehicles": [
{
"startLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"endLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"costPerKilometer": 1.0
}
],
"globalStartTime": "2024-02-13T00:00:00.000Z",
"globalEndTime": "2024-02-14T06:00:00.000Z"
}
}
OptimizeTours
ו-BatchOptimizeTours
צורכים הודעות בקשה כמו הדוגמה שלמעלה, אבל בדרכים שונות. לפני ששולחים בקשה לאופטימיזציית מסלולים, חשוב להבין את ההבדל בין שתי השיטות: