יצירה של הודעת בקשה

מפתחים באזור הכלכלי האירופי (EEA)

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