Ví dụ: Mô hình chi phí

Ví dụ này cho thấy cách sử dụng các thông số về chi phí để nhận được một tuyến đường tiết kiệm chi phí.

Để xem thông tin tổng quan đầy đủ về khái niệm, hãy xem tài liệu Khái niệm chính về mô hình chi phí.

Ví dụ về yêu cầu

Ví dụ sau đây minh hoạ một tình huống trong đó một xe phải giao 3 lô hàng. Xe có chi phí liên quan đến thời gian và khoảng cách, đồng thời mỗi lô hàng đều có một penaltyCost phát sinh nếu lô hàng bị bỏ qua.

Yêu cầu ví dụ này chứa các tham số liên quan đến chi phí sau:

Xem ví dụ về yêu cầu có chi phí

{
  "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
      }
    ]
  }
}
    

Ví dụ về phản hồi

Phản hồi cho thấy trình tối ưu hoá tạo một tuyến đường thực hiện 2 trong số 3 lô hàng. Lô hàng thứ ba bị bỏ qua vì penaltyCost thấp hơn chi phí đã tính của xe để nhận và giao hàng.

Xem phản hồi cho yêu cầu mẫu có chi phí

{
  "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
    }
  }
}
    

Các trường sau đây cho biết cách tính chi phí trong phản hồi:

  • routeCosts phân tích chi phí vận hành cho một tuyến đường cụ thể, trong trường hợp này là:
    • model.vehicles.cost_per_kilometer: 33.53.
    • model.vehicles.cost_per_hour: 18,91.
  • routeTotalCost (52,44) là tổng của các chi phí được liệt kê trong routeCosts.
  • Ở cấp cao nhất của phản hồi, đối tượng costs sẽ tóm tắt mọi chi phí phát sinh trong giải pháp. Khoản này bao gồm chi phí vận hành của tất cả các tuyến đường của xe cộng với mọi khoản tiền phạt, chẳng hạn như model.shipments.penalty_cost (5.0) cho lô hàng bị bỏ qua.
  • totalCost cuối cùng (57,44) thể hiện tổng số tiền của giải pháp, là tổng của routeTotalCost từ tất cả các xe và tất cả các chi phí phạt. Trong trường hợp này, đó là 52,44 + 5.