Maliyet Modeli Parametreleri

OptimizeToursRequest mesajı (REST, gRPC) bir dizi ile ilgili mülkler maliyetleri. Bu maliyet parametreleri birlikte isteğin maliyet modelidir. Maliyet modeli, istekle ilgili üst düzey değer hedefler. Örneğin:

  • Daha kısa rotalar yerine daha hızlı Vehicle rotaları öncelikli yaklaşık
  • Shipment yayınlama maliyetinin Shipment adlı öğrencinin tamamlaması
  • Yalnızca maliyet etkin olduğunda teslim alma ve teslim etme işlemlerini zaman aralıkları içinde gerçekleştirme

Maliyetleri içeren örnek bir isteği inceleyin

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

Vehicle maliyet özelliği

Vehicle mesajının (REST, gRPC) çeşitli maliyet özellikleri vardır:

  • Vehicle.cost_per_hour: Saatlik araç kullanım maliyetini gösterir toplu taşıma, bekleme, ziyaret ve mola süreleri dahildir.
  • Vehicle.cost_per_kilometer: katettiği kilometre başına maliyeti gösterir araç.
  • Vehicle.cost_per_traveled_hour: Araç çalıştırma maliyetini gösterir (bekleme, ziyaret ve mola süreleri hariç) yalnızca taşıma sırasında.

Bu maliyet parametreleri, optimizasyon aracının zaman ve kat edilen mesafe arasında denge kurmasına olanak tanır. Optimize edilmiş rotanın maliyeti yanıtta görünür metrics.costs olarak mesaj:

costPerHour arttıkça, optimize edici daha hızlı rotaları bulmaya çalışır en kısa rotalar olmayabilir. Bu örnekte en hızlı rota en kısa rota olduğu için maliyet parametrelerinde yapılan değişikliklerin etkisi çok azdır.

Shipment maliyet özelliği

Shipment mesajının (REST, gRPC) da birkaç maliyeti vardır. parametre:

  • Shipment.penalty_cost, atlama nedeniyle gönderim.
  • Shipment.VisitRequest.cost, belirli bir teslim alma işleminin maliyetini veya birden fazla teslim alma veya teslim alma arasında maliyet dengesini sağlamak için kullanılır. tek bir kargo için teslimat seçeneklerini belirleyebilir.

Shipment maliyet parametresi, Vehicle maliyetiyle aynı boyutsuz birimleri kullanıyor parametreleridir. Bir Shipment'yi tamamlamak için yapılan maliyet, ceza maliyetini aşarsa Shipment hiçbir Vehicle rotasına dahil edilmez ve bunun yerine yanıt mesajındaki skipped_shipments listesinde görünür.

ShipmentModel maliyet özellikleri

ShipmentModel mesajı (REST, gRPC) tek bir maliyet içerir mülk, globalDurationCostPerHour. Bu maliyet, toplam tutar üzerinden tüm araçların ShipmentRoute işlemlerini tamamlaması için gereken süre. globalDurationCostPerHour değerini artırarak tüm gönderimlerin daha erken tamamlanmasına öncelik verebilirsiniz.

Rota Optimizasyonu yanıt maliyeti özellikleri

OptimizeToursResponse mesajı (REST, gRPC) maliyet özellikleri içeriyor ShipmentRoute'ları tamamlama sürecinde tahakkuk eden maliyetleri temsil eden. metrics.costs ve metrics.totalCost özellikleri, yanıttaki tüm rotalarda oluşan maliyet birimlerinin sayısını temsil eder. Her routes girişinde İlgili maliyetleri temsil eden routeCosts ve routeTotalCosts mülkleri veya belirli bir rota belirleyin.

Maliyetleri içeren örnek isteğe verilen yanıtı görüntüleyin

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

Örnek yanıtta, üst düzey metrics.costs şunlardır:

{
  "metrics": {
    ...
    "costs": {
      "model.vehicles.cost_per_hour": 18.911111111111111,
      "model.vehicles.cost_per_kilometer": 33.53,
      "model.shipments.penalty_cost": 5
    }
  }
}

model.shipments.penalty_cost değeri, atlanan yükleme sayısı. skippedShipments özelliğinde, belirtilen gönderimler atlandı.

Bu örnekte, örnek istekteki yalnızca model.shipments[1] atlanır. model.shipments[1], 5 birim ceza maliyetine sahiptir. Bu değer, örnek yanıttaki toplam model.shipments.penalty_cost anahtarıyla eşleşir. Kargonun düşük olması penaltyCost ile Vehicle arasındaki 40,0 costPerHour ve 10,0 costPerKilometer, gönderimi atlamaya kıyasla daha uygun maliyetlidir. tamamlayacaksınız.

İleri düzey konu: maliyetler ve hafif kısıtlamalar

Çeşitli OptimizeToursRequest mesajı (REST, gRPC) özellikleri hafif kısıtlamaları ifade eder. düşünülemez.

Örneğin, araç LoadLimit (REST, gRPC) kısıtlamalarının softMaxLoad ve costPerUnitAboveSoftMax mülkleri. Bu maliyetler birlikte, softMaxLoad'ü aşan yük birimleriyle orantılı bir maliyete neden olur. Bu da sınırın yalnızca maliyet açısından mantıklı olduğu durumlarda aşılmasına olanak tanır.

Benzer şekilde, TimeWindow kısıtlamaları (REST, gRPC) de soft_start_time ve soft_end_time mülkleri, bunlara karşılık gelen cost_per_hour_before_soft_start_time ve cost_per_hour_after_soft_end_time kısıtlanmış etkinliğin ne kadar erken veya geç gerçekleştiğine bağlı olarak TimeWindow geçerlidir.

Tüm maliyet modeli parametrelerinde olduğu gibi esnek sınırlama maliyetleri, diğer maliyet parametreleriyle aynı boyutsuz birimlere sahip olmasına dikkat edin.

LoadLimit kısıtlama, şurada ayrıntılı olarak ele alınmıştır: Yükleme Talepleri ve Sınırları. TimeWindow kısıtlama ayrıntılı olarak ele alınmıştır Teslim alma ve Teslimat Süresi Aralığı Kısıtlamaları'ndaki değerleri karşılaştırın.