Hangi ziyaretlerin kısıtlanması gerektiği ve nasıl kısıtlanması gerektiği ile ilgili bilgileri de içeren isteğe eklenen çözümdür.
JSON gösterimi |
---|
{ "routes": [ { object ( |
Alanlar | |
---|---|
routes[] |
Yerleştirme çözümünün rotaları. Bazı rotalar orijinal çözümden çıkarılabilir. Rotalar ve atlanan gönderiler, |
skippedShipments[] |
Eklenecek çözümün gönderimi atlandı. Bazıları orijinal çözümden çıkarılabilir. |
constraintRelaxations[] |
Sıfır veya daha fazla araç grubu için kısıtlamaların ne zaman ve ne kadar gevşetileceğini belirtir. Bu alan boşsa, boş olmayan tüm araç rotaları tamamen sınırlandırılır. |
ConstraintRelaxation
Bir araç grubu için ziyaretlerdeki kısıtlamaların hangi eşiklerde ve hangi seviyeye gevşetileceğini belirtir. skipped_shipment
alanında listelenen gönderimlerin atlanması zorunludur; Yani gerçekleştirilemez.
JSON gösterimi |
---|
{
"relaxations": [
{
object ( |
Alanlar | |
---|---|
relaxations[] |
|
vehicleIndices[] |
|
Dinlenme
relaxations
boşsa routes
tarihindeki tüm ziyaretlerin başlangıç zamanı ve sırası tamamen sınırlandırılır ve bu rotalara yeni ziyaret eklenemez veya eklenemez. Ayrıca, bir aracın routes
bölgesindeki başlangıç ve bitiş zamanı tamamen sınırlandırılmıştır (araç boş olmadığı (yani, ziyaret olmadığı ve modelde usedIfRouteIsEmpty
değeri yanlış değerine ayarlandığı) sürece).
relaxations(i).level
, aşağıdaki koşulları karşılayan #j ziyaretine uygulanan kısıtlama hafifletme düzeyini belirtir:
route.visits(j).start_time >= relaxations(i).threshold_time
VEj + 1 >= relaxations(i).threshold_visit_count
Benzer şekilde, aracın çalıştırılması gereken koşullar aşağıdaki koşulları karşılıyorsa relaxations(i).level
değerine ayarlanır:
vehicleStartTime >= relaxations(i).threshold_time
VErelaxations(i).threshold_visit_count == 0
ve araç ucu şu koşulları karşılıyorsarelaxations(i).level
seviyesine esnektir:vehicleEndTime >= relaxations(i).threshold_time
VEroute.visits_size() + 1 >= relaxations(i).threshold_visit_count
Ziyaret thresholdVisitCount
koşullarını karşılıyorsa rahatlama seviyesi uygulamak için thresholdTime
, aynı level
değerine sahip iki relaxations
ekleyin. Bunlardan birinde yalnızca thresholdVisitCount
, diğerinde ise yalnızca thresholdTime
grubu olacak. Bir ziyaret birden fazla relaxations
koşullarını karşılıyorsa en esnek seviye uygulanır. Sonuç olarak, aracın başlangıcından rota ziyaretleri boyunca aracın bitişine kadar rahatlama seviyesi daha rahat hale gelir. Diğer bir deyişle, rota ilerledikçe rahatlama seviyesi azalmaz.
Herhangi bir relaxations
öğesinin eşik koşullarını karşılamayan rota ziyaretlerinin zamanlaması ve dizisi tamamen sınırlıdır ve bu dizilere ziyaret eklenemez. Ayrıca, aracın başlangıcı veya bitişi herhangi bir gevşeme koşullarını karşılamıyorsa araç boş olmadığı sürece süre sabittir.
JSON gösterimi |
---|
{
"level": enum ( |
Alanlar | |
---|---|
level |
|
thresholdTime |
Gevşetme RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: |
thresholdVisitCount |
|
Seviye
Bir ziyarete uygulanan ve eşik koşullarını karşıladığında gerçekleşen farklı kısıtlama gevşetme düzeylerini ifade eder.
Aşağıdaki numaralandırma, gevşetmeyi artırmak içindir.
Sıralamalar | |
---|---|
LEVEL_UNSPECIFIED |
Örtülü varsayılan rahatlama seviyesi: Hiçbir kısıtlama gevşetilemez, diğer bir deyişle tüm ziyaretler tamamen sınırlandırılmıştır. Bu değer, |
RELAX_VISIT_TIMES_AFTER_THRESHOLD |
Ziyaret başlangıç ve araç başlangıç/bitiş zamanları gevşetilir ancak her ziyaret aynı araca bağlı kalır ve ziyaret sırasına dikkat edilmelidir: Aralarına veya öncesine hiçbir ziyaret eklenemez. |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD |
RELAX_VISIT_TIMES_AFTER_THRESHOLD ile aynıdır, ancak ziyaret dizisi de esnektir: Ziyaretler yalnızca araca bağlı kalır. |
RELAX_ALL_AFTER_THRESHOLD |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD ile aynı, ancak araç aynı zamanda rahat. Eşik zamanında veya sonrasında ziyaretler tamamen ücretsizdir ve potansiyel olarak kötü performansa neden olabilir. |