مثال: مدل هزینه

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

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

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

مثال زیر سناریویی را نشان می‌دهد که در آن یک وسیله نقلیه باید سه محموله را تحویل دهد. این وسیله نقلیه هزینه‌های مربوط به زمان و مسافت را دارد و هر محموله دارای یک 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 : ۳۳.۵۳.
    • model.vehicles.cost_per_hour : ۱۸.۹۱.
  • routeTotalCost (52.44) مجموع هزینه‌های ذکر شده در routeCosts است.
  • در بالاترین سطح پاسخ، شیء costs ، هر هزینه‌ای که در راه‌حل متحمل شده است را خلاصه می‌کند. این شامل هزینه‌های عملیاتی از تمام مسیرهای وسایل نقلیه به علاوه هرگونه جریمه، مانند model.shipments.penalty_cost (5.0) برای محموله از دست رفته، می‌شود.
  • totalCost نهایی (۵۷.۴۴) نشان دهنده مجموع کل برای راه حل است که مجموع routeTotalCost از همه وسایل نقلیه و همه هزینه‌های جریمه است. در این مورد، این مقدار ۵۲.۴۴ + ۵.۰ است.