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 maliyetininShipment
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.