Dizin
RouteOptimization
(arayüz)AggregatedMetrics
(message)BatchOptimizeToursMetadata
(message)BatchOptimizeToursRequest
(message)BatchOptimizeToursRequest.AsyncModelConfig
(message)BatchOptimizeToursResponse
(message)BreakRule
(message)BreakRule.BreakRequest
(message)BreakRule.FrequencyConstraint
(message)DataFormat
(enum)DistanceLimit
(message)GcsDestination
(message)GcsSource
(message)InjectedSolutionConstraint
(message)InjectedSolutionConstraint.ConstraintRelaxation
(message)InjectedSolutionConstraint.ConstraintRelaxation.Relaxation
(message)InjectedSolutionConstraint.ConstraintRelaxation.Relaxation.Level
(enum)InputConfig
(message)Location
(message)OptimizeToursRequest
(message)OptimizeToursRequest.SearchMode
(enum)OptimizeToursRequest.SolvingMode
(enum)OptimizeToursResponse
(message)OptimizeToursResponse.Metrics
(message)OptimizeToursValidationError
(message)OptimizeToursValidationError.FieldReference
(message)OutputConfig
(message)RouteModifiers
(message)Shipment
(message)Shipment.Load
(message)Shipment.VisitRequest
(message)ShipmentModel
(message)ShipmentModel.DurationDistanceMatrix
(message)ShipmentModel.DurationDistanceMatrix.Row
(message)ShipmentModel.PrecedenceRule
(message)ShipmentRoute
(message)ShipmentRoute.Break
(message)ShipmentRoute.EncodedPolyline
(message)ShipmentRoute.Transition
(message)ShipmentRoute.VehicleLoad
(message)ShipmentRoute.Visit
(message)ShipmentTypeIncompatibility
(message)ShipmentTypeIncompatibility.IncompatibilityMode
(enum)ShipmentTypeRequirement
(message)ShipmentTypeRequirement.RequirementMode
(enum)SkippedShipment
(message)SkippedShipment.Reason
(message)SkippedShipment.Reason.Code
(enum)TimeWindow
(message)TransitionAttributes
(message)Vehicle
(message)Vehicle.DurationLimit
(message)Vehicle.LoadLimit
(message)Vehicle.LoadLimit.Interval
(message)Vehicle.TravelMode
(enum)Vehicle.UnloadingPolicy
(enum)Waypoint
(message)
RouteOptimization
Araç turlarını optimize etmeye yönelik bir hizmet.
Belirli alan türlerinin geçerliliği:
google.protobuf.Timestamp
- Saatler Unix saatine göredir: 1970-01-01T00:00:00+00:00'dan itibaren saniyeler.
- saniye, [0, 253402300799], ör. [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00] içinde olmalıdır.
- nanos değeri ayarlanmalı veya 0 değerine ayarlanmalıdır.
google.protobuf.Duration
- saniye, [0, 253402300799] aralığında (ör. [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00]) olmalıdır.
- nanos değeri ayarlanmalı veya 0 değerine ayarlanmalıdır.
google.type.LatLng
- enlem, [-90,0; 90,0] aralığında olmalıdır.
- boylam [-180,0, 180,0] biçiminde olmalıdır.
- En az biri sıfır olmayan enlem ve boylam değerleri olmalıdır.
BatchOptimizeTours |
---|
Bir veya daha fazla Bu yöntem Uzun Süreli bir İşlemdir (LRO). Optimizasyon girişleri ( Kullanıcı, LRO'nun durumunu kontrol etmek için LRO'nun LRO'nun
|
OptimizeTours |
---|
Amaç,
|
AggregatedMetrics
ShipmentRoute
için birleştirilmiş metrikler (tüm Transition
ve/veya Visit
(tüm ShipmentRoute
) öğeleri üzerinden OptimizeToursResponse
için sorumlu.
Alanlar | |
---|---|
performed_shipment_count |
Gerçekleştirilen gönderim sayısı. Teslim alma ve teslimat çiftinin yalnızca bir kez sayıldığını unutmayın. |
travel_duration |
Bir rota veya çözümün toplam seyahat süresi. |
wait_duration |
Bir rota veya çözüm için toplam bekleme süresi. |
delay_duration |
Bir rota veya çözüm için toplam gecikme süresi. |
break_duration |
Bir rota veya çözüm için toplam ara süresi. |
visit_duration |
Bir rota veya çözüm için toplam ziyaret süresi. |
total_duration |
Toplam süre, yukarıdaki tüm sürelerin toplamına eşit olmalıdır. Rotalar için aşağıdakilere de karşılık gelir:
|
travel_distance_meters |
Bir rota veya çözüm için toplam seyahat mesafesi. |
max_loads |
Bu rotadaki her miktar (ilgili çözüm) için rotanın tamamı boyunca elde edilen maksimum yük (sorumlu çözüm) ve |
BatchOptimizeToursMetadata
Bu türde alan yok.
BatchOptimizeToursRequest
çağrıları için işlem meta verileri.
BatchOptimizeToursRequest
Turları eşzamansız bir işlem olarak toplu olarak optimize etme isteği. Her giriş dosyası bir OptimizeToursRequest
içermelidir ve her çıkış dosyası bir OptimizeToursResponse
içermelidir. İstek, dosyaları okuma/yazma ve ayrıştırma ile ilgili bilgileri içerir. Tüm giriş ve çıkış dosyaları aynı projede olmalıdır.
Alanlar | |
---|---|
parent |
Zorunlu. Arama yapmak için hedef proje ve konum. Biçim: * Konum belirtilmezse otomatik olarak bir bölge seçilir. |
model_configs[] |
Zorunlu. Her satın alma modelinde giriş/çıkış bilgileri (ör. dosya yolları ve veri biçimleri). |
AsyncModelConfig
Bir optimizasyon modelini eşzamansız olarak çözmeyle ilgili bilgiler.
Alanlar | |
---|---|
display_name |
İsteğe bağlı. Kullanıcı tanımlı model adı, kullanıcılar tarafından modelleri takip etmek için takma ad olarak kullanılabilir. |
input_config |
Zorunlu. Giriş modeliyle ilgili bilgiler. |
output_config |
Zorunlu. İstenen çıkış konumu bilgileri. |
BatchOptimizeToursResponse
Bu türde alan yok.
BatchOptimizeToursRequest
için yanıt. Bu kimlik, işlem tamamlandıktan sonra Uzun Süreli İşlemde döndürülür.
BreakRule
Bir araç için molalar (ör. öğle yemeği molaları) oluşturmaya yönelik kurallar. Ara, aracın mevcut konumunda sabit durduğu ve herhangi bir ziyaret gerçekleştiremediği kesintisiz bir zaman aralığıdır. Süreçte kesinti yaşanabilir:
- iki ziyaret arasındaki seyahat sırasında (ziyaretten hemen önceki veya hemen sonraki süreyi içerir, ancak ziyaretin ortasında değil) bu durumda ziyaretler arasındaki nakliye süresini uzatır.
- veya araç çalıştırılmadan önce (araç, aranın ortasında çalıştırılamaz) yapılırsa araç çalıştırma zamanını etkilemez.
- araç bitiş tarihinden sonra (araç bitiş zamanıyla birlikte).
Alanlar | |
---|---|
break_requests[] |
Aralar dizisi. |
frequency_constraints[] |
Birkaç |
BreakRequest
Her araç için geçerli olan araların sırası (yani sayısı ve sırası) önceden bilinmelidir. Tekrarlanan BreakRequest
'ler, bu sırayı gerçekleşmeleri gereken sırayla tanımlar. Aralarındaki zaman aralıkları (earliest_start_time
/ latest_start_time
) çakışabilir ancak siparişle uyumlu olmalıdır (bu seçenek işaretlidir).
Alanlar | |
---|---|
earliest_start_time |
Zorunlu. Aranın başlangıcındaki alt sınır (dahil). |
latest_start_time |
Zorunlu. Aranın başlangıcındaki üst sınır (dahil). |
min_duration |
Zorunlu. Minimum ara süresi. Pozitif olmalıdır. |
FrequencyConstraint
"Her 12 saatte en az 1 saatlik ara olmalıdır" gibi bir minimum ara sıklığı uygulayarak yukarıda belirtilen araların sıklığını ve süresini daha da kısıtlayabilirsiniz. Bunun, "12 saatlik herhangi bir kaydırma zaman aralığında, en az bir saatlik en az bir ara olması gerekir" şeklinde yorumlanabileceği varsayıldığında, bu örnek FrequencyConstraint
anlamına gelir:
{
min_break_duration { seconds: 3600 } # 1 hour.
max_inter_break_duration { seconds: 39600 } # 11 hours (12 - 1 = 11).
}
Çözümdeki araların zamanlaması ve süresi, BreakRequest
politikasında önceden belirtilen zaman aralıkları ile minimum sürelere ek olarak bu tür kısıtlamalara da uyar.
FrequencyConstraint
, ardışık olmayan aralar için pratikte geçerli olabilir. Örneğin, aşağıdaki program "her 12 saatte 1 saat"i dikkate alır örnek:
04:00 vehicle start
.. performing travel and visits ..
09:00 1 hour break
10:00 end of the break
.. performing travel and visits ..
12:00 20-min lunch break
12:20 end of the break
.. performing travel and visits ..
21:00 1 hour break
22:00 end of the break
.. performing travel and visits ..
23:59 vehicle end
Alanlar | |
---|---|
min_break_duration |
Zorunlu. Bu kısıtlama için minimum ara süresi. Negatif değil. |
max_inter_break_duration |
Zorunlu. Rotada en azından kısmen |
DataFormat
Giriş ve çıkış dosyaları için veri biçimleri.
Sıralamalar | |
---|---|
DATA_FORMAT_UNSPECIFIED |
Geçersiz değer. Biçim, UNSPECIFIED (BELİRTİLMEMİŞ) olmalıdır. |
JSON |
JavaScript Nesne Gösterimi. |
PROTO_TEXT |
Protokol Arabellekleri metin biçimi. https://protobuf.dev/reference/protobuf/textformat-spec/ adresine göz atın. |
DistanceLimit
Katedilebilecek maksimum mesafeyi tanımlayan sınır. Sert veya yumuşak olabilir.
Yumuşak sınır tanımlanmışsa hem soft_max_meters
hem de cost_per_kilometer_above_soft_max
tanımlanmalı ve sıfırdan büyük olmalıdır.
Alanlar | |
---|---|
max_meters |
Mesafeyi en fazla max_meters olacak şekilde kısıtlayan katı bir sınır. Sınır pozitif olmalıdır. |
soft_max_meters |
Maksimum mesafe sınırı uygulanmayan, ancak ihlal edildiğinde modelde tanımlanan ve aynı birimdeki diğer maliyetlerin toplamına eşit bir maliyet ortaya çıkar. Tanımlanmışsa soft_max_meters, max_metreden küçük olmalı ve negatif olmamalıdır. |
cost_per_kilometer_below_soft_max |
Formülle birlikte, artan kilometre başına maliyet
Bu maliyet |
cost_per_kilometer_above_soft_max |
Mesafe
Maliyet pozitif olmalıdır. |
GcsDestination
Çıkış dosyalarının yazılacağı Google Cloud Storage konumu.
Alanlar | |
---|---|
uri |
Zorunlu. Google Cloud Storage URI'si. |
GcsSource
Giriş dosyasının okunacağı Google Cloud Storage konumu.
Alanlar | |
---|---|
uri |
Zorunlu. |
InjectedSolutionConstraint
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.
Alanlar | |
---|---|
routes[] |
Yerleştirme çözümünün rotaları. Bazı rotalar orijinal çözümden çıkarılabilir. Rotalar ve atlanan gönderiler, |
skipped_shipments[] |
Eklenecek çözümün gönderimi atlandı. Bazıları orijinal çözümden çıkarılabilir. |
constraint_relaxations[] |
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, ziyaretlerle ilgili kısıtlamaların hangi eşiklerde ve hangi düzeyde gevşetileceğini belirtir. skipped_shipment
alanında listelenen gönderimlerin atlanması zorunludur; Yani gerçekleştirilemez.
Alanlar | |
---|---|
relaxations[] |
|
vehicle_indices[] |
|
Dinlenme
relaxations
boşsa routes
'teki tüm ziyaretlerin başlangıç zamanı ve sırası tamamen kısıtlanır ve bu rotalara yeni ziyaret eklenemez. Ayrıca, araç boş olmadığı sürece (ör. ziyareti yoksa ve modelde used_if_route_is_empty
yanlış olarak ayarlanmışsa) aracın routes
'teki başlangıç ve bitiş zamanı tamamen kısıtlanır.
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:
vehicle_start_time >= relaxations(i).threshold_time
VErelaxations(i).threshold_visit_count == 0
ve araç sonu, aşağıdaki koşulları karşılıyorsarelaxations(i).level
olarak gevşetilir:vehicle_end_time >= relaxations(i).threshold_time
VEroute.visits_size() + 1 >= relaxations(i).threshold_visit_count
Bir ziyaret threshold_visit_count
VEYA threshold_time
koşulunu karşılıyorsa bir rahatlama düzeyi uygulamak için aynı level
ile iki relaxations
ekleyin: Biri yalnızca threshold_visit_count
, diğeri yalnızca threshold_time
ayarlıdır. 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
'nin eşik koşullarını karşılamayan rota ziyaretlerinin zamanlaması ve sırası tamamen kısıtlanır ve bu sıralamalara 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.
Alanlar | |
---|---|
level |
|
threshold_time |
Gevşetme |
threshold_visit_count |
Gevşetme
|
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 bu araç tarafından gerçekleştirilebilir, ancak potansiyel olarak gerçekleştirilemeyebilir. |
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. |
InputConfig
[BatchOptimizeTours][google.maps.routeeligibility.v1.RouteOptimizedService.BatchOptimizeTours] için bir giriş belirtin.
Alanlar | |
---|---|
data_format |
Zorunlu. Giriş verilerinin biçimi. |
Birleştirme alanı source . Zorunlu. source şunlardan yalnızca biri olabilir: |
|
gcs_source |
Google Cloud Storage konumu. Tek bir nesne (dosya) olmalıdır. |
Konum
Bir konumu (coğrafi nokta ve isteğe bağlı başlık) kapsar.
Alanlar | |
---|---|
lat_lng |
Yol noktasının coğrafi koordinatları. |
heading |
Trafiğin akış yönüyle ilişkilendirilen pusula başlığı. Bu değer, teslim alma ve bırakma için kullanılacak yolun tarafını belirtmek için kullanılır. Yön değerleri 0 ile 360 arasında olabilir. 0 değeri kuzey yönünü, 90 değeri doğu yönünü vb. belirtir. |
OptimizeToursRequest
Çözülecek gönderim modelini ve optimizasyon parametrelerini tanımlayan bir tur optimizasyonu çözücüye verilme isteği.
Alanlar | |
---|---|
parent |
Zorunlu. Arama yapmak için projeyi veya konumu hedefleyin. Biçim: * Konum belirtilmezse bölge otomatik olarak seçilir. |
timeout |
Bu zaman aşımı ayarlanırsa sunucu, zaman aşımı süresi dolmadan veya senkronize isteklerin sunucu için son tarihi dolmadan önce (hangisi önceyse) bir yanıt döndürür. Eşzamansız istekler için sunucu, zaman aşımı dolmadan önce bir çözüm (mümkünse) oluşturur. |
model |
Çözülmesi gereken gönderim modeli. |
solving_mode |
Çözme modu varsayılan olarak |
search_mode |
İsteği çözmek için kullanılan arama modu. |
injected_first_solution_routes[] |
Önceki bir çözüme benzer ilk çözümü bulma konusunda optimizasyon algoritmasına rehberlik edin. Model, ilk çözüm oluşturulduğunda kısıtlanır. Bir rotada gerçekleştirilmeyen tüm gönderimler ilk çözümde dolaylı olarak atlanır ancak sonraki çözümlerde gerçekleştirilebilir. Çözüm, bazı temel geçerlilik varsayımlarını karşılamalıdır:
Yerleştirilen çözüm uygulanabilir değilse doğrulama hatası her zaman döndürülmez ve bunun yerine uygulanabilir olmadığını belirten bir hata döndürülebilir. |
injected_solution_constraint |
Önceki bir çözüme benzer nihai bir çözüm bulmak için optimizasyon algoritmasını kısıtlayın. Örneğin bu, tamamlanmış veya tamamlanmak üzere olan ancak değiştirilmemesi gereken rota bölümlerini dondurmak için kullanılabilir. Yerleştirilen çözüm uygulanabilir değilse doğrulama hatası her zaman döndürülmez ve bunun yerine uygulanabilir olmadığını belirten bir hata döndürülebilir. |
refresh_details_routes[] |
Boş olmayan rotalar, temel ziyaret sıraları veya seyahat süreleri değiştirilmeden yenilenir, yalnızca diğer ayrıntılar güncellenir. Bu işlem modeli çözmez. 2020/11 itibarıyla, bu yalnızca boş olmayan rotaların çoklu çizgilerini dolduruyor ve İletilen rotaların Bu alan,
|
interpret_injected_solutions_using_labels |
Doğruysa:
Bu yorum Doğru değerine ayarlanırsa aşağıdaki kategorilerdeki etiketler, kategorilerinde en fazla bir kez görünmelidir:
Enjekte edilen çözümdeki Yerleştirilen bir çözümden rota ziyaretlerini veya rotaların tamamını kaldırmak, ima edilen kısıtlamaları etkileyebilir ve bu da çözümde, doğrulama hatalarında veya uygulanabilirlikte değişikliğe yol açabilir. NOT: Arayan, her bir |
consider_road_traffic |
|
populate_polylines |
Doğru değerine ayarlanırsa yanıt |
populate_transition_polylines |
Doğru değerine ayarlanırsa |
allow_large_deadline_despite_interruption_risk |
Bu ayarlanırsa isteğin son tarihi 60 dakikadır (bkz. https://grpc.io/blog/deadlines). Aksi takdirde, maksimum son tarih yalnızca 30 dakikadır. Uzun süreli isteklerin çok daha büyük (ancak yine de küçük) kesinti riskinin olduğunu unutmayın. |
use_geodesic_distances |
Doğru değerine ayarlanırsa seyahat mesafeleri, Google Haritalar'daki mesafeler yerine jeodezik mesafeler kullanılarak ve seyahat süreleri, |
label |
Bu isteği tanımlamak için kullanılabilecek etiket. |
geodesic_meters_per_second |
|
max_validation_errors |
Döndürülen doğrulama hatalarının sayısını kısaltır. Bu hatalar genellikle solving_mode=VALIDATE_ONLY olmadığı sürece INVALID_ARGUMENT hata yüküne BadRequest hata ayrıntısı (https://cloud.google.com/apis/design/errors#error_details) olarak eklenir: |
SearchMode
Arama davranışını tanımlayan, gecikmeyi çözüm kalitesinden uzaklaştıran mod. Tüm modlarda, genel istek son tarihi uygulanır.
Sıralamalar | |
---|---|
SEARCH_MODE_UNSPECIFIED |
Belirtilmemiş arama modu. RETURN_FAST ile eşdeğerdir. |
RETURN_FAST |
İlk iyi çözümü bulduktan sonra aramayı durdurun. |
CONSUME_ALL_AVAILABLE_TIME |
Mevcut zamanınızı daha iyi çözümler aramaya harcayın. |
SolvingMode
Çözümleyicinin isteği nasıl işlemesi gerektiğini tanımlar. VALIDATE_ONLY
dışındaki tüm modlarda, istek geçersizse INVALID_REQUEST
hatası alırsınız. Döndürülen hata sayısını sınırlandırmak için max_validation_errors
politikasına bakın.
Sıralamalar | |
---|---|
DEFAULT_SOLVE |
Modeli çözün. [OptimizeToursResponse.validation_errors][google.cloud.optimization.v1.OptimizeToursResponse.validation_errors] alanında uyarılar verilebilir. |
VALIDATE_ONLY |
Modeli çözmeden yalnızca doğrular: Mümkün olduğunca çok sayıda OptimizeToursResponse.validation_errors doldurur. |
DETECT_SOME_INFEASIBLE_SHIPMENTS |
Yalnızca ÖNEMLİ: Uygulanabilir olmayan tüm gönderiler buraya iade edilir. Yalnızca ön işleme sırasında uygulanabilir olmadığı belirlenenler buraya iade edilir. |
OptimizeToursResponse
Her bir aracın izlediği rotaları, atlanan gönderileri ve çözümün toplam maliyetini içeren bir tur optimizasyonu problemini çözdükten sonra verilen yanıt.
Alanlar | |
---|---|
routes[] |
Her araç için hesaplanan rotalar; i'inci rota, modeldeki i'inci araca karşılık gelir. |
request_label |
İstekte bir etiket belirtilmişse |
skipped_shipments[] |
Atlanan tüm gönderilerin listesi. |
validation_errors[] |
Bağımsız olarak tespit edebildiğimiz tüm doğrulama hatalarının listesi. "BİRDEN ÇOK HATA"ya bakın |
metrics |
Bu çözümün süresi, mesafesi ve kullanım metrikleri. |
Metrikler
Tüm rotalar için toplanmış genel metrikler.
Alanlar | |
---|---|
aggregated_route_metrics |
Rotalar genelinde toplanır. Her metrik, aynı ada sahip tüm |
skipped_mandatory_shipment_count |
Atlanan zorunlu kargo sayısı. |
used_vehicle_count |
Kullanılan araç sayısı. Not: Araç rotasının boş olması ve |
earliest_vehicle_start_time |
İkinci el bir araç için en erken başlangıç zamanı. |
latest_vehicle_end_time |
İkinci el bir araç için en geç bitiş zamanı. |
costs |
Maliyetle ilgili istek alanlarına göre ayrılmış çözüm maliyeti. Anahtarlar, OptimizeToursRequest girişine göre proto yollarıdır (ör. "model.shipments.pickups.cost"tur. Değerler, ilgili maliyet alanı tarafından oluşturulan ve tüm çözüm genelinde toplanan toplam maliyettir. Başka bir deyişle maliyet["model.shipments.pickups.cost"], çözüm üzerinden tüm teslim alma maliyetlerinin toplamıdır. Modelde tanımlanan tüm maliyetler, 2022/01 itibarıyla yalnızca toplu olarak raporlanan TransitionAttributes ile ilgili maliyetler hariç olmak üzere burada ayrıntılı olarak raporlanır. |
total_cost |
Çözümün toplam maliyeti. Maliyet haritasındaki tüm değerlerin toplamı. |
OptimizeToursValidationError
OptimizeToursRequest
doğrulanırken karşılaşılan hata veya uyarıyı açıklar.
Alanlar | |
---|---|
code |
Doğrulama hatası, her zaman mevcut olan ( Diğer alanlar (aşağıda) hatayla ilgili daha fazla bilgi sağlar. BİRDEN ÇOK HATA: Birden çok hata olduğunda, doğrulama işlemi bunlardan birkaçının çıktısını almaya çalışır. Tıpkı bir derleyici gibi, bu da kusursuz bir süreç değildir. Bazı doğrulama hataları "önemli" olur. Bu, doğrulama işleminin tamamını durduracağı anlamına gelir. Bu durum, diğerlerinde olduğu gibi STability: REFERANS: Tüm (kod, ad) çiftlerinin listesi:
|
display_name |
Hatanın görünen adı. |
fields[] |
Hata bağlamı 0, 1 (çoğu zaman) veya daha fazla alan içerebilir. Örneğin, 4 numaralı araç ve 2 numaralı gönderimin ilk teslim alma işlemi aşağıdaki gibi yapılabilir:
Bununla birlikte, belirli bir hata kodu için |
error_message |
Hatayı açıklayan, kullanıcıların okuyabileceği bir dize. STRATEJİ: Kararlı değil: Belirli bir |
offending_values |
Alanların değerlerini içerebilir. Bu özellik her zaman kullanılamayabilir. Bu modele kesinlikle güvenmemeniz ve yalnızca manuel model hata ayıklaması için kullanmanız gerekir. |
AlanReferansı
Doğrulama hatası için bağlamı belirtir. FieldReference
her zaman bu dosyadaki belirli bir alanı ifade eder ve aynı hiyerarşik yapıyı izler. Örneğin, 5 numaralı aracın start_time_windows
numaralı öğesini aşağıdakileri kullanarak belirtebiliriz:
name: "vehicles" index: 5 sub_field { name: "end_time_windows" index: 2 }
Ancak mesajın kalabalık olmaması için OptimizeToursRequest
veya ShipmentModel
gibi üst düzey öğeler atlanır.
Alanlar | |
---|---|
name |
Alanın adı (ör. "vehicles". |
sub_field |
Gerekirse yinelemeli olarak iç içe yerleştirilmiş alt alan. |
Birlik alanı
|
|
index |
Tekrarlanırsa alanın dizini. |
key |
Alan bir haritaysa anahtar. |
OutputConfig
[BatchOptimizeTours][google.maps.routeoptimization.v1.RouteOptimizationService.BatchOptimizeTours] sonuçları için bir hedef belirtin.
Alanlar | |
---|---|
data_format |
Zorunlu. Çıkış verilerinin biçimi. |
Birleştirme alanı destination . Zorunlu. destination şunlardan yalnızca biri olabilir: |
|
gcs_destination |
Çıkışın yazılacağı Google Cloud Storage konumu. |
RouteModifiers
Araç rotaları hesaplanırken uyulması gereken bir dizi isteğe bağlı koşulu içerir. Bu, Google Haritalar Platformu Routes Preferred API'sindeki RouteModifiers
ile benzer; Şu adrese bakın: https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteModifiers.
Alanlar | |
---|---|
avoid_tolls |
Makul olduğu durumlarda paralı yollardan kaçınılıp kaçınılmayacağını belirtir. Ücretli yol içermeyen rotalara öncelik verilir. Yalnızca motorlu ulaşım şekilleri için geçerlidir. |
avoid_highways |
Makul olduğu durumlarda otoyollardan kaçınılıp kaçınılmayacağını belirtir. Otoyol içermeyen rotalar tercih edilir. Yalnızca motorlu ulaşım şekilleri için geçerlidir. |
avoid_ferries |
Makul olduğu durumlarda feribotlardan kaçınılıp kaçınılmayacağını belirtir. Feribotla seyahat içermeyen rotalar tercih edilir. Yalnızca motorlu seyahat modları için geçerlidir. |
avoid_indoor |
İsteğe bağlı. Makul olduğu durumlarda iç mekanlarda gezinmekten kaçınılıp kaçınılmayacağını belirtir. Kapalı mekan navigasyonu içermeyen rotalara öncelik verilir. Yalnızca |
Gönderim
Tek bir öğenin, teslim alma alanlarından birinden teslimatlarına kadar gönderilmesi. Gönderimin gerçekleştirilmiş olarak kabul edilmesi için benzersiz bir aracın, teslim alma konumlarından birini ziyaret etmesi (ve yedek kapasitelerini buna göre azaltması) ve daha sonra teslimat konumlarından birini ziyaret etmesi (ve yedek kapasitelerini buna göre yeniden artırması) gerekir.
Alanlar | |
---|---|
display_name |
Gönderinin kullanıcı tanımlı görünen adı. En fazla 63 karakter uzunluğunda olabilir ve UTF-8 karakterleri kullanabilir. |
pickups[] |
Gönderimle ilişkili teslim alma alternatifleri grubu. Belirtilmemişse aracın yalnızca teslimatlarla ilgili bir konumu ziyaret etmesi gerekir. |
deliveries[] |
Kargoyla ilişkili teslimat alternatifleri grubu. Belirtilmemişse aracın yalnızca teslim alma noktalarına karşılık gelen bir konumu ziyaret etmesi gerekir. |
load_demands |
Gönderinin taleplerini yüklemek (ör. ağırlık, hacim, palet sayısı vb.). Haritadaki anahtarlar, karşılık gelen yükün türünü (tercihen birimleri de içeren) açıklayan tanımlayıcılar olmalıdır. Örneğin: "weight_kg", "quantity_galon", "pallet_count" vb. Belirli bir anahtar haritada görünmezse karşılık gelen yükleme null olarak kabul edilir. |
allowed_vehicle_indices[] |
Bu gönderimi gerçekleştirebilecek araç grubu. Boşsa tüm araçlar bu işlemi gerçekleştirebilir. Araçlar, |
costs_per_vehicle[] |
Bu gönderim her araç tarafından teslim edildiğinde ortaya çıkan maliyeti belirtir. Belirtilmişse:
Bu maliyetler, |
costs_per_vehicle_indices[] |
|
pickup_to_delivery_absolute_detour_limit |
Teslim alma ile teslimat arasındaki en kısa yola kıyasla maksimum mutlak sapma süresini belirtir. Belirtilmişse negatif olmamalıdır ve kargo en azından bir teslim alma ve teslimat içermelidir. Örneğin, t, seçilen teslim alma alternatifinden doğrudan seçilen teslimat alternatifine gitmek için gereken en kısa süre olsun. Ardından
Aynı gönderimde hem göreli hem de mutlak sınırlar belirtilirse olası her teslim alma/teslimat çifti için daha kısıtlayıcı sınır kullanılır. 2017/10 tarihi itibarıyla, yalnızca seyahat süreleri araçlara bağlı olmadığında rota değişikliği desteklenmektedir. |
pickup_to_delivery_time_limit |
Teslim almanın başlangıcından gönderimin başlangıcına kadar maksimum süreyi belirtir. Belirtilmişse negatif olmamalıdır ve kargo en azından bir teslim alma ve teslimat içermelidir. Bu, teslim alma ve teslimat için seçilen alternatiflerin veya aracın hızına bağlı değildir. Bu, maksimum sapma kısıtlamalarıyla birlikte belirtilebilir; çözüm her iki spesifikasyona da uyar. |
shipment_type |
Bu gönderim için "tür" belirten boş olmayan dize. Bu özellik, Tek bir ziyaret için belirtilen |
label |
Bu gönderim için bir etiket belirtir. Bu etiket, ilgili |
ignore |
True (doğru) ise bu gönderimi atlayın, ancak Bir gönderimin göz ardı edilmesi, modelde herhangi bir
|
penalty_cost |
Sevkiyat tamamlanmazsa bu ceza, rotaların toplam maliyetine eklenir. Teslim alma ve teslimat alternatiflerinden birinin ziyaret edilmesi durumunda kargo tamamlanmış olarak kabul edilir. Maliyet, modeldeki maliyetle ilgili diğer tüm alanlar için kullanılan birim içinde ifade edilebilir ve pozitif olmalıdır. ÖNEMLİ: Bu ceza belirtilmezse sonsuz olarak kabul edilir, yani gönderimin tamamlanması gerekir. |
pickup_to_delivery_relative_detour_limit |
Alıştan teslimata kadar olan en kısa yola kıyasla maksimum göreli ek süreyi belirtir. Belirtilmişse negatif olmamalıdır ve kargo en azından bir teslim alma ve teslimat içermelidir. Örneğin, t, seçilen teslim alma alternatifinden doğrudan seçilen teslimat alternatifine gitmek için gereken en kısa süre olsun. Ardından
Aynı gönderimde hem göreceli hem de mutlak sınırlar belirtilirse her olası teslim alma/teslim etme çifti için daha kısıtlayıcı olan sınır kullanılır. 2017/10 tarihi itibarıyla, yalnızca seyahat süreleri araçlara bağlı olmadığında rota değişikliği desteklenmektedir. |
Yükle
Bir ziyaret gerçekleştirirken, teslim alma için araç yüküne önceden tanımlanmış bir tutar eklenebilir, teslimatsa bu tutar çıkarılabilir. Bu mesaj söz konusu tutarı tanımlar. Şu sayfaya göz atın: load_demands
.
Alanlar | |
---|---|
amount |
İlgili ziyareti gerçekleştiren aracın yükü değişiklik gösterir. Bu bir tam sayı olduğundan, hassasiyet kaybını önlemek için kullanıcıların uygun bir birim seçmeleri önerilir. ≥ 0 olmalıdır. |
VisitRequest
Araç tarafından yapılabilecek bir ziyaret isteği: Aracın coğrafi konumu (veya iki tanesi aşağıya bakın), zaman aralıklarıyla gösterilen açılış ve kapanış zamanları ve hizmet süresi (ürünlerin teslim alınması veya teslim edilmesi için vardığı araç tarafından harcanan süre) belirtilmelidir.
Alanlar | |
---|---|
arrival_location |
Bu |
arrival_waypoint |
Bu |
departure_location |
Bu |
departure_waypoint |
Bu |
tags[] |
Ziyaret isteğine eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
time_windows[] |
Ziyarete varış saatini sınırlayan zaman aralıkları. Bir aracın, varış zamanı aralığının dışında hareket edebileceğini unutmayın. Yani varış zamanı + sürenin bir zaman aralığında olması gerekmez. Araç
Zaman aralıkları birbirinden ayrı olmalıdır. Yani, zaman aralıkları başka bir zaman aralığıyla çakışmamalı veya bitişik olmamalıdır ve artan sırada olmalıdır.
|
duration |
Ziyaret süresi, ör.varış ile kalkış arasında aracın harcadığı süre (olası bekleme süresine eklenir, bkz. |
cost |
Araç rotasında bu ziyaret isteğini yerine getirmenin maliyeti. Bu seçenek, bir gönderinin her alternatif teslim alma veya teslimat seçeneği için farklı maliyetler ödemek amacıyla kullanılabilir. Bu maliyet, |
load_demands |
Bu ziyaret isteğinin isteklerini yükleyin. Bu, |
visit_types[] |
Ziyaretin türlerini belirtir. Bu, bir aracın bu ziyareti tamamlaması için gereken ek süreyi tahsis etmek amacıyla kullanılabilir ( Bir tür yalnızca bir kez görünebilir. |
label |
Bu |
ShipmentModel
Gönderim modeli, bir grup araç tarafından gerçekleştirilmesi gereken bir dizi gönderim içerir ve toplam maliyeti en aza indirir. Bu durumda toplam maliyet, toplamda şu olur:
- araçları yönlendirme maliyeti (toplam süre başına maliyet, seyahat süresi başına maliyet ve tüm araçlar üzerindeki sabit maliyet).
- sorumlu tutulamaz.
- Global sevkiyat süresinin maliyeti
Alanlar | |
---|---|
shipments[] |
Modelde yapılması gereken kargolar grubu. |
vehicles[] |
Ziyaret yapmak için kullanılabilecek araç grubu. |
global_start_time |
Modelin genel başlangıç ve bitiş zamanı: Bu aralığın dışındaki hiçbir zaman geçerli olarak kabul edilemez. Modelin zaman aralığı bir yıldan kısa olmalıdır.Diğer bir deyişle,
|
global_end_time |
Ayarlanmadan bırakılırsa 1 Ocak 1971, 00:00:00 UTC (yani saniye: 31536000, nanos: 0) varsayılan olarak kullanılır. |
global_duration_cost_per_hour |
"Global süre" toplam planın en erken geçerli başlangıç zamanı ile tüm araçların geçerli en geç bitiş zamanı arasındaki farktır. Örneğin kullanıcılar, işin en kısa sürede tamamlanması için optimizasyon yapmak amacıyla bu miktara bir saat başına maliyet atayabilir. Bu maliyet, |
duration_distance_matrices[] |
Modelde kullanılan süre ve mesafe matrislerini belirtir. Bu alan boşsa, Kullanım örnekleri:
|
duration_distance_matrix_src_tags[] |
Süre ve mesafe matrislerinin kaynaklarını tanımlayan etiketler; Etiketler |
duration_distance_matrix_dst_tags[] |
Süre ve mesafe matrislerinin hedeflerini tanımlayan etiketler Etiketler |
transition_attributes[] |
Modele geçiş özellikleri eklendi. |
shipment_type_incompatibilities[] |
Uyumsuz shipment_types grupları ( |
shipment_type_requirements[] |
|
precedence_rules[] |
Modelde uygulanması gereken öncelik kuralları grubu. |
max_active_vehicles |
Maksimum etkin araç sayısını kısıtlar. Rotasında en az bir gönderim yapılan araçlar etkindir. Bu özellik, araçlardan daha az sürücünün bulunduğu ve araç filosunun heterojen olduğu durumlarda rota sayısını sınırlandırmak için kullanılabilir. Ardından optimizasyon, kullanılacak en iyi araç alt kümesini seçer. Tamamen olumlu olmalıdır. |
DurationDistanceMatrix
Ziyaret ve araç başlangıç konumlarından ziyaret ve araç bitiş konumlarına kadar bir süre ve mesafe matrisi belirtir.
Alanlar | |
---|---|
rows[] |
Süre ve mesafe matrisinin satırlarını belirtir. |
vehicle_start_tag |
Bu süre ve mesafe matrisinin hangi araçlar için geçerli olduğunu tanımlayan etiket. Boşsa tüm araçlar için geçerlidir ve yalnızca tek bir matris olabilir. Her araç başlangıcı tam olarak bir matrisle eşleşmelidir. Diğer bir deyişle, Tüm matrisler farklı bir |
Satır
Süre ve mesafe matrisinin satırını belirtir.
Alanlar | |
---|---|
durations[] |
Belirli bir satırın süre değerleri. |
meters[] |
Belirli bir satır için mesafe değerleri. Modeldeki mesafelere atıfta bulunan hiçbir maliyet veya kısıtlama yoksa bu alan boş bırakılabilir. Aksi takdirde |
PrecedenceRule
İki etkinlik arasındaki öncelik kuralı (her etkinlik bir gönderinin alınması veya teslim edilmesidir): "İkinci" etkinliğin, "ilk" etkinlikten en az offset_duration
sonra başlaması gerekir.
Birden fazla öncelik aynı (veya ilgili) etkinliklere işaret edebilir, ör. "B teslimi, A tesliminden sonra gerçekleşir" ve "C teslimi, B tesliminden sonra gerçekleşir".
Ayrıca, öncelikler yalnızca her iki gönderim de gerçekleştirildiğinde uygulanır ve aksi takdirde göz ardı edilir.
Alanlar | |
---|---|
first_is_delivery |
"İlk"in bir teslimattır. |
second_is_delivery |
"İkinci" etkinliğin bir yayın olup olmadığını belirtir. |
offset_duration |
"ilk" ve "ikinci" etkinlik arasındaki ofset. Negatif olabilir. |
first_index |
"İlk"in gönderim dizini unutmayın. Bu alan belirtilmelidir. |
second_index |
"Saniye"nin gönderim dizini unutmayın. Bu alan belirtilmelidir. |
ShipmentRoute
Bir aracın rotası, zaman ekseninde aşağıdaki gibi ayrıştırılabilir (n ziyaret olduğunu varsayarız):
| | | | | T[2], | | |
| Transition | Visit #0 | | | V[2], | | |
| #0 | aka | T[1] | V[1] | ... | V[n-1] | T[n] |
| aka T[0] | V[0] | | | V[n-2],| | |
| | | | | T[n-1] | | |
^ ^ ^ ^ ^ ^ ^ ^
vehicle V[0].start V[0].end V[1]. V[1]. V[n]. V[n]. vehicle
start (arrival) (departure) start end start end end
Aşağıdakiler arasında bir fark yaptığımızı unutmayın:
- Araç başlangıç ve bitiş zamanı ile her ziyaretin başlangıç ve bitiş zamanı (yani varış ve ayrılış) gibi "düzenli etkinlikler". Belirli bir saniyede gerçekleşir.
- "zaman aralıkları" (ör. ziyaretler ve ziyaretler arasındaki geçiş). Zaman aralıkları bazen sıfır süreye sahip olabilse de (ör. aynı saniyede başlangıç ve bitişte) ancak genellikle pozitif bir süreye sahiptirler.
Sabit değerler:
- n ziyaret varsa n+1 geçişi vardır.
- Bir ziyaret her zaman kendisinden önceki bir geçiş (aynı dizin) ve kendisinden sonraki bir geçiş (dizin + 1) ile çevrilidir.
- Araç başlangıcından sonra her zaman #0 geçişi gelir.
- Araç sonundan önce her zaman #n geçişi gelir.
Yakınlaştırıldığında, Transition
ve Visit
sırasında neler olur?
---+-------------------------------------+-----------------------------+-->
| TRANSITION[i] | VISIT[i] |
| | |
| * TRAVEL: the vehicle moves from | PERFORM the visit: |
| VISIT[i-1].departure_location to | |
| VISIT[i].arrival_location, which | * Spend some time: |
| takes a given travel duration | the "visit duration". |
| and distance | |
| | * Load or unload |
| * BREAKS: the driver may have | some quantities from the |
| breaks (e.g. lunch break). | vehicle: the "demand". |
| | |
| * WAIT: the driver/vehicle does | |
| nothing. This can happen for | |
| many reasons, for example when | |
| the vehicle reaches the next | |
| event's destination before the | |
| start of its time window | |
| | |
| * DELAY: *right before* the next | |
| arrival. E.g. the vehicle and/or | |
| driver spends time unloading. | |
| | |
---+-------------------------------------+-----------------------------+-->
^ ^ ^
V[i-1].end V[i].start V[i].end
Son olarak, geçiş sırasında SEYAHAT, PARÇALAR, GECİKME ve BEKLEME işlevlerinin nasıl ayarlanabileceği burada açıklanmaktadır.
- Bunlar çakışmaz.
- Gecikme benzersizdir ve bir sonraki ziyaretten (veya araç sonundan) hemen önceki kesintisiz bir süre olmalıdır. Dolayısıyla, gecikme süresinin başlangıç ve bitiş zamanını bilmek yeterli olacaktır.
- ARALAR ardışık ve örtüşmeyen zaman aralıklarıdır. Yanıt, her bir aranın başlangıç zamanını ve süresini belirtir.
- TRAVEL ve WAIT değerleri "öncelikli"dir: Bu geçiş sırasında birkaç kez kesintiye uğrayabilirler. Müşteriler, seyahatin "mümkün olan en kısa sürede" gerçekleşeceğini varsayabilir ve bu "bekleyen" kalan süreyi doldurur.
Bir (karmaşık) örnek:
TRANSITION[i]
--++-----+-----------------------------------------------------------++-->
|| | | | | | | ||
|| T | B | T | | B | | D ||
|| r | r | r | W | r | W | e ||
|| a | e | a | a | e | a | l ||
|| v | a | v | i | a | i | a ||
|| e | k | e | t | k | t | y ||
|| l | | l | | | | ||
|| | | | | | | ||
--++-----------------------------------------------------------------++-->
Alanlar | |
---|---|
vehicle_index |
Rotayı gerçekleştiren araç ( |
vehicle_label |
Bu rotayı gerçekleştiren aracın etiketi (belirtilmişse |
vehicle_start_time |
Aracın rotasına başladığı zaman. |
vehicle_end_time |
Aracın rotasını tamamladığı zaman. |
visits[] |
Bir rotayı temsil eden sıralı ziyaret dizisi. ziyaret[i], rotadaki i. ziyarettir. Bu alan boşsa araç kullanılmıyor olarak kabul edilir. |
transitions[] |
Rotanın sıralı geçiş listesi. |
has_traffic_infeasibilities |
Trafik nedeniyle |
route_polyline |
Rotanın kodlanmış çoklu çizgi gösterimi. Bu alan yalnızca |
breaks[] |
Bu rotayı gerçekleştiren araç için programlanan aralar. |
metrics |
Bu rota için süre, mesafe ve yük metrikleri. |
route_costs |
Maliyetle ilgili istek alanlarına göre ayrılmış rota maliyeti. Anahtarlar, OptimizeToursRequest girişine göre proto yollarıdır (ör. "model.shipments.pickups.cost"tur. Değerler, ilgili maliyet alanı tarafından oluşturulan ve tüm rota boyunca toplanan toplam maliyettir. Başka bir deyişle maliyet["model.shipments.pickups.cost"], rota üzerindeki tüm teslim alma maliyetlerinin toplamıdır. 01.01.2022 itibarıyla yalnızca toplu şekilde raporlanan TransitionAttributes ile ilgili maliyetler hariç olmak üzere, modelde tanımlanan tüm maliyetler burada ayrıntılı olarak raporlanmaktadır. |
route_total_cost |
Rotanın toplam maliyeti. Maliyet haritasındaki tüm maliyetlerin toplamı. |
Ara
Aranın yürütülmesini temsil eden veriler.
Alanlar | |
---|---|
start_time |
Aranın başlangıç zamanı. |
duration |
Ara süresi. |
EncodedPolyline
Bir çoklu çizginin kodlanmış gösterimi. Çoklu çizgi kodlaması hakkında daha fazla bilgiyi şu adreste bulabilirsiniz: https://developers.google.com/maps/documentation/utilities/polylinealgorithm https://developers.google.com/maps/documentation/javascript/reference/geometry#encoding.
Alanlar | |
---|---|
points |
Çoklu çizginin kodlanmış noktalarını temsil eden dize. |
Geçiş
Rota üzerindeki iki etkinlik arasındaki geçiş. ShipmentRoute
açıklamasına bakın.
Araçta start_location
ve/veya end_location
yoksa ilgili seyahat metrikleri 0'dır.
Alanlar | |
---|---|
travel_duration |
Bu geçiş sırasındaki seyahat süresi. |
travel_distance_meters |
Geçiş sırasında katedilen mesafe. |
traffic_info_unavailable |
|
delay_duration |
Bu geçişe uygulanan gecikme sürelerinin toplamı. Varsa bir sonraki etkinlikten (ziyaret veya araç sonu) tam olarak |
break_duration |
Bu geçiş sırasında gerçekleşen araların süresinin toplamı (varsa). Her aranın başlangıç zamanı ve süresiyle ilgili ayrıntılar |
wait_duration |
Bu geçiş sırasında harcanan süre. Bekleme süresi, boşta kalma süresine karşılık gelir ve mola süresini içermez. Ayrıca bu bekleme süresinin, birbirine bitişik olmayan birkaç aralığa bölünebileceğini unutmayın. |
total_duration |
Kolaylık olması açısından geçişin toplam süresi. Eşittir:
|
start_time |
Bu geçişin başlangıç zamanı. |
route_polyline |
Geçiş sırasında takip edilen rotanın kodlanmış çoklu çizgi gösterimi. Bu alan yalnızca |
vehicle_loads |
Bu geçiş sırasında araç yüklemeleri. Bu araçta İlk geçiş sırasındaki yüklemeler, araç rotasının başlangıç yüklemeleridir. Ardından her ziyaretten sonra, ziyaretin teslim alma mı yoksa teslimat mı olduğuna bağlı olarak sonraki geçişin yüklemelerini elde etmek için ziyarete ait |
VehicleLoad
Belirli bir tür için rotanın bir noktasında aracın gerçek yükünü bildirir (bkz. Transition.vehicle_loads
).
Alanlar | |
---|---|
amount |
Belirli bir tür için araçtaki yük miktarı. Yük birimi genellikle türe göre gösterilir. Şu sayfaya göz atın: |
Ziyaret edin
Bir rotada gerçekleştirilen ziyaret. Bu ziyaret, Shipment
adlı müşterinin teslim alınmasına veya teslimatına karşılık gelir.
Alanlar | |
---|---|
shipment_index |
|
is_pickup |
Doğruysa ziyaret, |
visit_request_index |
|
start_time |
Ziyaretin başladığı zaman. Aracın ziyaret konumuna bu saatten daha erken ulaşabileceğini unutmayın. Saatler |
load_demands |
Gönderim ve ziyaret isteğinin toplamı olarak |
detour |
Ziyaretten önce rotada ziyaret edilen gönderimler ve zaman aralıklarının neden olduğu olası bekleme süresi nedeniyle ek rota izleme süresi. Ziyaret bir teslimatsa ek rota, ilgili teslim alma ziyaretine göre hesaplanır ve şuna eşittir:
Aksi takdirde
|
shipment_label |
|
visit_label |
|
ShipmentTypeIncompatibility
delivery_type [gönderim_tür] bağlı olarak gönderimler arasındaki uyumsuzlukları belirtir. Aynı rotadaki uyumsuz gönderimlerin görünümü, uyumsuzluk moduna göre kısıtlanır.
Alanlar | |
---|---|
types[] |
Uyumsuz türlerin listesi. Listelenenler arasından farklı |
incompatibility_mode |
Uyumsuzluğa mod uygulandı. |
IncompatibilityMode
Uyumsuz gönderimlerin aynı rotada nasıl kısıtlanacağını tanımlayan modlar.
Sıralamalar | |
---|---|
INCOMPATIBILITY_MODE_UNSPECIFIED |
Belirtilmemiş uyumsuzluk modu. Bu değer hiçbir zaman kullanılmamalıdır. |
NOT_PERFORMED_BY_SAME_VEHICLE |
Bu modda, uyumsuz türlere sahip iki gönderim hiçbir zaman aynı aracı paylaşamaz. |
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY |
|
ShipmentTypeRequirement
shipping_type [gönderim_türü] temelinde gönderimler arasındaki şartları belirtir. Şartın ayrıntıları, gereksinim modu ile tanımlanır.
Alanlar | |
---|---|
required_shipment_type_alternatives[] |
|
dependent_shipment_types[] |
NOT: |
requirement_mode |
Mod, koşula uygulandı. |
RequirementMode
Bağımlı gönderilerin rota üzerindeki görünümünü tanımlayan modlar.
Sıralamalar | |
---|---|
REQUIREMENT_MODE_UNSPECIFIED |
Belirtilmemiş gereksinim modu. Bu değer hiçbir zaman kullanılmamalıdır. |
PERFORMED_BY_SAME_VEHICLE |
Bu modda, tüm "bağımlı" Gönderiler, "gerekli" koşullardan en az biriyle aynı aracı paylaşmalıdır sevkiyatlar. |
IN_SAME_VEHICLE_AT_PICKUP_TIME |
"Bağımlı" kuruluş Dolayısıyla kargodan teslim alma şunlardan birine sahip olmalıdır:
|
IN_SAME_VEHICLE_AT_DELIVERY_TIME |
"Bağımlı" olanlar hariç öncekiyle aynı gönderimlerde "zorunlu" teslimat sırasında araçlarına gönderim yapmış olmaları. |
SkippedShipment
Çözümdeki başarılı olmayan gönderimlerin ayrıntılarını belirtir. Önemsiz durumlar için ve/veya atlama nedenini belirleyebiliyorsak nedenini burada bildiririz.
Alanlar | |
---|---|
index |
Dizin, |
label |
|
reasons[] |
Gönderimin neden atlandığını açıklayan nedenlerin listesi. |
Neden
Gönderimin neden atlandığını açıklayabilirsek nedenler burada listelenir. Neden tüm araçlar için aynı değilse reason
, 1'den fazla öğe içerir. Atlanan bir gönderinin yinelenen nedenleri olamaz (example_vehicle_index
dışında tüm alanların aynı olduğu). Örnek:
reasons {
code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
example_vehicle_index: 1
example_exceeded_capacity_type: "Apples"
}
reasons {
code: DEMAND_EXCEEDS_VEHICLE_CAPACITY
example_vehicle_index: 3
example_exceeded_capacity_type: "Pears"
}
reasons {
code: CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT
example_vehicle_index: 1
}
Atlanan gönderi, tüm araçlarla uyumlu değil. Nedenler tüm araçlar için farklı olabilir ancak en az bir aracın "Elma" kapasitesi aşılmış olur (1. araç dahil), en az bir aracın "Armut" kapasitesi aşılmış olur (3. araç dahil) ve en az bir aracın mesafe sınırı aşılmış olur (1. araç dahil).
Alanlar | |
---|---|
code |
Kod'daki açıklamalara bakın. |
example_exceeded_capacity_type |
Neden kodu |
example_vehicle_index |
Neden, gönderim aracıyla ilgili bir uyumsuzlukla ilgiliyse bu alanda ilgili bir aracın dizini sağlanır. |
Kod
Neden türünü tanımlayan kod. Buradaki sıra anlamsızdır. Özellikle, belirli bir nedenin (her ikisi de geçerliyse) çözümde bir diğer nedenden önce görünüp görünmeyeceğini belirtmez.
Sıralamalar | |
---|---|
CODE_UNSPECIFIED |
Bu ifade hiçbir zaman kullanılmamalıdır. |
NO_VEHICLE |
Modelde, tüm sevkiyatları uygulanamaz hale getiren bir araç bulunmuyor. |
DEMAND_EXCEEDS_VEHICLE_CAPACITY |
Kargo talebi, biri example_exceeded_capacity_type olan bazı kapasite türleri için aracın kapasitesini aşıyor. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT |
Bu sevkiyatı gerçekleştirmek için gereken minimum mesafe (ör. aracın Bu hesaplamada jeodezik mesafeleri kullandığımıza dikkat edin. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT |
Seyahat süresi, bekleme süresi ve servis süresi dahil olmak üzere bu gönderimi gerçekleştirmek için gereken minimum süre, aracın Not: Seyahat süresi en iyi senaryo, yani jeodezik mesafe x 36 m/sn (yaklaşık 130 km/saat) şeklinde hesaplanır. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT |
Yukarıdakiyle aynı ancak yalnızca minimum seyahat süresi ile aracın travel_duration_limit değerini karşılaştırıyoruz. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS |
Araç en erken başlangıç zamanında başlıyorsa en iyi durum senaryosunda (zaman hesaplaması için CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT ) bu gönderimi gerçekleştiremez: Toplam süre, aracın en son bitiş zamanından sonra bitmesine neden olur. |
VEHICLE_NOT_ALLOWED |
Gönderimin allowed_vehicle_indices alanı boş değil ve bu araç ona ait değil. |
TimeWindow
Zaman aralıkları, ziyaretin varış saati veya bir aracın başlangıç ve bitiş zamanı gibi bir etkinliğin zamanını kısıtlar.
Sabit zaman aralığı sınırları (start_time
ve end_time
), etkinliğin en erken ve en geç zamanını (start_time <= event_time <=
end_time
gibi) zorunlu kılar. Yumuşak zaman aralığı alt sınırı soft_start_time
, etkinliğin soft_start_time değerinden ne kadar süre önce gerçekleştiğiyle orantılı bir maliyete neden olarak etkinliğin soft_start_time
tarihinde veya sonrasında gerçekleşmesini tercih ettiğinizi ifade eder. Yumuşak zaman aralığı üst sınırı soft_end_time
, etkinliğin soft_end_time
'ten ne kadar süre sonra gerçekleştiğine orantılı bir maliyete neden olarak etkinliğin soft_end_time
'te veya öncesinde gerçekleşmesini tercih ettiğinizi ifade eder. start_time
, end_time
, soft_start_time
ve soft_end_time
, genel zaman sınırları içinde olmalı (bkz. ShipmentModel.global_start_time
ve ShipmentModel.global_end_time
) ve şunlara uymalıdır:
0 <= `start_time` <= `end_time` and
0 <= `start_time` <= `soft_start_time` and
0 <= `soft_end_time` <= `end_time`.
Alanlar | |
---|---|
start_time |
Zor zaman aralığının başlangıç zamanı. Belirtilmemişse |
end_time |
Zor zaman aralığı bitiş zamanı. Belirtilmemişse |
soft_start_time |
Zaman aralığının esnek başlangıç zamanı. |
soft_end_time |
Zaman aralığının geçici bitiş zamanı. |
cost_per_hour_before_soft_start_time |
Etkinlik soft_start_time tarihinden önce gerçekleşirse modeldeki diğer maliyetlere eklenen saat başına maliyet. Bu değer şu şekilde hesaplanır:
Bu maliyet pozitif olmalıdır ve alan yalnızca soft_start_time ayarlandıysa ayarlanabilir. |
cost_per_hour_after_soft_end_time |
Etkinlik
Bu maliyet pozitif olmalıdır ve alan yalnızca |
TransitionAttributes
Bir rota üzerinde art arda iki ziyaret arasındaki geçişlerin özelliklerini belirtir. Aynı geçiş için birkaç TransitionAttributes
geçerli olabilir: Bu durumda, tüm ek maliyetler toplanır ve en katı kısıtlama veya sınır geçerli olur (doğal "VE" anlamının gereği).
Alanlar | |
---|---|
src_tag |
Bu özelliklerin geçerli olduğu (src->dst) geçiş grubunu tanımlayan etiketler. Kaynak ziyareti veya araç başlangıcı, |
excluded_src_tag |
Şu sayfaya göz atın: |
dst_tag |
Hedef ziyareti veya araç sonu, |
excluded_dst_tag |
Şu sayfaya göz atın: |
cost |
Bu geçişin maliyetini belirtir. Bu değer, modeldeki diğer tüm maliyetlerle aynı birimdir ve negatif olmamalıdır. Diğer tüm mevcut maliyetlerin üzerine uygulanır. |
cost_per_kilometer |
Bu geçiş sırasında kat edilen mesafeye uygulanan kilometre başına maliyeti belirtir. Araçlarda belirtilen tüm |
distance_limit |
Bu geçiş gerçekleştirilirken katedilen mesafeyle ilgili bir sınırı belirtir. 06.06.2021 itibarıyla yalnızca geçici sınırlar desteklenmektedir. |
delay |
Bu geçiş gerçekleştirilirken oluşan gecikmeyi belirtir. Bu gecikme her zaman kaynak ziyareti bittikten sonra ve hedef ziyaretin başlamasından önce gerçekleşir. |
Araç
Gönderim sorunu olan bir aracı modelleme. Gönderim sorunu çözüldüğünde bu araç için start_location
ile başlayıp end_location
itibarıyla biten bir rota oluşturulur. Rota, ziyaretlerden oluşan bir sıradır (ShipmentRoute
bölümüne bakın).
Alanlar | |
---|---|
display_name |
Aracın kullanıcı tanımlı görünen adı. En fazla 63 karakter uzunluğunda olabilir ve UTF-8 karakterleri kullanabilir. |
travel_mode |
Aracın kullanabileceği yolları ve hızını etkileyen ulaşım şekli. Ayrıca bkz. |
route_modifiers |
Belirli bir araç için rotaların hesaplanma yöntemini etkileyen, karşılanacak bir dizi koşul. |
start_location |
Araç, kargoyu teslim almaya başlamadan önce hangi coğrafi konumdadır? Belirtilmemişse araç ilk teslimatında başlar. Gönderim modelinin süre ve mesafe matrisleri varsa |
start_waypoint |
Aracın herhangi bir gönderimi teslim almadan önce çalışmaya başladığı coğrafi konumu temsil eden ara nokta. |
end_location |
Aracın son |
end_waypoint |
Aracın son |
start_tags[] |
Aracın rotasının başına eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
end_tags[] |
Aracın rotasının sonuna eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
start_time_windows[] |
Aracın başlangıç konumundan ayrılabileceği zaman aralıkları. Genel zaman sınırları dahilinde olmalıdırlar ( Aynı tekrarlanan alana ait zaman aralıkları ayrı olmalıdır. Yani zaman aralığı başka bir zaman aralığıyla çakışamaz ya da bitişik olamaz ve kronolojik sırada olmalıdır.
|
end_time_windows[] |
Aracın bitiş konumuna varabileceği zaman aralıkları. Genel zaman sınırları dahilinde olmalıdırlar ( Aynı tekrarlanan alana ait zaman aralıkları ayrı olmalıdır. Yani zaman aralığı başka bir zaman aralığıyla çakışamaz ya da bitişik olamaz ve kronolojik sırada olmalıdır.
|
unloading_policy |
Araçta uygulanan kaldırma politikası. |
load_limits |
Aracın kapasiteleri (ör. ağırlık, hacim, palet sayısı). Haritadaki anahtarlar, |
cost_per_hour |
Araç maliyetleri: Tüm maliyetler toplanır ve Araç rotasının saatlik maliyeti. Bu maliyet, rotanın toplam süresine uygulanır ve seyahat süresi, bekleme süresi ve ziyaret süresini içerir. Yalnızca |
cost_per_traveled_hour |
Araç rotasında katedilen saat başına maliyet. Bu maliyet, yalnızca rotanın aldığı seyahat süresine ( |
cost_per_kilometer |
Araç rotasının kilometre başına maliyeti. Bu maliyet, |
fixed_cost |
Bu araç bir gönderiyi işlemek için kullanılıyorsa uygulanan sabit maliyet. |
used_if_route_is_empty |
Bu alan, yalnızca rotalarında herhangi bir sevkiyat hizmeti sunulmayan araçlar için geçerlidir. Bu durumda aracın kullanılmış olarak kabul edilip edilmeyeceğini belirtir. True (doğru) ise araç, herhangi bir sevkiyat hizmeti vermese bile başlangıç konumundan bitiş konumuna kadar gider ve başlangıcından itibaren zaman ve mesafe maliyetleri oluşturur --> dikkate alınır. Aksi takdirde, bu araç için başlangıç noktasından bitiş konumuna kadar gitmez ve bu araç için |
route_duration_limit |
Sınır, aracın rotasının toplam süresine uygulanır. Belirli bir |
travel_duration_limit |
Sınır, aracın rotasının seyahat süresine uygulanır. Belirli bir |
route_distance_limit |
Aracın rotasının toplam mesafesine uygulanan sınır. Belirli bir |
extra_visit_duration_for_visit_type |
Visit_types dizelerinden sürelere kadar olan bir haritayı belirtir. Süre, belirtilen Bir ziyaret isteğinin birden fazla türü varsa haritadaki her tür için bir süre eklenir. |
break_rule |
Bu araçta uygulanacak ara programını açıklar. Boş bırakılırsa bu araç için ara verme planlanmaz. |
label |
Bu araç için bir etiket belirtir. Bu etiket, yanıtta karşılık gelen |
ignore |
Değer true ise
|
travel_duration_multiple |
Bu aracın seyahat sürelerini artırmak veya azaltmak için kullanılabilen çarpma faktörünü belirtir. Örneğin bu değerin 2.0 olarak ayarlanması, bu aracın daha yavaş olduğu ve seyahat sürelerinin standart araçlardakinin iki katı olduğu anlamına gelir. Bu katsayı, ziyaret sürelerini etkilemez. UYARI: Bu katsayı uygulandıktan sonra herhangi bir sayısal işlem yapılmadan önce seyahat süreleri en yakın saniyeye yuvarlanır. Bu nedenle, küçük bir sayının katsayısı hassasiyet kaybına neden olabilir. Ayrıca aşağıdaki |
DurationLimit
Bir aracın rotanın maksimum süresini tanımlayan sınır. Sert veya yumuşak olabilir.
Bir esnek sınır alanı tanımlandığında, hem esnek maksimum eşiği hem de ilişkili maliyeti birlikte tanımlanmalıdır.
Alanlar | |
---|---|
max_duration |
Süreyi en fazla max_duration olacak şekilde sınırlayan kesin bir sınır. |
soft_max_duration |
Maksimum süre sınırı uygulanmayan, ancak ihlal edildiğinde rotanın ücretlendirilen bir sınırı olan sabit bir sınır. Bu maliyet, aynı birimle modelde tanımlanan diğer maliyetlere eklenir. Tanımlanmışsa |
quadratic_soft_max_duration |
Maksimum süre sınırı uygulamayan ancak ihlal edildiğinde rotanın süreye bağlı olarak karesel bir maliyete maruz kalmasına neden olan yumuşak sınır. Bu maliyet, modelde tanımlanan diğer maliyetlerle (aynı birimde) toplanır. Tanımlanmışsa
|
cost_per_hour_after_soft_max |
Maliyet negatif olmamalıdır. |
cost_per_square_hour_after_quadratic_soft_max |
Süre eşik değerinin altındaysa ek maliyet 0'dır. Aksi takdirde maliyet, süreye bağlı olarak aşağıdaki gibidir:
Maliyet negatif olmamalıdır. |
LoadLimit
Bir araç için geçerli olan yük sınırını tanımlar (ör. "bu kamyon yalnızca 3.500 kg ağırlığa kadar yük taşıyabilir"). Şu sayfaya göz atın: load_limits
.
Alanlar | |
---|---|
soft_max_load |
Düşük bir yük sınırı. Şu sayfaya göz atın: |
cost_per_unit_above_soft_max |
Yük, bu aracın rotasında |
start_load_interval |
Rotanın başlangıcında aracın kabul edilebilir yük aralığı. |
end_load_interval |
Rotanın sonundaki aracın kabul edilebilir yük aralığı. |
max_load |
Kabul edilebilir maksimum yük miktarı. |
Aralık
Kabul edilebilir yükleme miktarlarının aralığı.
Alanlar | |
---|---|
min |
Minimum kabul edilebilir yük. ≥ 0 olmalıdır. Her ikisi de belirtilmişse |
max |
Maksimum kabul edilebilir yük. ≥ 0 olmalıdır. Belirtilmemişse maksimum yükleme bu ileti tarafından kısıtlanmaz. Her ikisi de belirtilmişse |
TravelMode
Araçlar tarafından kullanılabilen ulaşım şekilleri.
Bunlar, Google Haritalar Platformu Routes Preferred API seyahat modlarının bir alt kümesi olmalıdır. Şu sayfaya göz atın: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteTravelMode.
Sıralamalar | |
---|---|
TRAVEL_MODE_UNSPECIFIED |
Belirtilmemiş ulaşım şekli. DRIVING ile eşdeğerdir. |
DRIVING |
Arabayla yol tariflerine karşılık gelen ulaşım şekli (araba, ...). |
WALKING |
Yaya yol tarifine karşılık gelen ulaşım modu. |
UnloadingPolicy
Araçların nasıl indirilebileceğiyle ilgili politika. Yalnızca hem teslim alma hem de teslimat içeren gönderimler için geçerlidir.
Diğer gönderimler, unloading_policy
bağımsız olarak rotanın herhangi bir yerinde ücretsiz olacaktır.
Sıralamalar | |
---|---|
UNLOADING_POLICY_UNSPECIFIED |
Belirtilmemiş boşaltma politikası; teslimatlar, ilgili teslim alma işlemlerinden hemen sonra gerçekleşmelidir. |
LAST_IN_FIRST_OUT |
Teslimatlar, teslim alma sırası tersten yapılmalıdır |
FIRST_IN_FIRST_OUT |
Teslimatlar, teslim alma siparişleriyle aynı sırayla yapılmalıdır |
Ara nokta
Bir referans noktasını içerir. Referans noktaları, Ziyaret İstekleri'nin varış ve kalkış konumları ile Araçların başlangıç ve bitiş konumlarını gösterir.
Alanlar | |
---|---|
side_of_road |
İsteğe bağlı. Bu yol işaretinin konumunun, aracın yolun belirli bir tarafında durması için tercih edildiğini belirtir. Bu değeri ayarladığınızda rota, konumdan geçer. Böylece araç, konumun merkezine göre ağırlık verdiği yol kenarında durabilir. Bu seçenek "YÜRÜYÜŞ" seyahat modunda kullanılamaz. |
Birlik alanı location_type . Bir konumu temsil etmenin farklı yolları. location_type şunlardan yalnızca biri olabilir: |
|
location |
İsteğe bağlı bir başlık da dahil olmak üzere coğrafi koordinatlar kullanılarak belirtilen bir nokta. |
place_id |
Referans noktasıyla ilişkilendirilen ÖY yer kimliği. |