تفسیر پاسخ Route Optimization API… با سگ‌ها

توسعه‌دهندگان منطقه اقتصادی اروپا (EEA)

یادداشت برای تولید

برای سادگی، این راهنما از REST و JSON استفاده می‌کند. بااین‌حال، برای محیط تولید شما، توصیه کلی این است که از gRPC و کتابخانه‌های مشتری برای عملکرد بهتر استفاده کنید. برای اطلاعات بیشتر، کتابخانه‌های کارخواه Route Optimization API را ببینید.

پس‌از ارسال درخواست در اولین درخواستتان را ایجاد کنید، بهینه‌ساز OptimizeToursResponse را برمی‌گرداند. این پاسخ طرح مسیر است که راننده شما باید دنبال کند. این راهنما به شما نشان می‌دهد چگونه آن را بخوانید.

خلاصه برنامه مسیر

برای سناریو مهد سگ‌ها، بهینه‌ساز سگ کوهستانی برنی و چی‌واوا را به ون شما اختصاص می‌دهد و سگ ژرمن شپرد را رد می‌کند. برنامه مسیر راننده شما به‌صورت زیر است:

  • شروع نوبت کاری در ساعت ۷:۵۵ صبح در مهدکودک.
  • سگ کوهستانی برنیز را ساعت ۸:۲۰ صبح نزدیک برج کویت بردارید.
  • ساعت ۸:۵۸ صبح، سگ شی‌واوا را در «پارک زمین بازی ساوت سانست» بردارید.
  • ساعت ۹:۲۴ صبح به مهدکودک برگردید و تا باز شدن پنجره تحویل در ساعت ۹:۳۰ صبح منتظر بمانید.
  • سگ کوهستانی برن را ساعت ۹:۳۰ صبح تحویل بده.
  • ساعت ۹:۳۵ صبح، چیهواهوا را پیاده کن.
  • پایان نوبت کاری در ساعت ۹:۴۰ صبح.

هزینه طرح مسیر ۱۴۷٫۲۲ دلار است، شامل ۱۰۰ دلار جریمه برای رد کردن ژرمن شپرد.

برای بررسی نتایج، پاسخ خود را با پاسخ کامل مثال مقایسه کنید. نتایج شما ممکن است کمی متفاوت باشد زیرا زمان و مسافت سفر به داده‌های فعلی جاده بستگی دارد.

پاسخ نمونه کامل

{
  "routes": [
    {
      "vehicleStartTime": "2024-02-13T15:55:04Z",
      "vehicleEndTime": "2024-02-13T17:40:00Z",
      "visits": [
        {
          "isPickup": true,
          "startTime": "2024-02-13T16:20:00Z",
          "detour": "0s",
          "shipmentLabel": "Bernese mountain dog",
          "visitType": "PICKUP_SHIPMENT"
        },
        {
          "shipmentIndex": 1,
          "isPickup": true,
          "startTime": "2024-02-13T16:58:12Z",
          "detour": "2600s",
          "shipmentLabel": "Chihuahua",
          "visitType": "PICKUP_SHIPMENT"
        },
        {
          "startTime": "2024-02-13T17:30:00Z",
          "detour": "2297s",
          "shipmentLabel": "Bernese mountain dog",
          "visitType": "DELIVER_SHIPMENT"
        },
        {
          "shipmentIndex": 1,
          "startTime": "2024-02-13T17:35:00Z",
          "detour": "656s",
          "shipmentLabel": "Chihuahua",
          "visitType": "DELIVER_SHIPMENT"
        }
      ],
      "transitions": [
        {
          "travelDuration": "1496s",
          "travelDistanceMeters": 7082,
          "waitDuration": "0s",
          "totalDuration": "1496s",
          "startTime": "2024-02-13T15:55:04Z"
        },
        {
          "travelDuration": "1992s",
          "travelDistanceMeters": 16589,
          "waitDuration": "0s",
          "totalDuration": "1992s",
          "startTime": "2024-02-13T16:25:00Z"
        },
        {
          "travelDuration": "1252s",
          "travelDistanceMeters": 7860,
          "waitDuration": "356s",
          "totalDuration": "1608s",
          "startTime": "2024-02-13T17:03:12Z"
        },
        {
          "travelDuration": "0s",
          "waitDuration": "0s",
          "totalDuration": "0s",
          "startTime": "2024-02-13T17:35:00Z"
        },
        {
          "travelDuration": "0s",
          "waitDuration": "0s",
          "totalDuration": "0s",
          "startTime": "2024-02-13T17:40:00Z"
        }
      ],
      "metrics": {
        "performedShipmentCount": 2,
        "travelDuration": "4740s",
        "waitDuration": "356s",
        "delayDuration": "0s",
        "breakDuration": "0s",
        "visitDuration": "1200s",
        "totalDuration": "6296s",
        "travelDistanceMeters": 31531,
        "performedShipmentPenaltyCostSum": 2000
      },
      "routeCosts": {
        "model.vehicles.cost_per_hour": 47.22
      },
      "routeTotalCost": 47.22,
      "vehicleFullness": {
        "maxFullness": 0.3497777777777778,
        "activeSpan": 0.3497777777777778
      }
    }
  ],
  "skippedShipments": [
    {
      "index": 2,
      "label": "German shepherd",
      "penaltyCost": 100
    }
  ],
  "metrics": {
    "aggregatedRouteMetrics": {
      "performedShipmentCount": 2,
      "travelDuration": "4740s",
      "waitDuration": "356s",
      "delayDuration": "0s",
      "breakDuration": "0s",
      "visitDuration": "1200s",
      "totalDuration": "6296s",
      "travelDistanceMeters": 31531,
      "performedShipmentPenaltyCostSum": 2000
    },
    "usedVehicleCount": 1,
    "earliestVehicleStartTime": "2024-02-13T15:55:04Z",
    "latestVehicleEndTime": "2024-02-13T17:40:00Z",
    "totalCost": 147.22,
    "costs": {
      "model.vehicles.cost_per_hour": 47.22,
      "model.shipments.penalty_cost": 100
    }
  }
}
    

ساختار پاسخ

OptimizeToursResponse دارای یک شیء ShipmentRoute با نوع پیام visits و یک شیء Metrics با aggregatedRouteMetrics و totalCost است.

OptimizeToursResponse شامل دو مؤلفه اصلی است:

  • routes: طرح مسیر برای هر خودرو در ناوگان شما، ازجمله ترتیب و زمان هر تحویل گرفتن و تحویل دادن. یک ون دارید، بنابراین یک طرح مسیر وجود دارد.
  • metrics: خلاصه‌ای از کل برنامه مسیر، شامل هزینه کل، مدت، و مسافت.

چون بهینه‌ساز از ژرمن شپرد صرف‌نظر می‌کند، پاسخ همچنین شامل skippedShipments است.

بخش‌های زیر نشان می‌دهند که هر جزئیات خلاصه طرح مسیر را در پاسخ کجا پیدا کنید.

کدام وسیله نقلیه در کدام مسیر حرکت می‌کند؟

بهینه‌ساز طرح مسیری (آرایه routes) تولید می‌کند که با ترتیب vehicles در درخواست شما مطابقت دارد.

فیلد vehicleIndex هر خودرو را براساس موقعیت صفرپایه آن شناسایی می‌کند که برای ون شما ۰ است. فیلدهای vehicleStartTime و vehicleEndTime به راننده دستور می‌دهند که چه زمانی نوبت کاری خود را شروع و پایان دهد.

Route Optimization API مُهرهای زمان را در قالب UTC برمی‌گرداند که با پسوند Z مشخص می‌شود، صرف‌نظر از انحراف در درخواست شما. برای دریافت زمان سانفرانسیسکو، ۸ ساعت کم کنید. برای ون شما، نوبت کاری از ساعت ۷:۵۵ صبح تا ۹:۴۰ صبح است، همان‌طور که در نمونه کد زیر نشان داده شده است.

{
"routes": [
    {
    // "vehicleIndex": 0, // Omitted in actual JSON response because it's 0
    "vehicleStartTime": "2024-02-13T15:55:04Z",
    "vehicleEndTime": "2024-02-13T17:40:00Z",
    ...
    }
  ]
  ...
}

ترتیب سوار و پیاده کردن چیست؟

در هر مسیر، آرایه visits شامل همه سوار کردن‌ها و تحویل‌ها برای خودرو واگذارشده به‌ترتیب زمانی است.

shipmentIndex هر بازدید، موقعیت صفرپایه محموله در درخواست شما است: 0 سگ کوهستانی برنی است و 1 شی‌هواهوا است. فیلد shipmentLabel برچسبی را که برای هر محموله تنظیم کرده‌اید نشان می‌دهد.

برای تشخیص بین تحویل گرفتن و تحویل دادن (یا ارسال)، می‌توانید فیلدهای visitType یا isPickup را بررسی کنید:

  • visitType: کنش بازدید را به‌طور صریح تعریف می‌کند.
    • تحویل: visitType = "PICKUP_SHIPMENT"
    • ارسال: visitType = "DELIVER_SHIPMENT"
  • isPickup: فیلد کمکی بولی.
    • تحویل: isPickup = true
    • ارسال: isPickup = false (در JSON حذف شده است)

برای تعیین توالی دقیق رویدادها و زمان رسیدن موردانتظار به هر مکان، آرایه visits را به‌ترتیب بخوانید. جدول زیر کنش طرح مسیر را براساس ترتیب و مقادیر فیلدهای shipmentIndex، isPickup یا visitType، و startTime نشان می‌دهد.

توالی به‌ارزش shipmentIndex مقدار isPickup یا visitType مقدار startTime (به‌وقت ساعت هماهنگ جهانی) کنش
نخستین بازدید ۰ (در JSON حذف شده است) درست یا PICKUP_SHIPMENT 2024-02-13T16:20:00Z سگ کوهستانی برنیز را ساعت ۸:۲۰ صبح بردار.
بازدید دوم 1 درست یا PICKUP_SHIPMENT 2024-02-13T16:58:12Z چی‌واوا را ساعت ۸:۵۸ صبح بردارید.
سومین بازدید ۰ (در JSON حذف شده است) نادرست (حذف‌شده) یا DELIVER_SHIPMENT 2024-02-13T17:30:00Z سگ کوهستانی برن را ساعت ۹:۳۰ صبح به مرکز نگهداری سگ‌ها ببر.
بازدید چهارم 1 نادرست (حذف‌شده) یا DELIVER_SHIPMENT 2024-02-13T17:35:00Z ساعت ۹:۳۵ صبح، سگ شی‌واوا را به مهدکودک سگ‌ها ببر.

نمونه کد زیر نشان می‌دهد که پاسخ چگونه این توالی را ارائه می‌دهد:

{
  "routes": [
    {
      "visits": [
        {
          // "shipmentIndex": 0, // Omitted in actual JSON response because it's 0
          "isPickup": true,
          "startTime": "2024-02-13T16:20:00Z",
          "shipmentLabel": "Bernese mountain dog",
          "visitType": "PICKUP_SHIPMENT"
        },
        {
          "shipmentIndex": 1,
          "isPickup": true,
          "startTime": "2024-02-13T16:58:12Z",
          "shipmentLabel": "Chihuahua",
          "visitType": "PICKUP_SHIPMENT"
        },
        {
          // "shipmentIndex": 0, // Omitted in actual JSON response because it's 0
          // "isPickup": false, // Omitted in actual JSON response because it's false
          "startTime": "2024-02-13T17:30:00Z",
          "shipmentLabel": "Bernese mountain dog",
          "visitType": "DELIVER_SHIPMENT"
        },
        {
          "shipmentIndex": 1,
          // "isPickup": false, // Omitted in actual JSON response because it's false
          "startTime": "2024-02-13T17:35:00Z",
          "shipmentLabel": "Chihuahua",
          "visitType": "DELIVER_SHIPMENT"
        }
      ]
    }
  ]
}

هر بازدید همچنین دارای یک visitRequestIndex است که موقعیت مبتنی بر صفر گزینه تحویل یا ارسال است که بهینه‌ساز برای محموله انتخاب کرده است. هر سگ در این سناریو فقط یک گزینه سوار کردن و یک گزینه پیاده کردن دارد، بنابراین visitRequestIndex همیشه 0 است و پاسخ آن را حذف می‌کند.

بین بازدیدها چه اتفاقی می‌افتد؟

در هر مسیر، آرایه transitions جزئیات سفر بین بازدیدها را فهرست می‌کند. اگرچه visits و transitions فهرست‌های جداگانه‌ای هستند، اما به‌صورت زیر در زمان تداخل دارند:

  1. transitions[0] (رانندگی از شروع تا نخستین بازدید)
  2. ‫visits[0] (نخستین بازدید)
  3. transitions[1] (رانندگی از بازدید اول به بازدید دوم)
  4. visits[1] (بازدید دوم)
  5. ...
  6. visits[N-1] (آخرین بازدید، که N تعداد کل بازدیدها است)
  7. transitions[N] (رانندگی از آخرین بازدید تا پایان)

می‌توانید خط زمان مسیر را با نگاه کردن به فیلد startTime در هر دو آرایه دنبال کنید. startTime انتقال زمانی است که راننده سفر را شروع می‌کند، و startTime بازدید زمانی است که راننده سوار کردن یا پیاده کردن را شروع می‌کند.

هر گذار زمان رانندگی و فاصله موردانتظار بین مکان‌ها را نشان می‌دهد. جدول زیر هر دو فیلد transitions و visits را به کنش‌های مسیر زمانی برای سناریو مهدکودک سگ‌ها نگاشت می‌کند.

توالی نام فیلد مقدار startTime (به‌وقت ساعت هماهنگ جهانی) جزئیات کنش
گذار اول transitions[0] 2024-02-13T15:55:04Z travelDuration: 1496s
travelDistanceMeters: 7082
برای تحویل گرفتن سگ کوهستانی برنی، ۷ کیلومتر (۲۵ دقیقه) از مهدکودک رانندگی کنید. نوبت کاری ساعت ۷:۵۵ صبح شروع می‌شود.
نخستین بازدید visits[0] 2024-02-13T16:20:00Z shipmentIndex: 0 (omitted in JSON)
isPickup: True
سگ کوهستانی برنی را از ساعت ۸:۲۰ صبح بردارید. بازدید ۵ دقیقه طول می‌کشد.
گذار دوم transitions[1] 2024-02-13T16:25:00Z travelDuration: 1992s
travelDistanceMeters: 16589
۱۷ کیلومتر به‌مدت ۳۳ دقیقه از «برج کویت» رانندگی کنید تا چی‌واوا را از ساعت ۸:۲۵ صبح تحویل بگیرید.
بازدید دوم visits[1] 2024-02-13T16:58:12Z shipmentIndex: 1
isPickup: True
ساعت ۸:۵۸ صبح، چی‌واوا را بردارید. بازدید ۵ دقیقه طول می‌کشد.
گذار سوم transitions[2] 2024-02-13T17:03:12Z travelDuration: 1252s
travelDistanceMeters: 7860
waitDuration: 356s
از ساعت ۹:۰۳ صبح، ۸ کیلومتر را در ۲۱ دقیقه از «زمین بازی ساوت سانست» به‌سمت مهدکودک رانندگی می‌کند. ساعت ۹:۲۴ صبح می‌رسد و ۶ دقیقه منتظر می‌ماند تا پنجره تحویل باز شود.
بازدید سوم visits[2] 2024-02-13T17:30:00Z shipmentIndex: 0 (omitted in JSON)
isPickup: False (omitted in JSON)
سگ کوهستانی برنی را از ساعت ۹:۳۰ صبح به مرکز نگهداری سگ‌ها ببر. بازدید ۵ دقیقه طول می‌کشد.
گذار چهارم transitions[3] 2024-02-13T17:35:00Z travelDuration: 0s
travelDistanceMeters: 0 (omitted in JSON)
رانندگی نکنید. آماده برای رساندن چی‌واوا به مهدکودک در ساعت ۹:۳۵ صبح.
بازدید چهارم visits[3] 2024-02-13T17:35:00Z ‫shipmentIndex: 1
isPickup: False (در JSON حذف شده است)
ساعت ۹:۳۵ صبح، سگ شی‌واوا را به مرکز نگهداری سگ‌ها ببرید. این کار ۵ دقیقه طول می‌کشد.
انتقال پنجم transitions[4] 2024-02-13T17:40:00Z travelDuration: 0s
travelDistanceMeters: 0 (omitted in JSON)
رانندگی نکنید. راننده شیفت را در ساعت ۹:۴۰ ق.ظ. تمام می‌کند.

نمونه کد زیر نشان می‌دهد که چگونه پاسخ این توالی را برای transitions[0] و transitions[1] ارائه می‌دهد:

{
  "routes": [
    {
      "transitions": [
        {
          "travelDuration": "1496s",
          "travelDistanceMeters": 7082,
          "waitDuration": "0s",
          "totalDuration": "1496s",
          "startTime": "2024-02-13T15:55:04Z"
        },
        {
          "travelDuration": "1992s",
          "travelDistanceMeters": 16589,
          "waitDuration": "0s",
          "totalDuration": "1992s",
          "startTime": "2024-02-13T16:25:00Z"
        },
        ...
      ]
    }
  ]
}

هزینه این مسیر چقدر است؟

بسته به اینکه به هزینه خودرو خاصی نیاز دارید یا هزینه کل ناوگان، می‌توانید چندین فیلد را در پاسخ مشاهده کنید.

جدول زیر همه روش‌هایی را که می‌توانید اطلاعات هزینه را در پاسخ پیدا کنید فهرست می‌کند:

والدین پارامتر حوزه شرح
ShipmentRoute routeCosts به‌ازای هر مسیر تفکیک مؤلفه‌های هزینه خاص (مانند هزینه هر ساعت) برای آن مسیر خاص.
routeTotalCost به‌ازای هر مسیر هزینه کل محاسبه‌شده برای آن مسیر خاص.
Metrics totalCost کل (همه مسیرها) کل هزینه تجمیعی برای همه مسیرها در راه‌حل.
costs کل (همه مسیرها) تفکیک مؤلفه‌های هزینه انبوهشی در همه مسیرهای موجود در راه‌حل.

هزینه‌های مشخص‌شده در routeCosts و costs نشان‌دهنده محدودیت‌های هزینه است که در درخواستتان مشخص می‌کنید. برای اطلاعات بیشتر، به سند مفهوم کلیدی مدل هزینه مراجعه کنید.

برای این سناریو مهد سگ‌ها، چون یک ارسال ردشده دارید، هزینه هر مسیر و هزینه کل تجمیع‌شده متفاوت است. هزینه مسیر فقط شامل هزینه‌های مرتبط با آن مسیر خاص (دستمزد راننده) است، درحالی‌که هزینه کل تجمیع‌شده شامل جریمه محموله نادیده‌گرفته‌شده نیز می‌شود. نمونه کد زیر نشان می‌دهد که این مقادیر را در کجا می‌توانید در پاسخ پیدا کنید:

{
  "routes": [
    {
      "vehicleStartTime": "2024-02-13T15:55:04Z",
      "vehicleEndTime": "2024-02-13T17:40:00Z",
      ...
      "routeCosts": {
        "model.vehicles.cost_per_hour": 47.22
      },
      "routeTotalCost": 47.22
    }
  ],
  "metrics": {
    "totalCost": 147.22,
    "costs": {
      "model.shipments.penalty_cost": 100,
      "model.vehicles.cost_per_hour": 47.22
    },
    ...
  }
}

طبق برنامه مسیر، راننده ون را از ساعت ۷:۵۵ صبح تا ۹:۴۰ صبح می‌راند که تقریباً ۱ ساعت و ۴۵ دقیقه (۶۲۹۶ ثانیه) است. با نرخ تعریف‌شده شما که ۲۷ دلار در ساعت است، هزینه مسیر ۴۷٫۲۲ دلار است. چون بهینه‌ساز از محموله ژرمن شپرد صرف‌نظر کرد، هزینه جریمه ۱۰۰ دلاری اضافه می‌کند و مجموع هزینه کل را به ۱۴۷٫۲۲ دلار می‌رساند.

چرا ارسال رد شده است؟

بهینه‌ساز هر محموله‌ای را که انجام نمی‌دهد در آرایه skippedShipments فهرست می‌کند. دلیل رد شدن ارسال به این بستگی دارد که آیا penaltyCost را تنظیم کرده‌اید یا نه:

  • محموله‌های اجباری (بدون penaltyCost): بهینه‌ساز هرگز این محموله‌ها را فقط به‌دلیل گران بودن اجرای آن‌ها نادیده نمی‌گیرد. تنها درصورتی از یک محموله صرف‌نظر می‌کند که نتواند آن را در هیچ مسیری قرار دهد، مثلاً به‌دلیل اینکه پنجره زمانی آن با محموله‌های دیگر تداخل دارد.
  • محموله‌های اختیاری (با penaltyCost): بهینه‌ساز همچنین می‌تواند از این موارد صرف‌نظر کند اگر هزینه انجام آن‌ها بیشتر از جریمه باشد. می‌توانید هزینه‌های جریمه متفاوتی را برای اولویت‌بندی برخی محموله‌ها نسبت‌به سایرین تنظیم کنید.

در این سناریو، پنجره تحویل سگ ژرمن شپرد با پنجره سگ کوهستانی برن تداخل دارد. برج کویت و لندز اند ۲۵ دقیقه باهم فاصله دارند، بنابراین راننده نمی‌تواند هر دو سوار کردن را در بازه ۲۰ دقیقه‌ای انجام دهد. بهینه‌ساز باید یکی از آن‌ها را رد کند. چون ژرمن شپرد هزینه جریمه کمتری دارد (۱۰۰ دلار درمقابل ۱۰۰۰ دلار برای مشتری معمولی)، بهینه‌ساز از آن صرف‌نظر می‌کند و جریمه ۱۰۰ دلاری را متحمل می‌شود.

نمونه کد زیر شیء skippedShipments را در پاسخ نشان می‌دهد:

{
  ...
  "skippedShipments": [
    {
      "index": 2,
      "label": "German shepherd",
      "penaltyCost": 100
    }
  ],
  ...
}

شیء skippedShipments در پاسخ حاوی فیلدهای زیر است:

  • index: نمایه صفرپایه محموله در درخواست شما (۲ برای محموله سوم).
  • label: برچسبی که در درخواست مشخص کرده‌اید («German shepherd» (ژرمن شپرد)).
  • penaltyCost: هزینه جریمه‌ای که در درخواست مشخص کرده‌اید و میانای برنامه‌سازی کاربردی آن را به هزینه کل اضافه می‌کند.

برای جلوگیری از رد شدن محموله توسط بهینه‌ساز، محدودیت ایجادکننده تداخل را کاهش دهید. برای مثال، از صاحب سگ ژرمن شپرد بخواهید بازه زمانی منعطف‌تری برای تحویل گرفتن سگ درنظر بگیرد، سپس timeWindows را برای آن تحویل گرفتن در درخواستتان به‌روز کنید.

فیلدهای پاسخ در مثال

جدول زیر همه فیلدهای پاسخ را که در OptimizeToursResponse سناریو نمونه برگردانده شده است شرح می‌دهد. اگرچه برای درک طرح مسیر نیازی به استفاده از همه فیلدها ندارید، می‌توانید این فیلدها را تجزیه‌وتحلیل کنید تا نحوه تنظیم OptimizeToursRequest خود را برای مطابقت با نیازهای کسب‌وکارتان تعیین کنید. برای اطلاعات بیشتر، چرخه حیات طرح مسیر را ببینید.

می‌توانید محتوا را براساس والد یا جستجوی نوشتاری فیلتر کنید.

والدین پارامتر نوع ویژگی شرح
OptimizeToursResponse routes آرایه اشیاء (ShipmentRoute) این شامل فهرست مسیرهای محاسبه‌شده برای هر خودرو است (یک مسیر برای هر خودرو). برای این سناریو مهدکودک سگ‌ها، این شامل طرح مسیر دقیق برای یک ون شما است.
metrics شیء (Metrics) این شامل سنجه‌های کلی برای راه‌حل است که در همه مسیرها انبوهش شده است. برای این سناریوی مهدکودک سگ، این خلاصه هزینه‌ها و مدت زمان عملیاتی برای روز است.
skippedShipments آرایه اشیاء (SkippedShipment) این شامل فهرست محموله‌هایی است که در راه‌حل نادیده گرفته شده‌اند. برای این سناریو، سگ سوم (ژرمن شپرد) رد می‌شود.
ShipmentRoute vehicleStartTime مُهر زمان این زمانی است که خودرو مسیرش را شروع می‌کند. برای این سناریو مهدکودک سگ‌ها، راننده ساعت ۷:۵۵ صبح شروع به رانندگی ون می‌کند.
vehicleEndTime مُهر زمان این زمانی است که خودرو مسیر خود را به‌پایان می‌رساند. برای این سناریو مهدکودک سگ‌ها، راننده رانندگی ون را در ساعت ۹:۴۰ صبح به‌پایان می‌رساند.
visits آرایه اشیاء (Visit) این فهرست مرتب‌شده‌ای از سوار کردن‌ها و رساندن‌ها در مسیر است. برای این سناریو نگهداری روزانه سگ، این توالی سوار کردن و پیاده کردن دو سگ است.
transitions آرایه اشیاء (Transition) این فهرست مرتب‌شده‌ای از مسافت، و زمان سفر و انتظار بین بازدیدها است. برای این سناریوی مهدکودک سگ‌ها، این جزئیات مسافت و زمان رانندگی بین برج کویت، پارک زمین بازی South Sunset، و مهدکودک را نشان می‌دهد.
metrics شیء (AggregatedMetrics) این سنجه‌ها مختص این مسیر هستند. برای این سناریوی مهدکودک سگ‌ها، این‌ها آمار این ون خاص هستند. این سنجه‌ها براساس هزینه‌هایی است که در درخواستتان مشخص کرده‌اید. برای جزئیات بیشتر، سند مفهوم کلیدی مدل هزینه را ببینید.
routeCosts شیء (نقشه) این تفکیک هزینه‌های خاص برای این مسیر است. برای این سناریوی مهد سگ، این هزینه محاسبه‌شده از دستمزد راننده ۲۷ دلار در ساعت را نشان می‌دهد.
routeTotalCost عدد این هزینه کل برای این مسیر خاص است. برای این سناریو مهدکودک سگ‌ها، هزینه کل برای مسیر این ون 47.22 است.
vehicleFullness شیء (VehicleFullness) این تفکیکی است از اینکه خودرو چقدر به حدود عملیاتی خود، مانند زمان، مسافت، و بار، نزدیک می‌شود. برای این سناریو مهد سگ، فقط زمان شروع و پایان شیفت راننده را محدود می‌کند، بنابراین بهینه‌ساز vehicleFullness را به‌عنوان کسری از مدت‌زمان واقعی مسیر و حداکثر زمان دردسترس برای شیفت راننده محاسبه می‌کند.
Visit shipmentIndex عدد صحیح این نمایه صفرپایه محموله در درخواست اصلی است. برای این سناریوی مهدکودک سگ‌ها، 0 نشان‌دهنده‌ی سگ کوهستانی برنی و 1 نشان‌دهنده‌ی شی‌واوا است.
isPickup بولی اگر این بازدید از نوع تحویل گرفتن باشد، این فیلد درست است. برای این سناریو مهدکودک سگ‌ها، این مقدار هنگام تحویل گرفتن سگ درست و هنگام تحویل دادن سگ به مهدکودک نادرست (یا ناموجود) است.
startTime مُهر زمان این زمان شروع تخمینی بازدید است. برای این سناریو مهدکودک سگ، این زمانی است که راننده در می‌زند.
detour مدت این زمان اضافه‌ای است که بهینه‌ساز به سفر این محموله خاص اضافه می‌کند. مسیر انحرافی تفاوت بین طرح مسیر واقعی و سفر مستقیم ایده‌آل است، درصورتی‌که راننده محموله یا وظیفه دیگری برای تکمیل نداشته باشد.

برای این سناریو مهد سگ، اولین بازدید که برای سوار کردن سگ کوهستانی برنی است، انحراف ۰ دارد زیرا راننده مستقیماً از مرکز مهد به این محل سوار کردن می‌رود. برای سوار کردن سگ شی‌واوا، مسیر انحرافی ۴۳ دقیقه است زیرا راننده ابتدا سگ کوهستانی برنی را سوار می‌کند (و ۵ دقیقه صرف سوار کردن او می‌شود).
shipmentLabel رشته این برچسب مربوط به درخواست هر محموله است. برای این سناریو مهدکودک سگ‌ها، برچسب‌ها «چی‌واوا» یا «سگ کوهستانی برنیز» هستند.
visitType رشته (شمارشی) این نشان‌دهنده نوع بازدید است که می‌تواند PICKUP_SHIPMENT برای تحویل گرفتن یا DELIVER_SHIPMENT برای ارسال باشد. برای این سناریو، یا PICKUP_SHIPMENT است یا DELIVER_SHIPMENT.
Transition travelDuration مدت این مدت زمان صرف‌شده برای سفر درطول این انتقال بین بازدیدها است. برای مثال، در این سناریو مهدکودک سگ‌ها، راننده حدود ۲۵ دقیقه رانندگی می‌کند تا از مهدکودک به برج کویت برسد و سگ کوهستانی برن را سوار کند.
travelDistanceMeters عدد صحیح این مسافت طی‌شده به متر درطول این انتقال است. برای مثال، در این سناریو مهدکودک سگ‌ها، راننده ۷ کیلومتر از مهدکودک تا «برج کویت» رانندگی می‌کند تا سگ کوهستانی برن را سوار کند.
waitDuration مدت این مدت زمانی است که قبل‌از تحویل یا دریافت بعدی صرف انتظار می‌شود. برای این سناریو مهد سگ، این مقدار برای انتقال سوم ۶ دقیقه (۳۵۶ ثانیه) است، زیرا راننده قبل‌از باز شدن پنجره تحویل در ساعت ۹:۳۰ صبح به مرکز مهد می‌رسد. برای انتقال‌های دیگر، این مقدار ۰ است.
totalDuration مدت این مدت کل انتقال است، شامل رانندگی و انتظار. برای مثال، راننده ۲۵ دقیقه (۲۵ دقیقه رانندگی و ۰ دقیقه انتظار) را در اولین انتقال و ۲۷ دقیقه (۲۱ دقیقه رانندگی و ۶ دقیقه انتظار) را در سومین انتقال برای بازگشت به مهدکودک صرف می‌کند.
startTime مُهر زمان این زمانی است که سفر شروع می‌شود. این زمان با زمان تکمیل بازدید قبلی (یا برای اولین انتقال، با زمان شروع خودرو) مطابقت دارد. برای سناریو مهد سگ، اولین گذار در ساعت ۷:۵۵ صبح وقتی راننده مهد سگ را ترک می‌کند شروع می‌شود، و دومین گذار در ساعت ۸:۲۵ صبح وقتی راننده برج کویت را ترک می‌کند شروع می‌شود.
Metrics aggregatedRouteMetrics شیء (AggregatedMetrics) این مقدار مجموع سنجه‌ها در همه مسیرها است. برای این سناریوی مهد سگ، این‌ها سنجه‌های کلی برای یک ون شما است.
usedVehicleCount عدد صحیح این تعداد وسایل نقلیه استفاده‌شده در راه‌حل است. برای این سناریو مهدکودک سگ‌ها، فقط از یک ون استفاده می‌کنید.
earliestVehicleStartTime مهر زمان این زودترین زمان شروع در بین همه وسایل نقلیه است. برای این سناریوی مهد سگ، مسیر ون از ساعت ۷:۵۵ صبح شروع می‌شود.
latestVehicleEndTime مُهر زمان این آخرین زمان پایان در بین همه وسایل نقلیه است. برای این سناریو مهدکودک سگ، مسیر ون در ساعت ۹:۴۰ صبح به‌پایان می‌رسد.
totalCost عدد این هزینه کل راه‌حل است. برای این سناریو مهدکودک سگ، کل طرح مسیر 147.22 برای روز هزینه دارد (شامل 47.22 دستمزد راننده و 100 جریمه ارسال نادیده‌گرفته‌شده).
costs شیء (نقشه) این تفکیک هزینه کل براساس دسته است. برای این سناریو مهدکودک سگ‌ها، بهینه‌ساز هزینه مسیر را براساس هزینه ساعتی و هزینه جریمه برای سگ ژرمن شپرد نادیده‌گرفته‌شده محاسبه کرد.
AggregatedMetrics performedShipmentCount عدد صحیح این تعداد محموله‌هایی است که باموفقیت مسیریابی شده‌اند. برای این سناریو مهدکودک سگ‌ها، راننده دو سگ را جابه‌جا می‌کند.
travelDuration مدت این کل زمان صرف‌شده برای سفر است. برای این سناریو مهدکودک سگ، راننده ۷۹ دقیقه سفر می‌کند.
waitDuration مدت این کل زمان صرف‌شده برای انتظار است. برای این سناریو مهدکودک سگ، راننده ۶ دقیقه (۳۵۶ ثانیه) در مهدکودک منتظر می‌ماند تا پنجره تحویل باز شود.
delayDuration مدت این مدت‌زمان اضافه‌ای است که بااستفاده از مشخصه‌های انتقال تعریف می‌کنید، مانند زمان رزروشده برای پارک کردن. برای این سناریو مهدکودک سگ، هیچ مشخصه انتقالی در درخواست تعریف نکرده‌اید، بنابراین این مقدار صفر است.
breakDuration مدت این کل زمان صرف‌شده برای استراحت است. برای این سناریو مهدکودک سگ، هیچ وقفه‌ای وجود ندارد.
visitDuration مدت این کل زمان صرف‌شده برای ارائه خدمات در بازدیدها است. برای این سناریوی مهد سگ، این زمان ۲۰ دقیقه است (۵ دقیقه برای هر بازدید در ۴ بازدید).
totalDuration مدت این مجموع همه مؤلفه‌های مدت است. برای این سناریو مهد سگ، مدت کل ۱۰۵ دقیقه (۶۲۹۶ ثانیه) است.
travelDistanceMeters عدد صحیح این کل مسافت سفر به متر است. برای این سناریو مهدکودک سگ، راننده درمجموع ۳۱٫۵ کیلومتر مسافت طی می‌کند.
performedShipmentPenaltyCostSum دوتایی این مقدار مجموع هزینه‌های جریمه همه ارسال‌های انجام‌شده است. برای این سناریو، این مقدار 2000 است زیرا راننده سگ کوهستانی برنی و چی‌واوا را سوار کرده است (هرکدام با هزینه جریمه 1000).
VehicleFullness maxFullness عدد این بالاترین نسبت استفاده در بین همه فیلدهای VehicleFullness است. برای این سناریو مهد سگ، این مقدار ۰٫۳۵ است زیرا راننده فقط ۱۰۵ دقیقه از کل شیفت صبح را که در درخواست ۵ ساعت تعریف کرده‌اید، با ون کار می‌کند.
activeSpan عدد این نسبت کل طول شیفت راننده درمقایسه با ساعت‌های کاری طرح مسیر است. عدد کمتر یعنی راننده زمان کمتری از روز کاری را صرف راندن خودرو می‌کند. برای این سناریو مهد سگ‌ها، این مقدار ۰٫۳۵ است زیرا راننده ون را به‌مدت ۱۰۵ دقیقه درطول شیفت ۵ ساعته می‌راند.
SkippedShipment index عدد صحیح این نمایه صفرپایه محموله در درخواست اصلی است. برای این سناریو، ۲ نشان‌دهنده ژرمن شپرد است.
label رشته این برچسبی است که برای محموله در درخواست مشخص کرده‌اید.
penaltyCost عدد این هزینه جریمه‌ای است که وقتی بهینه‌ساز از این محموله صرف‌نظر می‌کند متحمل می‌شوید. با penaltyCost که در درخواست مشخص کرده‌اید مطابقت دارد.