כפי שתואר בקצרה בסקירה כללית של אופטימיזציה של מסלול, בקשה בסיסית כוללת דגם, משלוחים וכלי רכב כישויות נדרשות:
- Model מתעד את ההגדרות והאילוצים של הבקשה כולה, כולל
Shipments
ו-Vehicles
. - משלוחים מייצגים משימות או משלוחים בפועל שכוללים זמני איסוף ומסירה
VisitRequest
. למשלוחים יש הגדרות ומגבלות מקומיות. - כלי רכב מייצגים כלי רכב, נהגים או כוח אדם. לרכבים יש גם הגדרות ומגבלות מקומיות.
המאפיינים של כל ישות מתארים חלק מבעיית אופטימיזציה ברמת פירוט מסוימת. אילוצים ברמת המודל חלים על כל המשלוחים והרכבים, ואילו אילוצים ומאפיינים שצוינו לגבי משלוחים או כלי רכב הם ספציפיים למשלוח או לרכב יחיד.
עיינו במסמכי התיעוד המלאים של ההודעות ShipmentModel
(REST, gRPC), Shipment
(REST, gRPC) ו-Vehicle
(REST, gRPC).
OptimzeToursRequest
מלונות
חלק מהמאפיינים הנפוצים של הודעת 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
מייצג את העלות שנובעת מדילוג על משלוח. מידע נוסף על עלויות זמין במאמר Cost Model Parameters.
מאפייני הרכב
חלק מהמאפיינים הנפוצים של ההודעה Vehicle
(REST, gRPC) כוללים:
startLocation
מייצג את המיקום שבו הרכב צריך להתחיל את המסלול. המאפיין הזה הוא אופציונלי. אם לא מציינים זאת, המסלול של הרכב מתחיל במיקום של המשלוח הראשון שהוקצה.endLocation
מייצג את המיקום שבו כלי רכב צריך לסיים את המסלול. המאפיין הזה הוא אופציונלי. אם לא מציינים זאת, מסלול הרכב מסתיים במיקום של המשלוח האחרון שהוקצה לו.startTimeWindows[]
מייצג את הזמן שבו רכב יכול להתחיל את המסלול. המאפיין הזה הוא אופציונלי.endTimeWindows[]
מייצג את הזמן שבו כלי רכב יכול להתחיל ולסיים את המסלול. שני המאפיינים הם אופציונליים.- הערך
loadLimits
מייצג את הקיבולת של כלי הרכב שעומדת בדרישות עומס המשלוחים. מידע נוסף על המגבלות ודרישות העומסים מופיע במאמר Load Demands and limits.
בקשה מלאה לדוגמה בפורמט 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
צורכים הודעות בקשה כמו הדוגמה שלמעלה, אבל בדרכים שונות. לפני ששולחים בקשה לאופטימיזציית מסלול, חשוב להבין את ההבדל בין שתי השיטות: