כפי שמתואר בקצרה בקטע סקירה כללית של האופטימיזציה של המסלול, בקשה בסיסית כוללים דגם, משלוחים וכלי רכב לפי הישויות הנדרשות:
- 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
צורכים הודעות בקשה כמו
אבל בדרכים שונות. לפני שמבצעים אופטימיזציה של המסלול
חשוב להבין את ההבדל בין שתי השיטות: