Hangi ziyaretlerin nasıl kısıtlanması gerektiğiyle ilgili bilgileri içeren, isteğe yerleştirilmiş çözüm.
| JSON gösterimi |
|---|
{ "routes": [ { object ( |
| Alanlar | |
|---|---|
routes[] |
Enjekte edilecek çözüm rotaları. Bazı rotalar orijinal çözümden çıkarılabilir. Rotalar ve atlanan gönderiler, |
skippedShipments[] |
Çözümün yerleştirileceği gönderimler atlandı. Bazıları orijinal çözümde yer almayabilir. |
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 ziyaretlerle ilgili kısıtlamaların hangi eşiklerde ve ne ölçüde gevşetileceğini belirtir. skipped_shipment alanında listelenen gönderiler atlanmak zorundadır. Yani bu gönderiler gerçekleştirilemez.
| JSON gösterimi |
|---|
{
"relaxations": [
{
object ( |
| Alanlar | |
|---|---|
relaxations[] |
|
vehicleIndices[] |
Ziyaret kısıtlamasının
|
Dinlenme
relaxations boşsa routes üzerindeki tüm ziyaretlerin başlangıç saati ve sırası tamamen kısıtlanır ve bu rotalara yeni ziyaretler eklenemez. Ayrıca, araç boş değilse (yani ziyaretleri yoksa ve modelde usedIfRouteIsEmpty değeri yanlışsa) routes içindeki bir aracın başlangıç ve bitiş zamanı tamamen sınırlanır.
relaxations(i).level, aşağıdakileri karşılayan #j ziyaretine uygulanan kısıtlama gevşetme düzeyini belirtir:
route.visits(j).start_time >= relaxations(i).threshold_timeVEj + 1 >= relaxations(i).threshold_visit_count
Benzer şekilde, aşağıdaki koşulları karşılıyorsa araç çalıştırma işlemi relaxations(i).level olarak değerlendirilir:
vehicleStartTime >= relaxations(i).threshold_timeVErelaxations(i).threshold_visit_count == 0ve araç ucu, aşağıdaki koşulları karşılıyorsarelaxations(i).level'ye kadar gevşetilir:vehicleEndTime >= relaxations(i).threshold_timeVEroute.visits_size() + 1 >= relaxations(i).threshold_visit_count
Bir ziyaret thresholdVisitCount VEYA thresholdTime koşulunu karşılıyorsa gevşetme düzeyi uygulamak için aynı level ile iki relaxations ekleyin: biri yalnızca thresholdVisitCount ayarlanmış, diğeri ise yalnızca thresholdTime ayarlanmış olsun. Bir ziyaret birden fazla relaxations koşullarını karşılıyorsa en esnek düzey uygulanır. Sonuç olarak, araç başlangıcından rotadaki ziyaretlere ve araç bitişine kadar rahatlama düzeyi artar. Diğer bir deyişle, rota ilerledikçe rahatlama düzeyi azalmaz.
Herhangi bir relaxations eşik koşulunu karşılamayan rota ziyaretlerinin zamanlaması ve sırası tamamen kısıtlanmıştır ve bu sıralara ziyaret eklenemez. Ayrıca, bir araç başlangıcı veya bitişi herhangi bir gevşeme koşulunu karşılamıyorsa araç boş olmadığı sürece süre sabittir.
| JSON gösterimi |
|---|
{
"level": enum ( |
| Alanlar | |
|---|---|
level |
|
thresholdTime |
Gevşetmenin Zaman damgasında RFC 3339 kullanılır. Yani oluşturulan çıkış her zaman Z ile normalleştirilir ve 0, 3, 6 veya 9 kesirli basamak kullanılır. "Z" dışındaki zaman farkları da kabul edilir. Örnekler: |
thresholdVisitCount |
Gevşetmenin
|
Seviye
Bir ziyaret ve eşik koşullarını karşıladığında takip eden ziyaretler için uygulanan farklı kısıtlama gevşetme düzeylerini ifade eder.
Aşağıdaki numaralandırma, rahatlama düzeyinin artış sırasına göre yapılmıştır.
| 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ıç saatleri ve araç başlangıç/bitiş saatleri esnetilir ancak her ziyaret aynı araca bağlı kalır ve ziyaret sırasına uyulması gerekir: Ziyaretler araya veya öncesine eklenemez. |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD |
RELAX_VISIT_TIMES_AFTER_THRESHOLD ile aynıdır ancak ziyaret sırası da gevşetilir: Ziyaretler yalnızca bu araç tarafından gerçekleştirilebilir ancak gerçekleştirilmeyebilir. |
RELAX_ALL_AFTER_THRESHOLD |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD ile aynıdır ancak araç da rahatlatılır: Eşik zamanında veya sonrasında ziyaretler tamamen ücretsizdir ve potansiyel olarak gerçekleştirilmeyebilir. |