Hangi ziyaretlerin sınırlanması ve nasıl sınırlanması gerektiği hakkındaki bilgileri içeren, isteğe yerleştirilen çözüm.
JSON gösterimi |
---|
{ "routes": [ { object ( |
Alanlar | |
---|---|
routes[] |
Yerleştirilecek çözümün yolları. 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 kısıtlanır. |
ConstraintRelaxation
Bir araç grubu için ziyaretlerin hangi eşik(ler) kısıtlamalarında hangi düzeyde rahatlatılacağını belirtir. skipped_shipment
alanında listelenen gönderimler atlanacak şekilde sınırlandırılmıştır; diğer bir deyişle, 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 kısıtlanır ve bu rotalara yeni ziyaret eklenemez veya eklenemez. Ayrıca, araç boşsa (ör. hiç ziyaret yoksa ve usedIfRouteIsEmpty
modelde false değerine ayarlıysa), aracın routes
için başlangıç ve bitiş zamanı tamamen kısıtlanır.
relaxations(i).level
, #j ziyaretine uygulanan kısıtlama gevşetme düzeyini belirtir:
route.visits(j).start_time >= relaxations(i).threshold_time
VEj + 1 >= relaxations(i).threshold_visit_count
Benzer şekilde, araç aşağıdaki koşulları karşılıyorsa araç başlangıcı relaxations(i).level
rahatlığıyla ayarlanır:
vehicleStartTime >= relaxations(i).threshold_time
VErelaxations(i).threshold_visit_count == 0
ve araç uçu, aşağıdaki koşullar karşılanıyorsarelaxations(i).level
olacak şekilde rahatlatılmıştır:vehicleEndTime >= relaxations(i).threshold_time
VEroute.visits_size() + 1 >= relaxations(i).threshold_visit_count
Bir ziyaret thresholdVisitCount
ile karşılanırsa VEYA thresholdTime
, aynı level
değerine sahip iki relaxations
ekler: biri yalnızca thresholdVisitCount
içeren, diğeri yalnızca thresholdTime
içeren iki relaxations
. Bir ziyaret birden fazla relaxations
koşulunu karşılıyorsa en rahat düzey geçerli olur. Sonuç olarak, araç başlangıcından rota ziyaretlerine kadar, aracın bitişine kadar, dinlenme seviyesi daha rahat hale gelir, yani rota ilerledikçe rahatlama seviyesi artmıyor.
Herhangi bir relaxations
değerinin eşik koşullarını karşılamayan rota ziyaretlerinin zamanlaması ve dizisi tamamen kısıtlanır ve bu adım sıralarına ziyaret eklenemez. Ayrıca, araç başlangıcı veya bitişi gevşeme koşullarını karşılamıyorsa araç boş olmadığı sürece süre sabittir.
JSON gösterimi |
---|
{
"level": enum ( |
Alanlar | |
---|---|
level |
|
thresholdTime |
Nanosaniye çözünürlük ve en fazla dokuz kesir basamağı olan, RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
thresholdVisitCount |
|
Seviye
Ziyarete uygulanan ve eşik koşullarını karşıladığında izleyenler için uygulanan farklı kısıtlama gevşetme düzeylerini ifade eder.
Aşağıdaki sıralama rahatlamayı artırma sırasına göre verilmiştir.
Sıralamalar | |
---|---|
LEVEL_UNSPECIFIED |
Örtülü varsayılan gevşeme düzeyi: Kısıtlamalar gevşetilmez, yani tüm ziyaretler tamamen kısıtlanır. Bu değer, |
RELAX_VISIT_TIMES_AFTER_THRESHOLD |
Ziyaret başlangıç zamanları ve araç başlangıç/bitiş zamanları gevşetilir, ancak her ziyaret aynı araca bağlıdır ve ziyaret sırasına dikkat edilmelidir: Aralarına veya önceden ziyaretlere izin verilmez. |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD |
RELAX_VISIT_TIMES_AFTER_THRESHOLD ile aynıdır, ancak ziyaret sırası da gevşektir: Ziyaretler yalnızca kendi araçlarına bağlıdır. |
RELAX_ALL_AFTER_THRESHOLD |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD ile aynıdır ancak araç rahattır: Eşik zamanında veya sonrasında ziyaretler tamamen ücretsizdir ve gerçekleştirilemeyebilir. |