Zaman aralıkları, bir rotadaki etkinliklerin zamanlamasını belirtir. Bu etkinlikler arasında sürücünün rotasının başlangıcı ve bitişi, planlanan teslim alma ve teslimat zamanları veya rotanın tamamının süresi yer alabilir.
Zaman aralıkları aşağıdaki gibi hedefleri destekleyebilir:
- Belirtilen zaman aralıklarında teslim alma ve teslimat işlemlerini tamamlamaya öncelik verin.
- Genel çalışma saatleri içinde faaliyet gösterecek rotalar planlayın.
- Araçların rotalara belirtilen zaman aralıklarında başlayıp sonlandırdığından emin olun.
Yapı
Şemada gösterildiği gibi, zaman aralıkları aşağıdaki şekilde yapılandırılır:
globalStartTimeveglobalEndTime,ShipmentModelözellikleridir.timeWindowsşu mülklerin özellikleridir:Shipmentiçindepickups.Shipmentiçindedeliveries.
startTimeWindowsveendTimeWindows,Vehicleözellikleridir.
Essentials yapılacaklar listesi
Aşağıdaki kontrol listesinde, zaman aralıklarıyla ilgili olası hataları önlemek için gerekli bilgiler açıklanmaktadır. Bu liste, isteğinizi doğrulamanıza ve yanıtınızla ilgili sorunları gidermenize yardımcı olabilir.
Özellikler
Aşağıdaki tabloda genel zaman aralığı özellikleri açıklanmaktadır.
| Mülk | Biçim | Açıklama |
|---|---|---|
globalStartTime |
Timestamp |
Herhangi bir etkinlik için en erken saat. |
globalEndTime |
Timestamp |
Herhangi bir etkinlik için en son saat. |
Aşağıdaki tabloda, gönderimlerdeki ve araçlardaki zaman aralığı özellikleri açıklanmaktadır.
| Ebeveyn | Mülk | Biçim | Açıklama |
|---|---|---|---|
Shipment.pickups |
timeWindows |
TimeWindow mesaj türleri dizisi. |
Kargo teslimatı için zaman aralıklarını belirtir. |
Shipment.deliveries |
timeWindows |
Bir kargo teslimatı için zaman aralıklarını belirtir. | |
Vehicle |
startTimeWindows |
Bir aracın çalışma programının başlangıç zamanını belirtir. | |
endTimeWindows |
endTimeWindows |
Bir aracın çalışma programının bitiş zamanını belirtir. |
Aşağıdaki tabloda, TimeWindow mesaj türünün özellikleri açıklanmaktadır.
| Mülk | Biçim | Açıklama |
|---|---|---|
startTime |
Dize (RFC3339 UTC "Zulu" biçimi) | Bir zaman aralığının başlangıcı. |
endTime |
Dize (RFC3339 UTC "Zulu" biçimi) | Bir zaman aralığının sonu. |
Örnekler
Bu bölümde üç tür örnek ele alınmaktadır:
- Zaman aralıklarının yapısını gösteren kod örnekleri.
- Zaman aralıklarını kullanarak bir işletme hedefine ulaşmanın bir yolunu gösteren örnek bir senaryo.
- Örnek senaryoda ayarlanan değerleri içeren bir istek örneği.
Kod örnekleri
Aşağıdaki bölümlerde, farklı zaman aralığı türlerine ait kod örnekleri gösterilmektedir.
Genel zaman aralıkları
Aşağıdaki kod örneğinde, global zaman aralıklarının yapısı gösterilmektedir:
{ "model": { "globalStartTime": "YYYY-MM-DDTHH:MM:SSZ", "globalEndTime": "YYYY-MM-DDTHH:MM:SSZ", "shipments": [ ... ], "vehicles": [ ... ] } }
Teslim alma ve teslimat zaman aralıkları
Aşağıdaki kod örneğinde, bir gönderinin teslim alma ve teslimat işlemlerindeki zaman aralıklarının yapısı gösterilmektedir:
{ "model": { "shipments": [ { "pickups": [ { "timeWindows": [ { "startTime": "YYYY-MM-DDTHH:MM:SSZ", "endTime": "YYYY-MM-DDTHH:MM:SSZ" } ] } ], "deliveries": [ { "timeWindows": [ { "startTime": "YYYY-MM-DDTHH:MM:SSZ", "endTime": "YYYY-MM-DDTHH:MM:SSZ" } ] } ] } ], "vehicles": [ ... ] } }
Araç zaman aralıkları
Aşağıdaki kod örneğinde, bir aracın zaman aralıklarının yapısı gösterilmektedir:
{ "model": { "shipments": [ ... ], "vehicles": [ { "startTimeWindows": [ { "startTime": "YYYY-MM-DDTHH:MM:SSZ", "endTime": "YYYY-MM-DDTHH:MM:SSZ" } ], "endTimeWindows": [ { "startTime": "YYYY-MM-DDTHH:MM:SSZ", "endTime": "YYYY-MM-DDTHH:MM:SSZ" } ] } ] } }
Örnek senaryo
Bu bölümde, köpek kreşi işletmesi senaryosu kullanılmaktadır. Örnekte, iki farklı evden köpek alma ve bırakma rotaları optimize ediliyor. Köpek sahiplerinin alma ve bırakma zaman aralıkları aynı. Optimizasyon aracı; kreşin çalışma saatlerine, müşterilerin belirli teslim alma ve bırakma zamanlarına ve sürücünün çalışma saatlerine uymalıdır.
Bu örnekte, istekteki özellik değerleri şunlardır:
| Ebeveyn | Mülk | Değer | Senaryo |
|---|---|---|---|
ShipmentModel |
globalStartTime |
2023-01-13T07:00:00Z |
Köpek gündüz bakım merkezinizin açılış saatini gösterir. Bu saatten önce teslim alma veya teslimat yapılamaz. |
ShipmentModel |
globalEndTime |
2023-01-13T19:00:00Z |
Köpek gündüz bakımınızın kapanış saatini gösterir. Tüm teslim alma ve teslimat işlemleri bu zamana kadar tamamlanmalıdır. |
Shipment.pickups |
timeWindows |
startTime:2023-01-13T07:30:00Z |
Köpeğin müşterinin evinden alınması için kabul edilebilir aralığı tanımlar. Bu örnekte, her iki müşteriye de teslim alma için 07:30 ile 09:00 arasında müsait olmalarını söylediniz. |
endTime:2023-01-13T09:00:00Z |
|||
Shipment.deliveries |
timeWindows |
startTime:2023-01-13T17:00:00Z |
Köpeğin müşterinin evine bırakılması için kabul edilebilir zaman aralığını tanımlar. Bu örnekte, her iki müşteriye de köpeklerinin 17:00 ile 18:30 arasında bırakılacağını söylediniz. |
endTime:2023-01-13T18:30:00Z |
|||
Vehicle |
startTimeWindows |
startTime:2023-01-13T07:00:00ZendTime:2023-01-13T07:15:00Z |
Aracın çalışmaya başlayabileceği (07:00-07:15) ve çalışmayı durdurabileceği (17:00-17:15) kabul edilebilir aralığı tanımlar. |
endTimeWindows |
startTime:2023-01-13T18:45:00ZendTime:2023-01-13T19:00:00Z |
Aşağıdaki şemada, bu rotayı etkileyen zaman aralıkları gösterilmektedir.
Bu senaryoda, diyagramda gösterildiği gibi zaman aralıkları şu şekilde çalışır:
- Genel zaman aralığı, köpek kreşinin çalışma saatlerini gösterir ve diğer tüm zaman aralıkları bu zaman aralığı içinde olmalıdır.
- Teslim alma ve teslimat işlemlerinin günün başında ve sonunda kendi
timeWindows'si vardır. - Aracın
startTimeWindows, araç operatörüne çalışmaya başlaması gereken zaman aralığını verir.endTimeWindowsise operatörün günü bitirmesi gereken başka bir zaman aralığı sağlar. - İlk
startTimeWindowbaşlangıç saati ve sonendTimeWindowbitiş saati, aracın çalışma saatlerini tanımlar. Bu durumda, çalışma saatleri küresel zaman aralığıyla aynıdır.
İstek örneği
Aşağıdaki örnekte, örnek senaryo zaman aralıkları değerlerini içeren bir optimizeTours isteğinin yapısı gösterilmektedir.
{ "model": { "globalStartTime": "2023-01-13T07:00:00Z", "globalEndTime": "2023-01-13T19:00:00Z", "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 }, "timeWindows": [ { "startTime": "2023-01-13T07:30:00Z", "endTime": "2023-01-13T09:00:00Z" } ] } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "timeWindows": [ { "startTime": "2023-01-13T17:00:00Z", "endTime": "2023-01-13T18:30:00Z" } ] } ] }, { "pickups": [ { "arrivalLocation": { "latitude": 37.7359, "longitude": -122.5011 }, "timeWindows": [ { "startTime": "2023-01-13T07:30:00Z", "endTime": "2023-01-13T09:00:00Z" } ] } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "timeWindows": [ { "startTime": "2023-01-13T17:00:00Z", "endTime": "2023-01-13T18:30:00Z" } ] } ] } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "costPerHour": 27, "startTimeWindows": [ { "startTime": "2023-01-13T07:00:00Z", "endTime": "2023-01-13T07:15:00Z" } ], "endTimeWindows": [ { "startTime": "2023-01-13T18:45:00Z", "endTime": "2023-01-13T19:00:00Z" } ] } ] } }
Esnek zaman aralıkları
Zaman aralıkları, TimeWindow mesaj türünde softStartTime ve softEndTime tanımlanarak esnek kısıtlamalar olarak kullanılabilir. Bu sayede, optimizasyon aracı belirtilen maliyetle belirtilen zaman aralığından sapabilir ve faydalı olduğunda zaman aralıklarına sıkı sıkıya bağlı kalmak yerine genel optimizasyona öncelik verebilir.
Esnek zaman aralıklarıyla ilgili aşağıdaki kullanım sınırlamaları geçerlidir:
globalStartTimeveglobalEndTimeiçinTimeWindowileti türü kullanılmadığından bu tür iletilere uygulanamaz.- Yalnızca bir listede tek bir
TimeWindowolduğunda geçerlidir.
Özellikler
Aşağıdaki tabloda, zaman aralıklarıyla ilgili esnek kısıtlama özellikleri açıklanmaktadır.
| Mülk adı | Biçim | Tesis açıklaması |
|---|---|---|
softStartTime |
Zaman damgası | Esnek zaman aralığının başlangıcını belirtir. Bu saatten önce bir etkinlik gerçekleşirse maliyet oluşur. |
softEndTime |
Zaman damgası | Esnek zaman aralığının sonunu belirtir. Bu saatten sonra bir etkinlik gerçekleşirse maliyet oluşur. |
costPerHourBeforeSoftStartTime |
sayı | Bir etkinlik softStartTime tarihinden önce başladığında oluşan saatlik maliyet. Bu özellik, softStartTime kullanılırken zorunludur. Maliyetleri uygulama hakkında daha fazla bilgi edinmek için Maliyet modeli temel kavramına bakın. |
costPerHourAfterSoftEndTime |
sayı | Bir etkinlik softEndTime tarihinden sonra sona erdiğinde saat başına oluşan maliyet. Bu özellik, softEndTime kullanılırken zorunludur. Maliyetleri uygulama hakkında daha fazla bilgi edinmek için Maliyet modeli temel kavramına bakın. |
Kod örneği
Aşağıdaki örnekte, TimeWindow mesaj türünün esnek kısıtlama özelliklerinin yapısı gösterilmektedir:
{ "softStartTime": "SOFT_START_TIME", "softEndTime": "SOFT_END_TIME", "costPerHourBeforeSoftStartTime": COST_BEFORE_START_TIME, "costPerHourAfterSoftEndTime": COST_AFTER_END_TIME }