Üretim için not
Bu kılavuzda, basitlik açısından REST ve JSON kullanılmıştır. Ancak üretim ortamınızda daha iyi performans için genel olarak gRPC ve istemci kitaplıklarını kullanmanız önerilir. Daha fazla bilgi için Route Optimization API istemci kitaplıkları sayfasını inceleyin.
İlk isteğinizi gönderme bölümünde isteği gönderdikten sonra optimize edici bir OptimizeToursResponse döndürür. Bu yanıt, sürücünüzün izleyeceği rota planıdır. Bu kılavuzda, raporu nasıl okuyacağınız gösterilmektedir.
Rota planı özeti
Köpek kreşi senaryosunda optimize edici, Bernese dağ köpeğini ve Chihuahua'yı minibüsünüze atar ve Alman çoban köpeğini atlar. Sürücünüzün rota planı şu şekilde:
- Kreşteki vardiyaya 07:55'te başla.
- Bernese dağ köpeğini saat 08:20'de Coit Kulesi'nin yakınından alın.
- Chihuahua'yı saat 08:58'de South Sunset Playground Park'tan alın.
- Kreşe saat 09:24'te geri dönün ve bırakma saati olan 09:30'a kadar bekleyin.
- Bernese dağ köpeğini saat 09:30'da bırakın.
- Chihuahua'yı 09:35'te bırakın.
- Vardiyayı 09:40'ta bitir.
Alman çoban köpeğini atlamanın 100 ABD doları tutarındaki cezası dahil olmak üzere rota planının maliyeti 147, 22 ABD dolarıdır.
Sonuçlarınızı kontrol etmek için yanıtınızı tam örnek yanıtla karşılaştırın. Seyahat süreleri ve mesafeler mevcut yol verilerine bağlı olduğundan sonuçlarınız biraz farklı olabilir.
Tam örnek yanıt
{ "routes": [ { "vehicleStartTime": "2024-02-13T15:55:04Z", "vehicleEndTime": "2024-02-13T17:40:00Z", "visits": [ { "isPickup": true, "startTime": "2024-02-13T16:20:00Z", "detour": "0s", "shipmentLabel": "Bernese mountain dog", "visitType": "PICKUP_SHIPMENT" }, { "shipmentIndex": 1, "isPickup": true, "startTime": "2024-02-13T16:58:12Z", "detour": "2600s", "shipmentLabel": "Chihuahua", "visitType": "PICKUP_SHIPMENT" }, { "startTime": "2024-02-13T17:30:00Z", "detour": "2297s", "shipmentLabel": "Bernese mountain dog", "visitType": "DELIVER_SHIPMENT" }, { "shipmentIndex": 1, "startTime": "2024-02-13T17:35:00Z", "detour": "656s", "shipmentLabel": "Chihuahua", "visitType": "DELIVER_SHIPMENT" } ], "transitions": [ { "travelDuration": "1496s", "travelDistanceMeters": 7082, "waitDuration": "0s", "totalDuration": "1496s", "startTime": "2024-02-13T15:55:04Z" }, { "travelDuration": "1992s", "travelDistanceMeters": 16589, "waitDuration": "0s", "totalDuration": "1992s", "startTime": "2024-02-13T16:25:00Z" }, { "travelDuration": "1252s", "travelDistanceMeters": 7860, "waitDuration": "356s", "totalDuration": "1608s", "startTime": "2024-02-13T17:03:12Z" }, { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2024-02-13T17:35:00Z" }, { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2024-02-13T17:40:00Z" } ], "metrics": { "performedShipmentCount": 2, "travelDuration": "4740s", "waitDuration": "356s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "1200s", "totalDuration": "6296s", "travelDistanceMeters": 31531, "performedShipmentPenaltyCostSum": 2000 }, "routeCosts": { "model.vehicles.cost_per_hour": 47.22 }, "routeTotalCost": 47.22, "vehicleFullness": { "maxFullness": 0.3497777777777778, "activeSpan": 0.3497777777777778 } } ], "skippedShipments": [ { "index": 2, "label": "German shepherd", "penaltyCost": 100 } ], "metrics": { "aggregatedRouteMetrics": { "performedShipmentCount": 2, "travelDuration": "4740s", "waitDuration": "356s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "1200s", "totalDuration": "6296s", "travelDistanceMeters": 31531, "performedShipmentPenaltyCostSum": 2000 }, "usedVehicleCount": 1, "earliestVehicleStartTime": "2024-02-13T15:55:04Z", "latestVehicleEndTime": "2024-02-13T17:40:00Z", "totalCost": 147.22, "costs": { "model.vehicles.cost_per_hour": 47.22, "model.shipments.penalty_cost": 100 } } }
Yanıt yapısı
OptimizeToursResponse iki ana bileşenden oluşur:
routes: Her bir teslim alma ve teslimatın sırası ve zamanları dahil olmak üzere filonuzdaki her araç için rota planı. Bir minibüsünüz olduğu için bir rota planınız var.metrics: Toplam maliyet, süre ve mesafe dahil olmak üzere tüm rota planının özeti.
Optimize edici, Alman çoban köpeğini atladığı için yanıtta skippedShipments de yer alır.
Aşağıdaki bölümlerde, yanıtta rota planı özetinin her bir ayrıntısını nerede bulacağınız gösterilmektedir.
Hangi araç hangi rotada çalışıyor?
Optimize edici, isteğinizdeki vehicles sırasına karşılık gelen bir rota planı (routes dizisi) oluşturur.
vehicleIndex alanı, her aracı sıfır tabanlı konumuna göre tanımlar. Bu değer, kamyonetiniz için 0'dır. vehicleStartTime ve vehicleEndTime alanları, sürücüye vardiyasının ne zaman başlayıp ne zaman biteceğini bildirir.
Route Optimization API, isteğinizdeki farktan bağımsız olarak zaman damgalarını Z son ekiyle işaretlenmiş UTC biçiminde döndürür. San Francisco saatini öğrenmek için 8 saat çıkarın. Aşağıdaki kod örneğinde gösterildiği gibi, minibüsünüzün vardiyası 07:55 ile 09:40 arasındadır.
{
"routes": [
{
// "vehicleIndex": 0, // Omitted in actual JSON response because it's 0
"vehicleStartTime": "2024-02-13T15:55:04Z",
"vehicleEndTime": "2024-02-13T17:40:00Z",
...
}
]
...
}
Teslim alma ve bırakma sırası nedir?
Her rotada, visits dizisi, atanan araç için her teslim alma ve teslimat işlemini kronolojik sırayla içerir.
Her ziyaretin shipmentIndex değeri, gönderinin isteğinizdeki sıfır tabanlı konumudur: 0, Bernese dağ köpeği ve 1, Chihuahua'dır. shipmentLabel alanı, her gönderi için ayarladığınız etiketi gösterir.
Teslim alma ile teslim etme (veya teslimat) arasındaki farkı ayırt etmek için visitType veya isPickup alanlarını kontrol edebilirsiniz:
visitType: Ziyaret işlemini açıkça tanımlar.- Teslim alma:
visitType="PICKUP_SHIPMENT" - Teslimat:
visitType="DELIVER_SHIPMENT"
- Teslim alma:
isPickup: Boole yardımcı alanı.- Teslim alma:
isPickup=true - Teslimat:
isPickup=false(JSON'da atlanır)
- Teslim alma:
Etkinliklerin tam sırasını ve her bir konuma tahmini varış zamanını belirlemek için visits dizisini sırayla okuyun. Aşağıdaki tabloda, shipmentIndex, isPickup veya visitType ve startTime alanlarının sırasına ve değerlerine göre rota planı işlemi gösterilmektedir.
| Sıra | shipmentIndex değer |
isPickup veya visitType değeri |
startTime değeri (UTC) |
İşlem |
|---|---|---|---|---|
| İlk ziyaret | 0 (JSON'da atlanır) | Doğru veya PICKUP_SHIPMENT |
2024-02-13T16:20:00Z | Bernese dağ köpeğini saat 08:20'de teslim alın. |
| İkinci ziyaret | 1 | Doğru veya PICKUP_SHIPMENT |
2024-02-13T16:58:12Z | Chihuahua'yı 08:58'de teslim alın. |
| Üçüncü ziyaret | 0 (JSON'da atlanır) | Yanlış (atlanmış) veya DELIVER_SHIPMENT |
2024-02-13T17:30:00Z | Bernese dağ köpeğini saat 09:30'da köpek bakım merkezine bırakın. |
| Dördüncü ziyaret | 1 | Yanlış (atlanmış) veya DELIVER_SHIPMENT |
2024-02-13T17:35:00Z | Şivava'yı saat 09:35'te köpek bakım merkezine bırakın. |
Aşağıdaki kod örneğinde, yanıtın bu sırayı nasıl sağladığı gösterilmektedir:
{
"routes": [
{
"visits": [
{
// "shipmentIndex": 0, // Omitted in actual JSON response because it's 0
"isPickup": true,
"startTime": "2024-02-13T16:20:00Z",
"shipmentLabel": "Bernese mountain dog",
"visitType": "PICKUP_SHIPMENT"
},
{
"shipmentIndex": 1,
"isPickup": true,
"startTime": "2024-02-13T16:58:12Z",
"shipmentLabel": "Chihuahua",
"visitType": "PICKUP_SHIPMENT"
},
{
// "shipmentIndex": 0, // Omitted in actual JSON response because it's 0
// "isPickup": false, // Omitted in actual JSON response because it's false
"startTime": "2024-02-13T17:30:00Z",
"shipmentLabel": "Bernese mountain dog",
"visitType": "DELIVER_SHIPMENT"
},
{
"shipmentIndex": 1,
// "isPickup": false, // Omitted in actual JSON response because it's false
"startTime": "2024-02-13T17:35:00Z",
"shipmentLabel": "Chihuahua",
"visitType": "DELIVER_SHIPMENT"
}
]
}
]
}
Her ziyaretin bir de visitRequestIndex değeri vardır. Bu değer, optimize edicinin gönderi için seçtiği teslim alma veya teslim etme seçeneğinin sıfır tabanlı konumudur. Bu senaryodaki her köpeğin yalnızca bir teslim alma seçeneği ve bir teslim etme seçeneği vardır. Bu nedenle, visitRequestIndex her zaman 0 olur ve yanıtta bu değer atlanır.
Ziyaretler arasında ne olur?
Her rotada, transitions dizisi ziyaretler arasındaki seyahat ayrıntılarını listeler. visits ve transitions ayrı listeler olsa da zaman içinde aşağıdaki gibi birbirleriyle kesişirler:
transitions[0](Başlangıçtan ilk ziyarete kadar arabayla)visits[0](İlk ziyaret)transitions[1](İlk ziyaretten ikinci ziyarete kadar geçen süre)visits[1](İkinci ziyaret)...visits[N-1](Son ziyaret, N toplam ziyaret sayısıdır)transitions[N](Son ziyaretten sona kadar sürüş)
Her iki dizideki startTime alanına bakarak rotanın zaman çizelgesini takip edebilirsiniz. Geçişin startTime, sürücünün seyahate başladığı zamandır. Ziyaretin startTime ise sürücünün teslim alma veya bırakma işlemine başladığı zamandır.
Her geçiş, konumlar arasındaki tahmini sürüş süresini ve mesafeyi gösterir.
Aşağıdaki tabloda, köpek kreşi senaryosu için hem transitions hem de visits alanları kronolojik rota işlemleriyle eşleştirilmiştir.
| Sıra | Alan adı | startTime değeri (UTC) |
Ayrıntılar | İşlem |
|---|---|---|---|---|
| İlk geçiş | transitions[0] |
2024-02-13T15:55:04Z |
travelDuration: 1496stravelDistanceMeters: 7082 |
Bernese dağ köpeğini almak için kreşten 7 km uzaklıktaki yere 25 dakika boyunca arabayla gidin. Vardiya 07:55'te başlıyor. |
| İlk ziyaret | visits[0] |
2024-02-13T16:20:00Z |
shipmentIndex: 0 (JSON'da atlanır)isPickup: Doğru |
Bernese dağ köpeğini saat 08:20'den itibaren alabilirsiniz. Ziyaret 5 dakika sürer. |
| İkinci geçiş | transitions[1] |
2024-02-13T16:25:00Z |
travelDuration: 1992stravelDistanceMeters: 16589 |
Chihuahua'yı almak için saat 08:25'te Coit Kulesi'nden yola çıkıp 17 km (33 dakika) sürün. |
| İkinci ziyaret | visits[1] |
2024-02-13T16:58:12Z |
shipmentIndex: 1isPickup: Doğru |
Chihuahua'yı saat 08:58'de alın. Ziyaret 5 dakika sürer. |
| Üçüncü geçiş | transitions[2] |
2024-02-13T17:03:12Z |
travelDuration: 1252stravelDistanceMeters: 7860waitDuration: 356s |
Saat 09:03'te South Sunset Playground'dan kreşe dönmek için 8 km'lik yolu 21 dakikada kat eder. Saat 09:24'te varır ve bırakma aralığının açılması için 6 dakika bekler. |
| Üçüncü ziyaret | visits[2] |
2024-02-13T17:30:00Z |
shipmentIndex: 0 (JSON'da atlanır)isPickup: False (JSON'da atlanır) |
Bernese dağ köpeğini saat 09:30'dan itibaren köpek bakım merkezine bırakın. Ziyaret 5 dakika sürer. |
| Dördüncü geçiş | transitions[3] |
2024-02-13T17:35:00Z |
travelDuration: 0stravelDistanceMeters: 0 (JSON'da atlanır) |
Araba kullanılmaması gereken durumlar Chihuahua'yı saat 09:35'te kreşe bırakmaya hazır. |
| Dördüncü ziyaret | visits[3] |
2024-02-13T17:35:00Z |
shipmentIndex: 1isPickup: Yanlış (JSON'da atlanır) |
Chihuahua'yı saat 09:35'ten itibaren köpek bakım merkezine bırakın. Ziyaret 5 dakika sürer. |
| Beşinci geçiş | transitions[4] |
2024-02-13T17:40:00Z |
travelDuration: 0stravelDistanceMeters: 0 (JSON'da atlanır) |
Araba kullanılmaması gereken durumlar Sürücü vardiyasını 09:40'ta bitirir. |
Aşağıdaki kod örneğinde, yanıtın transitions[0] ve transitions[1] için bu sırayı nasıl sağladığı gösterilmektedir:
{
"routes": [
{
"transitions": [
{
"travelDuration": "1496s",
"travelDistanceMeters": 7082,
"waitDuration": "0s",
"totalDuration": "1496s",
"startTime": "2024-02-13T15:55:04Z"
},
{
"travelDuration": "1992s",
"travelDistanceMeters": 16589,
"waitDuration": "0s",
"totalDuration": "1992s",
"startTime": "2024-02-13T16:25:00Z"
},
...
]
}
]
}
Rotanın maliyeti ne kadar?
Belirli bir aracın maliyetine mi yoksa tüm filonun toplam maliyetine mi ihtiyacınız olduğuna bağlı olarak yanıttaki çeşitli alanlara bakabilirsiniz.
Aşağıdaki tabloda, yanıtta maliyet bilgilerini bulabileceğiniz tüm yöntemler listelenmiştir:
| Ebeveyn | Parametre | Kapsam | Açıklama |
|---|---|---|---|
ShipmentRoute |
routeCosts |
Rota başına | Belirli bir rota için belirli maliyet bileşenlerinin (saat başına maliyet gibi) dökümü. |
routeTotalCost |
Rota başına | Belirli bir rota için hesaplanan toplam maliyet. | |
Metrics |
totalCost |
Toplam (Tüm rotalar) | Çözümdeki tüm rotaların toplam maliyeti. |
costs |
Toplam (Tüm rotalar) | Çözümdeki tüm rotalarda birleştirilmiş maliyet bileşenlerinin dökümü. |
routeCosts ve costs içinde belirtilen maliyetler, isteğinizde belirttiğiniz maliyet kısıtlamalarını yansıtır. Daha fazla bilgi için Maliyet modeliyle ilgili temel kavramlar belgesini inceleyin.
Bu köpek bakım merkezi senaryosunda, atlanan bir sevkiyat olduğu için rota başına maliyet ve toplam maliyet farklıdır. Rota maliyeti yalnızca söz konusu rotayla ilişkili maliyetleri (sürücünün ücreti) içerirken, birleştirilmiş toplam maliyet atlanan gönderinin cezasını da içerir. Aşağıdaki kod örneğinde, bu değerlerin yanıtta nerede bulunacağı gösterilmektedir:
{
"routes": [
{
"vehicleStartTime": "2024-02-13T15:55:04Z",
"vehicleEndTime": "2024-02-13T17:40:00Z",
...
"routeCosts": {
"model.vehicles.cost_per_hour": 47.22
},
"routeTotalCost": 47.22
}
],
"metrics": {
"totalCost": 147.22,
"costs": {
"model.shipments.penalty_cost": 100,
"model.vehicles.cost_per_hour": 47.22
},
...
}
}
Rota planına göre sürücü, minibüsü 07:55 ile 09:40 arasında kullanır. Bu süre yaklaşık 1 saat 45 dakikadır (6.296 saniye). Belirlediğiniz saatlik 27 ABD doları ücretle rota maliyeti 47, 22 ABD doları olur. Alman çoban köpeği sevkiyatını atladığı için optimizasyon aracı 100 ABD doları ceza maliyeti ekler ve toplam maliyet 147,22 ABD doları olur.
Gönderim neden atlandı?
Optimizasyon aracı, gerçekleştirmediği tüm gönderileri skippedShipments dizisinde listeler. Gönderimin atlanma nedeni, penaltyCost ayarlayıp ayarlamadığınıza bağlıdır:
- Zorunlu gönderiler (
penaltyCostyok): Optimizasyon aracı, maliyetli olduğu için bu gönderileri asla atlamaz. Yalnızca gönderiyi herhangi bir rotaya sığdıramazsa (ör. zaman aralığı diğer gönderilerle çakıştığı için) gönderiyi atlar. - İsteğe bağlı gönderiler (
penaltyCostile): Optimize edici, bunları gerçekleştirmek cezadan daha pahalıya mal olduğunda da atlayabilir. Bazı gönderileri diğerlerine göre öncelikli hâle getirmek için farklı ceza maliyetleri belirleyebilirsiniz.
Bu senaryoda, Alman çoban köpeğinin teslim alma zaman aralığı, Bern dağ köpeğinin zaman aralığıyla çakışıyor. Coit Tower ve Land's End arasında 25 dakika mesafe olduğundan sürücü, 20 dakikalık süre içinde her iki yolcuyu da alamaz. Optimizasyon aracı bunlardan birini atlamalıdır. Alman çoban köpeğinin ceza maliyeti daha düşük olduğundan (normal müşteri için 1.000 ABD doları yerine 100 ABD doları), optimize edici bu randevuyu atlar ve 100 ABD doları ceza alır.
Aşağıdaki kod örneğinde, yanıttaki skippedShipments nesnesi gösterilmektedir:
{
...
"skippedShipments": [
{
"index": 2,
"label": "German shepherd",
"penaltyCost": 100
}
],
...
}
Yanıttaki skippedShipments nesnesi aşağıdaki alanları içerir:
index: İsteğinizdeki gönderinin sıfır tabanlı dizini (üçüncü gönderi için 2).label: İstekte belirttiğiniz etiket ("Alman çoban köpeği").penaltyCost: İstekte belirttiğiniz ve API'nin toplam maliyete eklediği ceza maliyeti.
Optimize edicinin bir gönderiyi atlamasını önlemek için çakışmaya neden olan kısıtlamayı gevşetin. Örneğin, Alman çoban köpeğinin sahibinden daha esnek bir teslim alma zaman aralığı isteyin ve ardından isteğinizde bu teslim alma işlemi için timeWindows değerini güncelleyin.
Örnekteki yanıt alanları
Aşağıdaki tabloda, örnek senaryonun OptimizeToursResponse bölümünde döndürülen tüm yanıt alanları açıklanmaktadır. Rota planını anlamak için her alanı kullanmanız gerekmese de işletmenizin ihtiyaçlarına uygun şekilde OptimizeToursRequest ayarlarınızı nasıl yapacağınızı belirlemek için bu alanları analiz edebilirsiniz. Daha fazla bilgi için Rota planı yaşam döngüsü başlıklı makaleyi inceleyin.
İçerikleri üst öğeye veya metin aramasına göre filtreleyebilirsiniz.
| Ebeveyn | Parametre | Mülk Türü | Açıklama |
|---|---|---|---|
OptimizeToursResponse |
routes |
Nesne dizisi (ShipmentRoute) |
Bu, her araç için hesaplanan rotaların listesini içerir (araç başına bir rota). Bu köpek bakım merkezi senaryosunda, tek bir minibüsünüz için ayrıntılı rota planı yer alır. |
metrics |
Nesne (Metrics) |
Bu, tüm rotalarda birleştirilmiş çözüm için genel metrikleri içerir. Bu köpek kreşi senaryosunda, günün maliyetleri ve operasyon sürelerinin özeti bu şekildedir. | |
skippedShipments |
Nesne dizisi (SkippedShipment) |
Bu, çözümde atlanan gönderilerin listesini içerir. Bu senaryoda, üçüncü köpek (Alman kurdu) atlanır. | |
ShipmentRoute |
vehicleStartTime |
Zaman damgası | Bu, aracın rotasına başladığı zamandır. Bu köpek kreşi senaryosunda sürücü, minibüsü saat 07:55'te sürmeye başlar. |
vehicleEndTime |
Zaman damgası | Aracın rotasını tamamladığı zamandır. Bu köpek kreşi senaryosunda, sürücü minibüsü saat 09:40'ta sürmeyi bırakır. | |
visits |
Nesne dizisi (Visit) |
Bu, rotadaki teslim alma ve teslim etme işlemlerinin sıralı listesidir. Bu köpek kreşi senaryosunda, iki köpeğin alınması ve bırakılması sırası bu şekildedir. | |
transitions |
Nesne dizisi (Transition) |
Bu, ziyaretler arasındaki mesafe, seyahat ve bekleme süresinin sıralı listesidir. Bu köpek kreşi senaryosunda, Coit Kulesi, South Sunset Oyun Alanı Parkı ve kreş arasındaki sürüş mesafesi ve süresi ayrıntılı olarak gösterilir. | |
metrics |
Nesne (AggregatedMetrics) |
Bunlar, bu tek rotaya özgü metriklerdir. Bu köpek kreşi senaryosunda, bu minibüsün istatistikleri bu şekildedir. Bu metrikler, isteğinizde belirttiğiniz maliyetlere dayanır. Daha fazla bilgi için Maliyet modeliyle ilgili temel kavramlar belgesine bakın. | |
routeCosts |
Nesne (Harita) | Bu, bu rotaya özgü maliyetlerin dökümüdür. Köpek bakım merkezi senaryomuzda, sürücünün saatlik 27 dolarlık ücretinden hesaplanan maliyet gösteriliyor. | |
routeTotalCost |
Sayı | Bu, söz konusu rota için toplam maliyettir. Bu köpek kreşi senaryosunda, bu minibüsün rotası için toplam maliyet 47.22. |
|
vehicleFullness |
Nesne (VehicleFullness) |
Bu, aracın çalışma sınırlarına (ör. süre, mesafe ve yük) ne kadar yaklaştığının dökümüdür. Bu köpek bakım merkezi senaryosunda, sürücüyü yalnızca vardiya başlangıç ve bitiş saatleri kısıtlar. Bu nedenle, optimize edici vehicleFullness değerini gerçek rota süresinin ve sürücünün vardiyası için kullanılabilir maksimum sürenin kesri olarak hesaplar. |
|
Visit |
shipmentIndex |
Tamsayı | Bu, orijinal istekteki gönderinin sıfır tabanlı dizinidir. Bu köpek kreşi senaryosunda 0, Bernese dağ köpeğini, 1 ise Chihuahua'yı temsil eder. |
isPickup |
Boole | Bu ziyaret bir teslim alma işlemiyse bu alan "true" değerini alır. Köpek kreşi senaryomuzda, köpek teslim alınırken bu değer "true", köpek kreşe bırakılırken ise "false" (veya eksik) olur. | |
startTime |
Zaman damgası | Bu, ziyaretin tahmini başlangıç zamanıdır. Köpek kreşi senaryomuzda bu, sürücünün kapıyı çaldığı andır. | |
detour |
Süre | Bu, optimize edicinin bu gönderinin yolculuğuna eklediği ek süredir. Sapma, gerçek rota planı ile sürücünün tamamlaması gereken başka gönderi veya görevleri yoksa ideal doğrudan yolculuk arasındaki farktır. Bu köpek kreşi senaryosunda, Bernese dağ köpeğini almak için yapılan ilk ziyaretin sapma süresi 0'dır. Çünkü sürücü, kreşten doğrudan bu alma noktasına gider. Şivava'yı almak için yapılan sapma 43 dakikadır. Çünkü sürücü önce Bernese dağ köpeğini alır (ve yükleme için 5 dakika harcar). |
|
shipmentLabel |
Dize | Bu, her gönderi için istekte yer alan etikettir. Bu köpek kreşi senaryosunda etiketler "Chihuahua" veya "Bernese dağ köpeği"dir. | |
visitType |
Dize (Enum) | Bu, ziyaretin türünü gösterir. Teslim almalar için PICKUP_SHIPMENT,
teslimatlar için DELIVER_SHIPMENT olabilir. Bu senaryoda,
PICKUP_SHIPMENT veya DELIVER_SHIPMENT değerini alır. |
|
Transition |
travelDuration |
Süre | Bu, ziyaretler arasındaki geçiş sırasında seyahat için harcanan süredir. Örneğin, bu köpek kreşi senaryosunda sürücü, kreşten Coit Kulesi'ne gidip Bernese dağ köpeğini almak için yaklaşık 25 dakika harcar. |
travelDistanceMeters |
Tamsayı | Bu, geçiş sırasında metre cinsinden kat edilen mesafedir. Örneğin, bu köpek kreşi senaryosunda sürücü, Bernese dağ köpeğini almak için kreşten Coit Kulesi'ne 7 kilometre yol kat eder. | |
waitDuration |
Süre | Bu, bir sonraki teslim alma veya teslimat işleminden önce bekleme süresidir. Bu köpek kreşi senaryosunda, sürücü saat 09:30'da bırakma aralığı açılmadan önce kreşe ulaştığı için üçüncü geçiş 6 dakikadır (356 saniye). Diğer geçişler için bu değer 0'dır. | |
totalDuration |
Süre | Bu, sürüş ve bekleme dahil olmak üzere geçişin toplam süresidir. Örneğin, sürücü ilk geçişte 25 dakika (21 dakika sürüş ve 0 dakika bekleme), kreşe dönüşteki üçüncü geçişte ise 27 dakika (21 dakika sürüş ve 6 dakika bekleme) harcar. | |
startTime |
Zaman damgası | Bu, seyahatin başladığı zamandır. Önceki ziyaretin tamamlanma zamanıyla (veya ilk geçiş için aracın başlangıç zamanıyla) eşleşir. Köpek kreşi senaryosunda, ilk geçiş sürücü kreşten ayrıldığında saat 07:55'te başlar ve ikinci geçiş sürücü Coit Tower'dan ayrıldığında saat 08:25'te başlar. | |
Metrics |
aggregatedRouteMetrics |
Nesne (AggregatedMetrics) |
Bu, tüm rotalardaki metriklerin toplamıdır. Köpek bakım merkezi senaryosunda, bunlar tek bir minibüsünüz için toplam metriklerdir. |
usedVehicleCount |
Tamsayı | Bu, çözümde kullanılan araç sayısıdır. Bu köpek kreşi senaryosunda yalnızca bir minibüs kullanıyorsunuz. | |
earliestVehicleStartTime |
Zaman damgası | Bu, tüm araçlar arasındaki en erken başlangıç zamanıdır. Bu köpek kreşi senaryosunda, minibüsün rotası 07:55'te başlıyor. | |
latestVehicleEndTime |
Zaman damgası | Bu, tüm araçlar arasındaki en geç bitiş zamanıdır. Bu köpek kreşi senaryosunda, minibüsün rotası 09:40'ta sona eriyor. | |
totalCost |
Sayı | Bu, çözümün toplam maliyetidir. Bu köpek bakım merkezi senaryosunda, tüm rota planının günlük maliyeti 147.22 (47.22 sürücü ücreti ve 100 atlanan gönderi cezası dahil). |
|
costs |
Nesne (Harita) | Bu, toplam maliyetin kategoriye göre dökümüdür. Bu köpek kreşi senaryosunda optimize edici, rotanın maliyetini saatlik maliyete ve atlanan Alman kurdu için ceza maliyetine göre hesapladı. | |
AggregatedMetrics |
performedShipmentCount |
Tamsayı | Bu, başarıyla yönlendirilen gönderilerin sayısıdır. Bu köpek kreşi senaryosunda, sürücü iki köpeği taşıyor. |
travelDuration |
Süre | Bu, seyahat için harcanan toplam süredir. Bu köpek kreşi senaryosunda sürücü 79 dakika seyahat eder. | |
waitDuration |
Süre | Bu, beklemede geçirilen toplam süredir. Bu köpek kreşi senaryosunda, sürücü kreşte 6 dakika (356 saniye) rölantide bekleyerek teslimat penceresinin açılmasını bekler. | |
delayDuration |
Süre | Bu, geçiş özelliklerini kullanarak tanımladığınız ek süredir (ör. park için ayrılan süre). Bu köpek bakım merkezi senaryosunda, istekte herhangi bir geçiş özelliği tanımlamadığınız için bu değer sıfırdır. | |
breakDuration |
Süre | Bu, molalarda geçirilen toplam süredir. Bu köpek kreşi senaryosunda hiçbir mola yok. | |
visitDuration |
Süre | Bu, ziyaretlerde hizmet sunmak için harcanan toplam süredir. Bu köpek bakım merkezi senaryosunda bu süre 20 dakikadır (4 ziyaret için ziyaret başına 5 dakika). | |
totalDuration |
Süre | Bu, tüm süre bileşenlerinin toplamıdır. Bu köpek bakım merkezi senaryosunda toplam süre 105 dakikadır (6.296 saniye). | |
travelDistanceMeters |
Tamsayı | Bu, metre cinsinden toplam seyahat mesafesidir. Bu köpek kreşi senaryosunda sürücü toplam 31, 5 km mesafe kat eder. | |
performedShipmentPenaltyCostSum |
Çift | Bu, gerçekleştirilen tüm gönderilerin ceza maliyetlerinin toplamıdır. Bu senaryoda, sürücü Bernese dağ köpeği ve Chihuahua'yı (her birinin ceza maliyeti 1000) aldığı için bu değer 2000 olur. |
|
VehicleFullness |
maxFullness |
Sayı | Bu, tüm VehicleFullness alanlarındaki en yüksek kullanım oranıdır. Bu köpek kreşi senaryosunda, sürücü minibüsü sabah vardiyasının yalnızca 105 dakikasında kullandığı için bu değer 0, 35'tir.İstekte sabah vardiyasını 5 saat olarak tanımlamıştınız. |
activeSpan |
Sayı | Bu, sürücünün toplam vardiya süresinin rota planının çalışma saatlerine oranıdır. Daha düşük bir sayı, sürücünün iş gününün daha az bir kısmını araç kullanarak geçirdiği anlamına gelir. Bu köpek kreşi senaryosunda, sürücü 5 saatlik vardiya sırasında minibüsü 105 dakika kullandığı için bu değer 0,35'tir. | |
SkippedShipment |
index |
Tamsayı | Bu, orijinal istekteki gönderinin sıfır tabanlı dizinidir. Bu senaryoda 2, Alman çoban köpeğini temsil eder. |
label |
Dize | Bu, istekte gönderi için belirttiğiniz etikettir. | |
penaltyCost |
Sayı | Bu, optimize edici bu gönderiyi atladığında ödemeniz gereken ceza maliyetidir. İstekte belirttiğiniz penaltyCost ile eşleşir. |