Route Optimization API'si, ilgili araçlar için rotaları döndürür isteğinde bulunabilirsiniz. Sevkiyatlar araçlara atanır veya kullanım durumuna göre atlanabilir. özellikleri.
Bir OptimizeToursResponse
mesajında (REST, gRPC) iki ana üst düzey düzey bulunur:
özellikler:
routes[]
, atanmış gönderimleri olan her aracın rotalarıdır. Her biriRoute
, söz konusu rotanın özelliklerini yansıtan metrikleri içerir.metrics
, yanıtın tamamı için ve rota planları hazırlar. Üst düzey metrikler aşağıdakilerle aynı özellikleri içerir: Tüm Rotalar genelinde toplanan değerlerle birlikte Rota başına metrikler.
Bazı özellikler, optimizasyon sonuçlarına bağlı olarak her zaman doldurulmayabilir:
skippedShipments[]
, hiçbir araç tarafından yapılmayan gönderileri listeler. Bir gönderi, belirtilen süre içinde gerçekleştirilemiyorsa atlanabilir. ve kargoyu gerçekleştirme maliyetinin ceza maliyetini aşması durumunda. Örneğin, bir gönderinin teslim alma veya teslimat süresi çok dartimeWindow
Bir aracın şunları yapması mümkün olmayabilir veya gerekli zaman aralığında ziyareti gerçekleştirebilir.validationErrors[]
, isteği geçersiz kılan hataları belirtir. isteğinsolvingMode
değeri,VALIDATE_ONLY
. NormalDEFAULT_SOLVE
modunda doğrulama hataları yanıt gövdesi yerine bir hata mesajında görünür. LütfenVALIDATE_ONLY
çözme modu, aynı anda birden fazla hatayı bildirebilir. Bu, isteklerde hızlıca hata ayıklamak için kullanışlıdır.
Rota özellikleri
Her routes[]
girişi bir ShipmentRoute
mesajıdır (REST, gRPC). Her biri
ShipmentRoute
, belirli bir araca ait rota atamasını gösterir:
talep ediyor. İlişkili olduğu ile ilgili önemli ShipmentRoute
özellikleri
Vehicle
şunlardır:
vehicleIndex
, karşılık gelenVehicle
istek mesajıyla karşılaşırsınız. Değer sıfır olduğunda REST yanıtları bu özelliği atlar.vehicleStartTime
, aracın rotasına başlaması gereken zamandır.vehicleEndTime
, aracın çalışmasını tamamlaması beklenen zamandır yol gösterir.
Yanıt olarak routes
şöyle görünecek:
{
"routes": [
{
"vehicleStartTime": "2024-02-13T00:00:00Z",
"vehicleEndTime": "2024-02-13T00:38:42Z",
"visits": [
...
],
"transitions": [
...
],
"metrics": {
...
},
...
}
],
...
}
Her ShipmentRoute
, aracın sunduğu visits
öğelerinin sıralı bir listesini içerir.
belirir. Her Visit
(REST, gRPC) bir VisitRequest
'yi temsil eder
(REST, gRPC) kaldırın. Önemli Visit
mülkler şunları içerir:
shipmentIndex
, bu ziyaretin ait olduğu gönderinin sıfır tabanlı endeksidir ekleyin.- Bir ziyaret teslim alma olduğunda
isPickup
doğru, ziyaret bir ziyaret olduğunda ise yanlıştır teslimat. Değer yanlış olduğunda REST yanıtları bu özelliği atlar. visitRequestIndex
,VisitRequest
için sıfır tabanlı dizindir İlgili istekteShipment.pickups
veyaShipment.deliveries
Visit
temsil eder. REST yanıtları, değeri sıfırdır.startTime
, ziyaretin başlaması beklenen zamandır.loadDemands
, yükleme türünü şu işlemin tamamlanması için istenen yükleme miktarıyla eşler:Visit
. Yük tutarları, yükü temsil eden teslimat ziyaretleri için negatiftir araçtan kaldırılması.
Visit
örneğini inceleyin:
{
"routes": [
{
...
"visits": [
{
"isPickup": true,
"startTime": "2024-02-13T00:00:00Z",
"detour": "0s"
},
...
],
},
...
],
...
}
Her ShipmentRoute
, aşağıdakileri temsil eden transitions
içeren sıralı bir liste içerir:
visits
arasında seyahat etme süresidir. Önemli Transition
mesajı
(REST, gRPC) mülkleri şunları içerir:
startTime
, aracın yürütmeye başlayacağı zamandır için geçerlidir.travelDuration
, aracın gitmesi gereken süredir tamamlamanız gerekir.travelDistanceMeters
, aracın yapması gereken metre cinsinden mesafedir seyahat etmesini sağlar.trafficInfoUnavailable
, için geçerlidir.waitDuration
, aracın beklemedeyken harcadığı boşta kalma süresini temsil ederVisit
etkinliği başlıyor. Bu durum,start_time
Takip edilen kişi sayısı:Visit
totalDuration
, seyahat dahil olmak üzere geçişin toplam süresidir. bekleme, ara ve gecikme süreleridir.vehicleLoads
, yükleme sırasında aracın taşıdığı yük miktarını eşler bahsedeceğim.
Transition
örneğini inceleyin:
{
"routes": [
{
...
"transitions": [
...
{
"travelDuration": "1171s",
"travelDistanceMeters": 9004,
"waitDuration": "0s",
"totalDuration": "1171s",
"startTime": "2024-02-13T00:00:00Z"
},
...
],
...
}
],
...
}
vists
ile transitions
arasındaki ilişki şurada açıklanmıştır:
Teslim Alma ve Teslimatı Durdurma Siparişi Optimizasyonu ve
ShipmentRoute
referans belgeleri (REST, gRPC).
Metrik özellikleri
Metrics
mesajı (REST, gRPC) tüm çözümü özetler.
Önemli Metrics
özelliklerinden bazıları şunlardır:
totalCost
, rotaları tamamlamak için ödenen toplam maliyettir. Devamını okuyun Maliyet Modeli Parametreleri'ndeki maliyetler hakkında bilgi edinin.usedVehicleCount
, çözümde kullanılan toplam araç sayısıdır. Optimize Edici, bu araçların araç kullanımının gerekli değildir.skippedMandatoryShipmentCount
, atlanan gönderimlerin sayısıdır "zorunlu"dur. Zorunlu bir gönderim, aşağıdaki koşulları karşılayan birpenaltyCost
belirtmiyor: atlanırsa uygulanır. Zorunlu gönderimler performansları belirtilen kısıtlamalar altında uygun değilse atlanır. Maliyet Modeli Parametreleri bölümünde maliyetler hakkında daha fazla bilgi edinebilirsiniz.
Ek metrikler AggregatedMetrics
mesajları (REST,
gRPC) ekleyin. AggregatedMetrics
mesaj türü şunun için kullanılır:
Metrics.aggregatedRouteMetrics
özelliği ve ShipmentRoute.metrics
için
Metrics.aggregatedRouteMetrics
mülkü, tüm mülklerde toplanmış metrikleri içeriyor
OptimizeToursResponse
içinde ShipmentRoute
. Her ShipmentRoute.metrics
mülkü, söz konusu ShipmentRoute
ile ilgili metrikleri içerir.
Önemli AggregatedMetrics
özellikleri şunlardır:
performedShipmentCount
, araçlar tarafından gerçekleştirilen gönderimlerin sayısıdır tercih ediyor.travelDuration
, araçların taşıma sırasında geçirdiği toplam süredir. tavsiye eder.waitDuration
, araçların tamamlama sırasında beklerken geçirdiği toplam süredir takip edebilirsiniz.delayDuration
araçlar için toplam gecikme süresidir. Bu genelde istekteTransitionAttributes
kullanılmıyorsa sıfırdır.breakDuration
, araçların aralarda geçirdiği toplam süredir tavsiye eder.visitDuration
, aracın araç ziyaretleri için ziyaret ettiği toplam süredir. tavsiye eder. Bu, toplamdaVisitRequest
içinVisitRequest.duration
değeriVisit
saniyelere karşılık geliyor ilgili araca atanır.totalDuration
, araçların tamamlanması için gereken toplam süredir. gösterir.travelDistanceMeters
, araçların seyahat ederken katettiği toplam mesafedir. tavsiye eder.maxLoads
, yükleme türlerini dosyanın taşıdığı maksimum yük miktarıyla eşleştirir herhangi bir noktada izlememiz lazım.
Metrics
mesajının görünümü aşağıdaki gibidir:
{
"routes": [
...
],
"metrics": {
"aggregatedRouteMetrics": {
"performedShipmentCount": 1,
"travelDuration": "2322s",
"waitDuration": "0s",
"delayDuration": "0s",
"breakDuration": "0s",
"visitDuration": "0s",
"totalDuration": "2322s",
"travelDistanceMeters": 18603
},
"usedVehicleCount": 1,
"earliestVehicleStartTime": "2024-02-13T00:00:00Z",
"latestVehicleEndTime": "2024-02-13T00:38:42Z",
"totalCost": 18.603,
"costs": {
"model.vehicles.cost_per_kilometer": 18.603
}
}
}
Tam örnek
Construct a Request (İstek Oluşturma) isteği için eksiksiz bir örnek yanıt örneğin:
{
"routes": [
{
"vehicleStartTime": "2024-02-13T00:00:00Z",
"vehicleEndTime": "2024-02-13T00:38:42Z",
"visits": [
{
"isPickup": true,
"startTime": "2024-02-13T00:00:00Z",
"detour": "0s"
},
{
"startTime": "2024-02-13T00:19:31Z",
"detour": "0s"
}
],
"transitions": [
{
"travelDuration": "0s",
"waitDuration": "0s",
"totalDuration": "0s",
"startTime": "2024-02-13T00:00:00Z"
},
{
"travelDuration": "1171s",
"travelDistanceMeters": 9004,
"waitDuration": "0s",
"totalDuration": "1171s",
"startTime": "2024-02-13T00:00:00Z"
},
{
"travelDuration": "1151s",
"travelDistanceMeters": 9599,
"waitDuration": "0s",
"totalDuration": "1151s",
"startTime": "2024-02-13T00:19:31Z"
}
],
"metrics": {
"performedShipmentCount": 1,
"travelDuration": "2322s",
"waitDuration": "0s",
"delayDuration": "0s",
"breakDuration": "0s",
"visitDuration": "0s",
"totalDuration": "2322s",
"travelDistanceMeters": 18603
},
"routeCosts": {
"model.vehicles.cost_per_kilometer": 18.603
},
"routeTotalCost": 18.603
}
],
"metrics": {
"aggregatedRouteMetrics": {
"performedShipmentCount": 1,
"travelDuration": "2322s",
"waitDuration": "0s",
"delayDuration": "0s",
"breakDuration": "0s",
"visitDuration": "0s",
"totalDuration": "2322s",
"travelDistanceMeters": 18603
},
"usedVehicleCount": 1,
"earliestVehicleStartTime": "2024-02-13T00:00:00Z",
"latestVehicleEndTime": "2024-02-13T00:38:42Z",
"totalCost": 18.603,
"costs": {
"model.vehicles.cost_per_kilometer": 18.603
}
}
}