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