Maliyet Modeli Parametreleri

OptimizeToursRequest mesajı (REST, gRPC) şunları içerir: 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ı
  • Teslim alma ve teslimatları zaman aralıkları dahilinde gerçekleştirmek uygun maliyetli

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, optimize edicinin zaman-seyahat-mesafesi belirlemesini sağlar önemlidir. 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 kısa olabilir. Bu nedenle, maliyet parametrelerindeki 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. Shipment tutarında tahakkuk eden maliyet, ceza maliyetini aşıyorsa Shipment, hiçbir Vehicle rotasına dahil değildir ve şurada görünür: Yanıt iletisindeki skipped_shipments listesi.

ShipmentModel maliyet özelliği

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. Artan globalDurationCostPerHour, tüm gönderilerin daha erken tamamlanmasına öncelik verir.

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 tahakkuk eden maliyet birimleridir. 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] atlanmıştır. model.shipments[1] için 5 birim ceza maliyeti var. Bu sayı toplam tutara eşittir. Örnek yanıtta model.shipments.penalty_cost anahtarı. 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 ikisi bir araya geldiğinde, softMaxLoad değerini aşan yük birimleriyle orantılı maliyet yalnızca maliyet açısından mantıklıysa aşılmamalıdı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.