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