בנייה של הודעת בקשה

כמו שמתואר בקצרה בקטע סקירה כללית של האופטימיזציה של המסלול, בקשה בסיסית כוללת את הפרטים הבאים: דגם, משלוחים וכלי רכב, בהתאם לישויות הנדרשות:

  • מודל מתעד הגדרות ומגבלות של הבקשה כולה, כולל 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