כפי שמתואר בקצרה במאמר סקירה כללית על אופטימיזציה של מסלולים, בקשה בסיסית מורכבת מהישויות הנדרשות Model, Shipments ו-Vehicles:
- המודל מתעד הגדרות ואילוצים של הבקשה כולה, כולל
Shipments
וגםVehicles
. - משלוחים מייצגים משימות או משלוחים בפועל שכוללים איסוף ו
VisitRequest
מסירה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[]
מייצגים את המקום שבו אפשר לאסוף או להפקיד משלוח. שני המאפיינים האלה משתמשים בהודעהVisitRequest
(REST, gRPC).pickups[]
deliveries[]
-
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