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