مدل هزینه

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

برای نمای کلی مفهومی کامل، به سند مفهوم کلیدی مدل هزینه مراجعه کنید.

درخواست نمونه

مثال زیر سناریویی را نشان می‌دهد که در آن یک وسیله نقلیه باید سه محموله را تحویل دهد. خودرو هزینه‌های مرتبطی برای زمان و مسافت دارد، و هر محموله دارای penaltyCost است که درصورت نادیده گرفتن محموله تحمیل می‌شود.

این درخواست نمونه حاوی پارامترهای مرتبط با هزینه زیر است:

مشاهده درخواست نمونه با هزینه‌ها

{
  "model": {
    "globalStartTime": "2023-01-13T16:00:00-08:00",
    "globalEndTime": "2023-01-14T16:00:00-08:00",
    "shipments": [
      {
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.789456,
              "longitude": -122.390192
            },
            "duration": "250s"
          }
        ],
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.794465,
              "longitude": -122.394839
            },
            "duration": "150s"
          }
        ],
        "penaltyCost": 100.0
      },
      {
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.789116,
              "longitude": -122.395080
            },
            "duration": "250s"
          }
        ],
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.794465,
              "longitude": -122.394839
            },
            "duration": "150s"
          }
        ],
        "penaltyCost": 5.0
      },
      {
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.795242,
              "longitude": -122.399347
            },
            "duration": "250s"
          }
        ],
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.794465,
              "longitude": -122.394839
            },
            "duration": "150s"
          }
        ],
        "penaltyCost": 50.0
      }
    ],
    "vehicles": [
      {
        "endLocation": {
          "latitude": 37.794465,
          "longitude": -122.394839
        },
        "startLocation": {
          "latitude": 37.794465,
          "longitude": -122.394839
        },
        "costPerHour": 40.0,
        "costPerKilometer": 10.0
      }
    ]
  }
}
    

پاسخ نمونه

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

مشاهده پاسخ به درخواست نمونه با هزینه‌ها

{
  "routes": [
    {
      "vehicleStartTime": "2023-01-14T00:00:00Z",
      "vehicleEndTime": "2023-01-14T00:28:22Z",
      "visits": [
        {
          "isPickup": true,
          "startTime": "2023-01-14T00:00:00Z",
          "detour": "0s"
        },
        {
          "shipmentIndex": 2,
          "isPickup": true,
          "startTime": "2023-01-14T00:02:30Z",
          "detour": "150s"
        },
        {
          "startTime": "2023-01-14T00:08:55Z",
          "detour": "150s"
        },
        {
          "shipmentIndex": 2,
          "startTime": "2023-01-14T00:21:21Z",
          "detour": "572s"
        }
      ],
      "transitions": [
        {
          "travelDuration": "0s",
          "waitDuration": "0s",
          "totalDuration": "0s",
          "startTime": "2023-01-14T00:00:00Z"
        },
        {
          "travelDuration": "0s",
          "waitDuration": "0s",
          "totalDuration": "0s",
          "startTime": "2023-01-14T00:02:30Z"
        },
        {
          "travelDuration": "235s",
          "travelDistanceMeters": 795,
          "waitDuration": "0s",
          "totalDuration": "235s",
          "startTime": "2023-01-14T00:05:00Z"
        },
        {
          "travelDuration": "496s",
          "travelDistanceMeters": 1893,
          "waitDuration": "0s",
          "totalDuration": "496s",
          "startTime": "2023-01-14T00:13:05Z"
        },
        {
          "travelDuration": "171s",
          "travelDistanceMeters": 665,
          "waitDuration": "0s",
          "totalDuration": "171s",
          "startTime": "2023-01-14T00:25:31Z"
        }
      ],
      "metrics": {
        "performedShipmentCount": 2,
        "travelDuration": "902s",
        "waitDuration": "0s",
        "delayDuration": "0s",
        "breakDuration": "0s",
        "visitDuration": "800s",
        "totalDuration": "1702s",
        "travelDistanceMeters": 3353
      },
      "routeCosts": {
        "model.vehicles.cost_per_kilometer": 33.53,
        "model.vehicles.cost_per_hour": 18.911111111111111
      },
      "routeTotalCost": 52.441111111111113
    }
  ],
  "skippedShipments": [
    {
      "index": 1
    }
  ],
  "metrics": {
    "aggregatedRouteMetrics": {
      "performedShipmentCount": 2,
      "travelDuration": "902s",
      "waitDuration": "0s",
      "delayDuration": "0s",
      "breakDuration": "0s",
      "visitDuration": "800s",
      "totalDuration": "1702s",
      "travelDistanceMeters": 3353
    },
    "usedVehicleCount": 1,
    "earliestVehicleStartTime": "2023-01-14T00:00:00Z",
    "latestVehicleEndTime": "2023-01-14T00:28:22Z",
    "totalCost": 57.441111111111113,
    "costs": {
      "model.vehicles.cost_per_kilometer": 33.53,
      "model.vehicles.cost_per_hour": 18.911111111111111,
      "model.shipments.penalty_cost": 5
    }
  }
}
    

فیلدهای زیر نشان می‌دهند که هزینه‌ها چگونه در پاسخ محاسبه می‌شوند:

  • routeCosts هزینه‌های عملیاتی را برای مسیر خاصی تفکیک می‌کند که در این مورد عبارت‌اند از:
    • model.vehicles.cost_per_kilometer: 33.53.
    • model.vehicles.cost_per_hour: 18.91.
  • routeTotalCost (۵۲٫۴۴) مجموع هزینه‌های فهرست‌شده در routeCosts است.
  • در سطح بالای پاسخ، شیء costs همه هزینه‌های متحمل‌شده در راهکار را خلاصه می‌کند. این شامل هزینه‌های عملیاتی از همه مسیرهای خودرو به‌علاوه هرگونه جریمه، مانند model.shipments.penalty_cost (۵.۰) برای محموله نادیده‌گرفته‌شده است.
  • totalCost نهایی (۵۷٫۴۴) نشان‌دهنده جمع کل برای راه‌حل است که مجموع routeTotalCost از همه وسایل نقلیه و همه هزینه‌های جریمه است. در این مورد، ۵۲٫۴۴ + ۵٫۰ است.