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

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

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