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)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 tarihinden itibaren saniyeler.
- saniye değeri [0, 253402300799], yani [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00] biçiminde olmalıdır.
- nanos ayarlanmalı veya 0 olarak ayarlanmalıdır.
google.protobuf.Duration
- saniye değeri [0, 253402300799], yani [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00] biçiminde olmalıdır.
- nanos ayarlanmalı veya 0 olarak ayarlanmalıdır.
google.type.LatLng
- enlem [-90.0, 90.0] biçiminde olmalıdır.
- boylam [-180.0, 180.0] içinde olmalıdır.
- enlem ve boylamlardan en az biri sıfır olmamalıdır.
BatchOptimizeTours |
---|
Araç turlarını toplu olarak bir veya daha fazla Bu yöntem Uzun Süreli İşlem'dir (LRO). Optimizasyon girişleri (
|
OptimizeTours |
---|
Amaç, maliyetin
|
AggregatedMetrics
ShipmentRoute
için toplam metrikler (tüm Transition
ve/veya Visit
(tüm ShipmentRoute
öğelerinde) genelinde OptimizeToursResponse
için gösterilir.
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 için 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 şuna da karşılık gelir:
|
travel_distance_meters |
Bir rota veya çözüm için toplam seyahat mesafesi. |
max_loads |
Rotanın tamamında (sorumlu çözüm) bu rotadaki her miktar için (çözümlü çözelti) maksimum yük elde edilen maksimum yük, |
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 optimize etme isteği. Her giriş dosyası bir OptimizeToursRequest
, her çıkış dosyası bir OptimizeToursResponse
içermelidir. İstek, dosyaları okumak/yazmak ve ayrıştırmak için gereken bilgileri içerir. Tüm giriş ve çıkış dosyaları aynı proje altında olmalıdır.
Alanlar | |
---|---|
parent |
Zorunlu. Arama yapmak için proje ve konumu hedefleyin. Biçim: * Konum belirtilmezse otomatik olarak bir bölge seçilir. |
model_configs[] |
Zorunlu. Her satın alma modelinin giriş/çıkış bilgileri (ör. dosya yolları ve veri biçimleri). |
AsyncModelConfig
Bir optimizasyon modelini eşzamansız olarak çözme bilgileri.
Alanlar | |
---|---|
display_name |
İsteğe bağlı. Kullanıcı tanımlı model adı, modelleri takip etmek için kullanıcılar tarafından takma ad olarak kullanılabilir. |
input_config |
Zorunlu. Giriş modeli hakkında bilgi. |
output_config |
Zorunlu. İstenen çıkış konumu bilgisi. |
BatchOptimizeToursResponse
Bu türde alan yok.
BatchOptimizeToursRequest
için yanıt. Bu değer, Uzun Süreli İşlemde işlem tamamlandıktan sonra döndürülür.
BreakRule
Bir araç için zaman araları oluşturmaya yönelik kurallar (ör. öğle yemeği molaları). Mola, aracın mevcut konumunda boşta kaldığı ve herhangi bir ziyaret gerçekleştiremediği ardışık bir süredir. Aşağıdaki durumlarda mola verilebilir:
- iki ziyaret arasındaki seyahat sırasında (bu, ziyaretten hemen önceki veya sonraki zamandır, ancak ziyaretin ortasında olmayan zamandır). Bu durumda, ziyaretler arasındaki nakliye süresini uzatır.
- veya araç başlamadan önce (araç, bir molanın ortasında çalışmayabilir). Bu durumda aracın başlangıç zamanı etkilenmez.
- araç bitiş zamanından sonra da yayınlayın (aynı şekilde, aracın bitiş zamanıyla birlikte).
Alanlar | |
---|---|
break_requests[] |
Araların sırası. |
frequency_constraints[] |
Birkaç |
BreakRequest
Her araç için geçerli olan mola sırası (yani numarası ve sırası) önceden bilinmelidir. Tekrarlanan BreakRequest
öğeleri, diziyi oluşmaları gereken sırayla tanımlar. 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. Aranın minimum süresi. Pozitif olmalıdır. |
FrequencyConstraint
Yukarıda belirtilen araların sıklığını ve süresini "Her 12 saatte en az 1 saatlik bir ara olmalıdır" gibi bir minimum ara sıklığını zorunlu kılarak daha da kısıtlayabilirsiniz. Bunun "12 saatlik herhangi bir kaydırma zaman aralığı içinde en az bir saatlik ara olmalıdır" şeklinde yorumlanabileceği varsayıldığında bu örnek şu şekilde çevrilir: FrequencyConstraint
{
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
özelliğinde önceden belirtilmiş olan zaman aralıkları ve minimum sürelerin yanı sıra bu tür kısıtlamaların tümüne uyar.
Pratikte, art arda olmayan aralar için FrequencyConstraint
geçerli olabilir. Örneğin, aşağıdaki program "1 saat her 12 saat" örneğini dikkate alır:
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 olmayan. |
max_inter_break_duration |
Zorunlu. Rotada, en azından kısmen mola içermeyen, izin verilen maksimum zaman aralığı |
DataFormat
Giriş ve çıkış dosyaları için veri biçimleri.
Sıralamalar | |
---|---|
DATA_FORMAT_UNSPECIFIED |
Geçersiz değer, biçim UNSPECIFIED olmamalıdır. |
JSON |
JavaScript Nesne Gösterimi. |
PROTO_TEXT |
Protokol Arabellekleri metin biçimi. Bkz. https://protobuf.dev/reference/protobuf/textformat-spec/ |
DistanceLimit
Katedilebilecek maksimum mesafeyi tanımlayan bir sınır. Sert veya yumuşak olabilir.
Bir hafif sınır tanımlanırsa hem soft_max_meters
hem de cost_per_kilometer_above_soft_max
tanımlanmalı ve negatif olmamalıdır.
Alanlar | |
---|---|
max_meters |
Mesafeyi en fazla max_meters olacak şekilde sınırlayan katı bir sınır. Sınır negatif olmayan bir sayı olmalıdır. |
soft_max_meters |
Maksimum mesafe sınırının zorunlu kılınmadığı ancak ihlal edildiğinde modelde tanımlanan diğer maliyetlerin toplamına ek olarak aynı birimle birlikte bir maliyetle ortaya çıkan yumuşak sınır. Tanımlanmışsa soft_max_meters değeri max_meters değerinden küçük olmalı ve negatif olmamalıdır. |
cost_per_kilometer_above_soft_max |
Mesafe
Maliyet negatif olmamalı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 sınırlanması ve nasıl sınırlanması gerektiği hakkındaki bilgileri içeren, isteğe yerleştirilen çözüm.
Alanlar | |
---|---|
routes[] |
Yerleştirilecek çözümün yolları. 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 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.
Alanlar | |
---|---|
relaxations[] |
|
vehicle_indices[] |
|
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 used_if_route_is_empty
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:
vehicle_start_time >= 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:vehicle_end_time >= relaxations(i).threshold_time
VEroute.visits_size() + 1 >= relaxations(i).threshold_visit_count
Bir ziyaret threshold_visit_count
ile karşılanırsa VEYA threshold_time
, aynı level
değerine sahip iki relaxations
ekler: biri yalnızca threshold_visit_count
içeren, diğeri yalnızca threshold_time
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.
Alanlar | |
---|---|
level |
|
threshold_time |
|
threshold_visit_count |
|
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. |
InputConfig
[BatchOptimizeTours][google.maps.routeoptimization.v1.RouteOptimizasyonService.BatchOptimizeTours] için bir giriş belirtin.
Alanlar | |
---|---|
data_format |
Zorunlu. Giriş verisi biçimi. |
Birleştirme alanı source . Zorunlu. source şunlardan yalnızca biri olabilir: |
|
gcs_source |
Google Cloud Storage konumu. Bu tek bir nesne (dosya) olmalıdır. |
Konum
Bir konumu (coğrafi bir nokta ve isteğe bağlı bir başlık) içerir.
Alanlar | |
---|---|
lat_lng |
Ara noktanın coğrafi koordinatları. |
heading |
Trafiğin akış yönüyle ilişkili pusula istikameti. Bu değer, alma ve bırakma için kullanılacak yolun kenarını belirtmek için kullanılır. Başlık değerleri 0 ile 360 arasında olabilir (0 0 bitiş noktası yönünü, 90 ise teslim tarihi yaklaşan Doğu yönünü vb. belirtir.) |
OptimizeToursRequest
Çözülecek gönderim modelini ve optimizasyon parametrelerini tanımlayan bir tur optimizasyonu çözücüye sunulma isteği.
Alanlar | |
---|---|
parent |
Zorunlu. Arama yapmak için projeyi veya konumu hedefleyin. Biçim: * Konum belirtilmezse otomatik olarak bir bölge seçilir. |
timeout |
Bu zaman aşımı ayarlanırsa, zaman aşımı süresi dolmadan veya eşzamanlı istekler için sunucu son tarihine (hangisi daha önceyse) ulaşılmadan sunucu bir yanıt döndürür. Eşzamansız istekler için, sunucu zaman aşımı süresi dolmadan önce (mümkünse) bir çözüm oluşturur. |
model |
Çözülmesi gereken gönderim modeli. |
solving_mode |
Varsayılan olarak çözme modu |
search_mode |
İsteği çözmek için kullanılan arama modu. |
injected_first_solution_routes[] |
Önceki çözüme benzer ilk çözümü bulması için optimizasyon algoritmasına rehberlik etme. İlk çözüm oluşturulduğunda model kısıtlanır. Bir rotada gerçekleştirilmeyen tüm gönderimler ilk çözümde örtülü olarak atlanır, ancak ardışık çözümlerde gerçekleştirilebilir. Çözüm, geçerliliğiyle ilgili bazı temel varsayımları karşılamalıdır:
Eklenen çözüm uygun değilse doğrulama hatası döndürülmeyebilir ve bunun yerine uygulanabilir olmadığını belirten bir hata döndürülebilir. |
injected_solution_constraint |
Önceki çözüme benzer nihai çözüm bulmak için optimizasyon algoritmasının kısıtlanmasını sağlar. Örneğin, hâlihazırda tamamlanan ya da tamamlanmak üzere olan ancak değiştirilmemesi gereken güzergahların bölümlerini dondurmak için kullanılabilir. Eklenen çözüm uygun değilse doğrulama hatası döndürülmeyebilir ve bunun yerine uygulanabilir olmadığını belirten bir hata döndürülebilir. |
refresh_details_routes[] |
Boş bırakılmamışsa belirtilen rotalar, temel ziyaret veya seyahat süresi sırası değiştirilmeden yenilenir: Yalnızca diğer ayrıntılar güncellenir. Bu işlem modeli çözmez. 2020/11 itibarıyla bu işlem yalnızca boş olmayan rotaların çoklu çizgilerini doldurur ve Giriş yapılan rotaların Bu alan
|
interpret_injected_solutions_using_labels |
Doğruysa:
Bu yorum Doğruysa, aşağıdaki kategorilerde yer alan etiketler kendi kategorilerinde en fazla bir kez görünmelidir:
Enjekte edilen çözümdeki Rota ziyaretlerinin veya rotaların enjekte edilen çözümden tamamen kaldırılması, 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 kişi, her |
consider_road_traffic |
|
populate_polylines |
Doğru değerine ayarlanırsa yanıt |
populate_transition_polylines |
Doğruysa |
allow_large_deadline_despite_interruption_risk |
Bu ayarlanırsa istek için 60 dakikaya kadar bir son tarih (https://grpc.io/blog/deadlines sayfasına bakın) olabilir. Aksi takdirde, maksimum son tarih yalnızca 30 dakikadır. Uzun süreli isteklerin kesintiye uğrama riskinin çok daha büyük (ancak yine de küçük) olduğunu unutmayın. |
use_geodesic_distances |
Doğruysa, seyahat mesafeleri Google Haritalar mesafeleri yerine jeodezik mesafeler kullanılarak, seyahat süreleri ise |
label |
Bu isteği tanımlamak için kullanılabilecek ve |
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 BadRequest hata ayrıntısı (https://cloud.google.com/apis/design/errors#error_details) olarak INVALID_ARGUMENT hata yüküne iliştirilir. Ancak çözüm_mode=VALIDATE_ONLY olarak kabul edilmez: |
SearchMode
Arama davranışını tanımlayan mod, gecikmenin veya çözüm kalitesinin karşılaştırmasını içerir. Tüm modlarda, genel istek son tarihi uygulanır.
Sıralamalar | |
---|---|
SEARCH_MODE_UNSPECIFIED |
RETURN_FAST ile eşdeğer, belirtilmemiş arama modu. |
RETURN_FAST |
İlk iyi çözümü bulduktan sonra aramayı durdurun. |
CONSUME_ALL_AVAILABLE_TIME |
Daha iyi çözümler aramaya tüm vaktinizi harcayın. |
SolvingMode
Çözücünün isteği nasıl ele alacağını tanımlar. VALIDATE_ONLY
dışındaki tüm modlarda, istek geçersizse INVALID_REQUEST
hatası alırsınız. Döndürülen hataların sayısını sınırlamak için max_validation_errors
sayfasına bakın.
Sıralamalar | |
---|---|
DEFAULT_SOLVE |
Modeli çözün. |
VALIDATE_ONLY |
Modeli yalnızca çözmeden doğrular: Mümkün olduğunca çok OptimizeToursResponse.validation_errors doldurur. |
DETECT_SOME_INFEASIBLE_SHIPMENTS |
Yalnızca ÖNEMLİ: Buraya tüm uygun olmayan gönderiler değil, yalnızca ön işleme sırasında uygun olmadığı belirlenenler iade edilir. |
OptimizeToursResponse
Her aracın takip ettiği rotaları, atlanan sevkiyatı ve çözümün toplam maliyetini içeren bir tur optimizasyonu problemi çözüldü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önderimlerin listesi. |
validation_errors[] |
Bağımsız olarak tespit edebildiğimiz tüm doğrulama hatalarının listesi. |
metrics |
Bu çözüm için süre, mesafe ve kullanım metrikleri. |
Metrikler
Tüm rotalardan toplanan genel metrikler.
Alanlar | |
---|---|
aggregated_route_metrics |
Rotalar üzerinde toplanır. Her metrik, aynı ada sahip tüm |
skipped_mandatory_shipment_count |
Atlanan zorunlu gönderimlerin sayısı. |
used_vehicle_count |
Kullanılan araç sayısı. Not: Bir araç rotası boşsa ve |
earliest_vehicle_start_time |
İkinci el bir aracın en erken başlangıç zamanı. |
latest_vehicle_end_time |
İkinci el bir araç için en geç bitiş zamanı. |
costs |
Çözümün maliyeti (maliyetle ilgili istek alanlarına göre ayrılır). Anahtarlar, OptimizeToursRequest girişine (ör. "model.shipments.pickups.cost") göre proto yollarıdır ve değerler, ilgili maliyet alanı tarafından oluşturulan ve tüm çözüm genelinde toplanan toplam maliyettir. Başka bir deyişle maliyetler, ["model.shipments.pickups.cost"] çözüm üzerindeki tüm teslim alma maliyetlerinin toplamıdır. TransitionAttributes ile ilgili olan ve 2022.01 itibarıyla yalnızca toplu şekilde raporlanan TransitionAttribute maliyetleri hariç, modelde tanımlanan tüm maliyetler 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 bir hatayı açıklar.
Alanlar | |
---|---|
code |
Doğrulama hatası, her zaman mevcut olan çift ( Diğer alanlar (aşağıda) hatayla ilgili daha fazla bilgi sağlar. BİRDEN FAZLA HATA: Birden çok hata olduğunda, doğrulama işlemi bunlardan birkaçının çıktısını almaya çalışır. Tıpkı derleyici gibi, bu da kusursuz bir süreçtir. Bazı doğrulama hataları "önemli" olur, yani tüm doğrulama işlemini durdururlar. Bu durum, diğerlerinde olduğu gibi KARARLILIK: REFERANS: Tüm (kod, ad) çiftlerin 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 alınması aşağıdaki şekilde yapılabilir:
Ancak belirli bir hata kodu için |
error_message |
Hatayı açıklayan, kullanıcıların okuyabileceği dize. KARARLILIK: Kararlı değil: Belirli bir |
offending_values |
Alanların değerlerini içerebilir. Bu seçenek her zaman kullanılamayabilir. Bu aracı kesinlikle kullanmamalı ve yalnızca manuel model hata ayıklaması için kullanmalısınız. |
FieldReference
Doğrulama hatası için bir bağlam belirtir. FieldReference
, her zaman bu dosyadaki belirli bir alana başvuruda bulunur ve aynı hiyerarşik yapıyı izler. Örneğin, 5 numaralı aracın start_time_windows
öğesinin 2. öğesini şunu kullanarak belirtebiliriz:
name: "vehicles" index: 5 sub_field { name: "end_time_windows" index: 2 }
Ancak, mesajı karmaşık hale getirmemek için OptimizeToursRequest
veya ShipmentModel
gibi üst düzey öğeleri atlarız.
Alanlar | |
---|---|
name |
Alanın adı, ör. "Taşıtlar". |
sub_field |
Gerekirse yinelemeli olarak iç içe yerleştirilmiş alt alan. |
Birleştirme alanı
|
|
index |
Tekrarlanırsa alanın dizini. |
key |
Alan bir haritaysa anahtar. |
OutputConfig
[BatchOptimizeTours][google.maps.routeoptimization.v1.RouteOptimizasyonService.BatchOptimizeTours] sonuçları için bir hedef belirtin.
Alanlar | |
---|---|
data_format |
Zorunlu. Çıkış veri biçimi. |
Birleştirme alanı destination . Zorunlu. destination şunlardan yalnızca biri olabilir: |
|
gcs_destination |
Çıkışın yazılacağı Google Cloud Storage konumu. |
Gönderim
Tek bir öğenin, bir teslim alma noktasından teslimatlarından birine gönderimi. Sevkiyatın tamamlanabilmesi için benzersiz bir aracın teslim alma konumlarından birini ziyaret etmesi (ve yedek kapasitelerini buna uygun şekilde azaltması), ardından daha sonra teslimat konumlarından birini ziyaret etmesi (ve dolayısıyla yedek kapasitelerini buna uygun şekilde artırması) gerekir.
Alanlar | |
---|---|
display_name |
Gönderimin kullanıcı tanımlı görünen adı. En fazla 63 karakter uzunluğunda olabilir ve UTF-8 karakterleri kullanabilir. |
pickups[] |
Gönderimle ilgili teslim alma alternatifleri grubu. Belirtilmezse aracın yalnızca teslimatlara karşılık gelen bir konumu ziyaret etmesi gerekir. |
deliveries[] |
Gönderimle ilişkili teslimat alternatifleri grubu. Belirtilmezse aracın yalnızca teslim alma işlemlerine karşılık gelen bir konumu ziyaret etmesi gerekir. |
load_demands |
Gönderinin yük talepleri (ör. ağırlık, hacim, palet sayısı vb.). Haritadaki anahtarlar, tercihen birimleri de içeren, karşılık gelen yükün türünü açıklayan tanımlayıcılar olmalıdır. Örneğin: "weight_kg", "Volume_gallons", "pallet_count" vb. Belirli bir anahtar haritada görünmüyorsa, ilgili yük boş olarak kabul edilir. |
allowed_vehicle_indices[] |
Bu gönderimi gerçekleştirebilecek araç grubu. Boşsa tüm araçlar bunu yapabilir. Araçlar, |
costs_per_vehicle[] |
Bu gönderim her araç tarafından teslim edildiğinde ortaya çıkan maliyeti belirtir. Belirtilmiş olması durumunda HERHANGİ BİRİNİ içermelidir:
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ı ve gönderimde en azından teslim alma ve teslimat bilgileri bulunmalıdır. Örneğin, seçilen teslim alma alternatifinden doğrudan seçili teslimat alternatifine geçmek için geçen en kısa süreyi belirtin. Daha sonra
Aynı gönderimde hem göreli hem de mutlak sınırlar belirtilmişse olası her teslim alma/teslimat çifti için daha kısıtlayıcı sınır kullanılır. 2017/10 tarihi itibarıyla, tali güzergahlar yalnızca seyahat süreleri araca bağlı olmadığında desteklenmektedir. |
pickup_to_delivery_time_limit |
Bir gönderinin teslim alınma tarihinden teslimatın başlamasına kadar olan maksimum süreyi belirtir. Belirtilmişse negatif olmamalı ve gönderimde en azından teslim alma ve teslimat bilgileri bulunmalıdır. Bu, teslim alma ve teslimat için hangi alternatiflerin seçildiğine veya aracın hızına bağlı değildir. Bu, maksimum sapma kısıtlamalarıyla birlikte belirtilebilir: Çözüm, her iki özelliği de dikkate alacaktır. |
shipment_type |
Bu gönderim için bir "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 |
Doğruysa bu gönderimi atlayın ancak Modelde
|
penalty_cost |
Gönderim tamamlanmazsa bu ceza rotaların toplam maliyetine eklenir. Bir gönderim, teslim alma ve teslimat alternatiflerinden biri ziyaret edildiyse tamamlanmış olarak kabul edilir. Maliyet, modeldeki maliyetle ilgili diğer tüm alanlar için kullanılan aynı birimle ifade edilebilir ve pozitif olmalıdır. ÖNEMLİ: Bu ceza belirtilmezse süresiz olarak kabul edilir, yani gönderimin tamamlanmış olması gerekir. |
pickup_to_delivery_relative_detour_limit |
Teslim alma ile teslimat arasındaki en kısa yola kıyasla maksimum göreli sapma süresini belirtir. Belirtilmişse negatif olmamalı ve gönderimde en azından teslim alma ve teslimat bilgileri bulunmalıdır. Örneğin, seçilen teslim alma alternatifinden doğrudan seçili teslimat alternatifine geçmek için geçen en kısa süreyi belirtin. Daha sonra
Aynı gönderimde hem göreli hem de mutlak sınırlar belirtilmişse olası her teslim alma/teslimat çifti için daha kısıtlayıcı sınır kullanılır. 2017/10 tarihi itibarıyla, tali güzergahlar yalnızca seyahat süreleri araca bağlı olmadığında desteklenmektedir. |
Yük
Ziyaret gerçekleştirirken, teslim almaysa araç yüküne önceden tanımlanmış bir tutar eklenebilir veya teslimat için bu tutar çıkarılabilir. Bu mesajda söz konusu tutar tanımlanır. Şu sayfaya göz atın: load_demands
.
Alanlar | |
---|---|
amount |
İlgili ziyareti gerçekleştiren aracın yükünün değişiklik gösterdiği miktardır. Tam sayı olduğundan, hassasiyet kaybı olmaması için kullanıcılara uygun bir birim seçmeleri önerilir. ≥ 0 olmalıdır. |
VisitRequest
Araç tarafından yapılabilecek bir ziyaret isteği: Coğrafi konumu (veya aşağıya bakın) iki tane olmak üzere, zaman aralıklarıyla gösterilen açılış ve kapanış saatleri ve hizmet süresi (aracın ürünleri almak veya bırakmak için araca ulaştıktan sonra harcadığı süre) vardır.
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 kısıtlayan zaman aralıkları. Aracın varış saati penceresinin dışında hareket edebileceğini, yani varış saatinin + sürenin bir zaman aralığının içinde olmasının gerekmediğini unutmayın. Bu durum, araç
Zaman aralıkları ayrı olmalıdır, yani hiçbir zaman aralığı başka bir zaman aralığıyla çakışmamalı veya bitişik olmamalı ve artan düzende olmalıdır.
|
duration |
Ziyaret süresi, yani aracın varış ve kalkış arasında harcadığı süre (olası bekleme süresine eklenmek üzere; bkz. |
cost |
Bu ziyaret isteği için araç rotası üzerinden hizmet verme maliyeti. Bu özellik, bir gönderimin her bir alternatif teslim alma veya teslimatı için farklı maliyetler ödemek amacıyla kullanılabilir. Bu maliyet |
load_demands |
Bu ziyaret isteğinin taleplerini yükle. Bu, |
visit_types[] |
Ziyaret türlerini belirtir. Bu değer, bir aracın bu ziyareti tamamlaması için gereken ek süreyi ayırmak üzere kullanılabilir (bkz. Bir tür yalnızca bir kez görünebilir. |
label |
Bu |
ShipmentModel
Gönderim modeli, bir araç grubu tarafından gerçekleştirilmesi gereken bir dizi gönderim içerir ve genel maliyeti en aza indirir. Bu da toplam maliyeti ifade eder:
- araçların rota belirleme maliyeti (toplam süre başına maliyet, seyahat süresi başına maliyet ve tüm araçlar için sabit maliyet toplamı).
- yerine getirilmemiş gönderim cezaları nedeniyle.
- Sevkiyatların küresel süresinin maliyeti
Alanlar | |
---|---|
shipments[] |
Modelde gerçekleştirilmesi gereken gönderim grubu. |
vehicles[] |
Ziyaretler için kullanılabilecek araç grubu. |
global_start_time |
Modelin genel başlangıç ve bitiş zamanı: Bu aralığın dışındaki zamanlar geçerli olarak kabul edilemez. Modelin zaman aralığı bir yıldan kısa olmalıdır. Yani
|
global_end_time |
Ayarlanmadan bırakılırsa, varsayılan olarak 1 Ocak 1971, 00:00:00 (UTC) (saniye: 31536000, nanos: 0) kullanılır. |
global_duration_cost_per_hour |
Genel planın "global süresi", tüm araçların en erken geçerli başlangıç zamanı ile en geç geçerli bitiş zamanı arasındaki farktır. Kullanıcılar örneğin, işin en erken tamamlanmasına yönelik optimizasyon yapmak için bu miktara saatlik 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 eklenen geçiş özellikleri. |
shipment_type_incompatibilities[] |
Uyumsuz shipping_types grupları (bkz. |
shipment_type_requirements[] |
|
precedence_rules[] |
Modelde uygulanması gereken öncelik kuralları grubu. |
max_active_vehicles |
Maksimum aktif araç sayısını kısıtlar. Rotasında en az bir gönderim yapılan bir araç aktiftir. Bu, araçtan daha az sürücünün olduğ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ı. |
DurationDistanceMatrix
Ziyaret ve araç başlangıç konumlarından ziyaret edilene kadar süre ve mesafe matrisini, ayrıca aracın bitiş konumlarını 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 bu, 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. Yani, aracın Tüm matrislerin |
Satır
Süre ve mesafe matrisi satırını belirtir.
Alanlar | |
---|---|
durations[] |
Belirli bir satır için süre değerleri. |
meters[] |
Belirli bir satır için mesafe değerleri. Modeldeki mesafelerle ilgili herhangi bir maliyet veya kısıtlama söz konusu değilse bu alan boş bırakılabilir; aksi takdirde, |
PrecedenceRule
İki etkinlik arasındaki öncelik kuralı (her etkinlik, bir gönderimin teslim alınması veya teslim edilmesidir): "İkinci" etkinlik, "ilk" başladıktan sonra en az offset_duration
sonra başlamalıdır.
Çeşitli öncelikler, aynı (veya ilgili) etkinliklere, ör. "B'nin teslimi A'nın teslimatından sonra gerçekleşir" ve "C'nin teslim alınması B'nin tesliminden sonra gerçekleşir".
Ayrıca, öncelikler yalnızca her iki gönderim de gerçekleştirildiğinde ve başka bir şekilde yoksayıldığında geçerli olur.
Alanlar | |
---|---|
first_is_delivery |
"İlk" etkinliğin bir yayın olup olmadığını gösterir. |
second_is_delivery |
"İkinci" etkinliğin bir yayın olup olmadığını gösterir. |
offset_duration |
"İlk" ve "ikinci" etkinlik arasındaki göreli konum. Negatif olabilir. |
first_index |
"İlk" etkinliğin gönderim dizini. Bu alan belirtilmelidir. |
second_index |
"İkinci" etkinliğin gönderim dizini. Bu alan belirtilmelidir. |
ShipmentRoute
Bir aracın rotası, zaman ekseni üzerinde şu şekilde ayrıştırılabilir (n ziyaret olduğu varsayılır):
| | | | | 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 fark olduğunu unutmayın:
- aracın başlangıç ve bitişi ile her ziyaretin başlangıcı ve bitişi (diğer adıyla varış ve gidiş) gibi "planlı etkinlikler". Bunlar belirli bir saniyede gerçekleşir.
- "zaman aralıkları" (ör. ziyaretlerin kendisi ve ziyaretler arasındaki geçiş). Zaman aralıkları bazen sıfır süreye (aynı saniyede başlayıp biten) olabilse de genellikle pozitif bir süreye sahiptir.
Sabitler:
- n ziyaret varsa n+1 geçişi vardır.
- Bir ziyaretin çevresinde her zaman kendisinden önce gelen bir geçiş (aynı dizin) ve sonrasında bir geçiş bulunur (dizin + 1).
- Aracın çalıştırılmasından sonra her zaman #0 geçiş yapılır.
- Araç bitişinden önce her zaman #n geçişi bulunur.
Yakınlaştırdığınızda 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, BREAKS, DELAY ve BEKLEME işlevlerinin nasıl düzenlenebileceği aşağıda anlatılmıştır.
- Birbiriyle çakışmaz.
- DELAY benzersizdir ve bir sonraki ziyaretten (veya aracın bitişinden) hemen önce olan ardışık bir dönem olmalıdır. Dolayısıyla, başlangıç ve bitiş zamanını öğrenmek için gecikme süresini bilmek yeterlidir.
- BREAKS birbirini takip eden ve çakışmayan zaman aralıklarıdır. Yanıt, her aranın başlangıç zamanını ve süresini belirtir.
- TRAVEL ve WAIT "öncelikli" özelliklerdir: Bu geçişler sırasında birkaç kez kesintiye uğrayabilirler. Müşteriler seyahatin "mümkün olan en kısa sürede" gerçekleştiğini ve "bekleme"nin, kalan süreyi dolduracağını varsayabilir.
(Karmaşık) bir ö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 |
|
vehicle_label |
Belirtilmişse bu rotayı yürüten aracın etiketi (belirtilirse |
vehicle_start_time |
Aracın rotaya başladığı saat. |
vehicle_end_time |
Aracın rotasını bitirdiği saat. |
visits[] |
Bir rotayı temsil eden sıralı ziyaret dizisi. ziyaretler[i], rotadaki 1. ziyarettir. Bu alan boşsa araç kullanılmamış olarak kabul edilir. |
transitions[] |
Rota için sıralı geçiş listesi. |
has_traffic_infeasibilities |
Next_visit tarihinde varış, trafik nedeniyle |
route_polyline |
Rotanın kodlanmış çoklu çizgi gösterimi. Bu alan yalnızca |
breaks[] |
Bu rotada ilerleyen araç için molalar planlandı. |
metrics |
Bu rota için süre, mesafe ve yük metrikleri. |
route_costs |
Rotanın, maliyetle ilgili istek alanlarına göre ayrılmış maliyeti. Anahtarlar, OptimizeToursRequest girişine (ör. "model.shipments.pickups.cost") göre proto yollarıdır ve değerler, ilgili maliyet alanı tarafından oluşturulan ve rotanın tamamında toplanan toplam maliyettir. Başka bir deyişle maliyetler, ["model.shipments.pickups.cost"] rota üzerindeki tüm teslim alma maliyetlerinin toplamıdır. TransitionAttributes ile ilgili olan ve 2022.01 itibarıyla yalnızca toplu şekilde raporlanan TransitionAttribute maliyetleri hariç, modelde tanımlanan tüm maliyetler burada ayrıntılı olarak raporlanı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 üzerinde iki olay arasında geçiş. ShipmentRoute
açıklamasına bakın.
Araçta start_location
ve/veya end_location
yoksa ilgili seyahat metrikleri 0 olur.
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ı. Böyle bir durumda, gecikme bir sonraki etkinlikten (ziyaret veya araç sonu) tam olarak |
break_duration |
Varsa bu geçiş sırasında meydana gelen araların süre toplamı. Her aranın başlangıç zamanı ve süresiyle ilgili ayrıntılar |
wait_duration |
Bu geçiş sırasında bekleme süresi. Bekleme süresi, boşta kalma süresine karşılık gelir ve ara zamanını içermez. Ayrıca, bu bekleme süresinin ardışık 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 aracın İlk geçiş sırasındaki yüklemeler, araç rotasının başlangıç yükleridir. Ardından, her ziyaretten sonra ziyaretin |
VehicleLoad
Belirli bir tür için, yolun bir noktasında aracın gerçek yükünü bildirir (bkz. Transition.vehicle_loads
).
Alanlar | |
---|---|
amount |
Belirli bir tür için araç üzerindeki yük miktarı. Yük birimi, genellikle tür ile gösterilir. Şu sayfaya göz atın: |
Şu adrese gidin:
Bir rota üzerinde gerçekleştirilen ziyaret. Bu ziyaret, bir Shipment
teslim alma veya teslimata karşılık geliyor.
Alanlar | |
---|---|
shipment_index |
|
is_pickup |
Doğruysa, ziyaret bir |
visit_request_index |
|
start_time |
Ziyaretin başladığı saat. Aracın ziyaret konumuna bundan daha erken gelebileceğini unutmayın. Saatler |
load_demands |
Gönderim ve |
detour |
Güzergah, ziyaretten önce güzergâh üzerinde gidilen sevkiyatlar ve zaman aralıklarından kaynaklanan olası bekleme süreleri nedeniyle ek rotadan sapma süresi. Ziyaret teslimatsa, sapma, ilgili teslim alma ziyaretine göre hesaplanır ve şuna eşittir:
Aksi takdirde,
|
shipment_label |
|
visit_label |
|
ShipmentTypeIncompatibility
shipping_type [gönderi_türü] özelliğine bağlı olarak gönderimler arasındaki uyumsuzlukları belirtir. Aynı rota üzerinde uyumsuz olan gönderimlerin gösterilmesi, uyumsuzluk moduna bağlı olarak kısıtlanır.
Alanlar | |
---|---|
types[] |
Uyumsuz türlerin listesi. Listelenenler arasında farklı |
incompatibility_mode |
Uyumsuzluğa mod uygulandı. |
IncompatibilityMode
Uyumsuz gönderilerin görünümünün aynı rota üzerinde nasıl kısıtlandığını tanımlayan modlar.
Sıralamalar | |
---|---|
INCOMPATIBILITY_MODE_UNSPECIFIED |
Uyumsuzluk modu belirtilmedi. Bu değer asla kullanılmamalıdır. |
NOT_PERFORMED_BY_SAME_VEHICLE |
Bu modda, uyumsuz türlere sahip iki gönderim aynı aracı hiçbir zaman paylaşamaz. |
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY |
|
ShipmentTypeRequirement
Gönderiler arasındaki gereklilikleri, shipping_type [gönderim_türü] değerine göre belirtir. Koşulun ayrıntıları, gereksinim modu ile tanımlanır.
Alanlar | |
---|---|
required_shipment_type_alternatives[] |
|
dependent_shipment_types[] |
NOT: |
requirement_mode |
Koşula mod uygulandı. |
RequirementMode
Rota üzerindeki bağımlı sevkiyatların görünümünü tanımlayan modlar.
Sıralamalar | |
---|---|
REQUIREMENT_MODE_UNSPECIFIED |
Belirtilmemiş gereksinim modu. Bu değer asla kullanılmamalıdır. |
PERFORMED_BY_SAME_VEHICLE |
Bu modda tüm "bağımlı" gönderiler, "gerekli" gönderimlerinden en az biriyle aynı aracı paylaşmalıdır. |
IN_SAME_VEHICLE_AT_PICKUP_TIME |
Bu nedenle, "bağımlı" gönderi teslim alma işleminde şunlardan biri olmalıdır:
|
IN_SAME_VEHICLE_AT_DELIVERY_TIME |
Aynı önceki gibi, "bağımlı" gönderilerin teslimat sırasında araçlarında "zorunlu" bir gönderimin bulunması gerekir. |
SkippedShipment
Bir çözümdeki gerçekleştirilmemiş gönderimlerin ayrıntılarını belirtir. Önemsiz durumlar ve/veya atlama nedenini belirleyebiliyorsak bunun 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 nedenleri burada listelenir. Neden tüm araçlar için aynı değilse reason
1'den fazla öğeye sahip olur. Atlanan gönderimin yinelenen nedenleri olamaz (example_vehicle_index
dışında tüm alanlar aynı olmalıdır). Ö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önderim 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şılır (1. araç dahil), en az bir aracın "Armut" kapasitesi aşılır (3. araç dahil) ve en az bir aracın mesafe sınırı aşılır (1. araç dahil).
Alanlar | |
---|---|
code |
Code'un yorumlarına bakın. |
example_exceeded_capacity_type |
Neden kodu |
example_vehicle_index |
Sebep, sevkiyat-araç uyumsuzluğuyla ilgiliyse bu alan, ilgili bir aracın dizinini sağlar. |
Kod
Neden türünü tanımlayan kod. Buradaki sıra anlamsızdır. Özellikle de, belirli bir nedenin çözümde diğerinden önce görünüp görünmeyeceğini (ikisinin birlikte geçerli olduğu durumlarda) göstermez.
Sıralamalar | |
---|---|
CODE_UNSPECIFIED |
Bu ayar asla kullanılmamalıdır. Bir gönderinin neden atlandığını anlayamazsak boş neden grubu iade ederiz. |
NO_VEHICLE |
Modelde tüm sevkiyatları olanaksız kılan bir araç yoktur. |
DEMAND_EXCEEDS_VEHICLE_CAPACITY |
Gönderi talebi, bir aracın bazı kapasite türleri için kapasitesini aşıyor. Bu kapasite türlerinden biri example_exceeded_capacity_type . |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT |
Bu gönderimi gerçekleştirmek için gereken minimum mesafe (ör. aracın Bu hesaplama için jeodezik mesafeleri kullandığımızı unutmayın. |
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 senaryoda, 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ırız. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TIME_WINDOWS |
Araç, en erken başlangıç zamanında başlıyorsa bu gönderimi gerçekleştiremez (süre hesaplaması için CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT bölümüne bakın): Bu süre, aracın en geç bitiş zamanından sonra bitmesini sağlar. |
VEHICLE_NOT_ALLOWED |
Gönderimin allowed_vehicle_indices alanı boş değil ve bu araç söz konusu alana ait değil. |
TimeWindow
Zaman aralıkları, bir ziyaretin varış saati veya aracın başlangıç ve bitiş zamanı gibi etkinliğin zamanını kısıtlar.
Sert zaman aralığı sınırları (start_time
ve end_time
), etkinliğin en erken ve en geç zamanını (ör. start_time <= event_time <=
end_time
) uygular. Yumuşak zaman aralığı alt sınırı (soft_start_time
), etkinliğin gerçekleşmesinden önceki soft_start_time ile orantılı bir maliyet oluşturarak etkinliğin soft_start_time
tarihinde veya sonrasında gerçekleşmesiyle ilgili bir tercih belirtir. Yumuşak zaman aralığı üst sınırı (soft_end_time
), etkinliğin soft_end_time
tarihinden sonra ne kadar süreceğiyle orantılı bir maliyet belirleyerek etkinliğin soft_end_time
tarihinde veya öncesinde gerçekleşmesiyle ilgili bir tercih belirtir. start_time
, end_time
, soft_start_time
ve soft_end_time
, genel zaman sınırları içinde olmalıdır (bkz. ShipmentModel.global_start_time
ve ShipmentModel.global_end_time
) ve aşağıdakilere uymalıdır:
0 <= `start_time` <= `soft_start_time` <= `end_time` and
0 <= `start_time` <= `soft_end_time` <= `end_time`.
Alanlar | |
---|---|
start_time |
Zor zaman aralığının başlangıç zamanı. Belirtilmemesi durumunda |
end_time |
Zor zaman aralığının bitiş zamanı. Belirtilmemesi durumunda |
soft_start_time |
Zaman aralığının kontrollü başlangıç zamanı. |
soft_end_time |
Zaman aralığının yumuşak bitiş zamanı. |
cost_per_hour_before_soft_start_time |
Etkinlik soft_start_time öncesinde gerçekleşirse modeldeki diğer maliyetlere eklenen saat başına maliyet. Şu şekilde hesaplanır:
Bu maliyet pozitif olmalıdır ve alan yalnızca soft_start_time ayarlanmışsa 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ı sınırlama veya sınır geçerli olur (doğal "VE" anlamına göre).
Alanlar | |
---|---|
src_tag |
Bu özelliklerin geçerli olduğu (src->dst) geçiş grubunu tanımlayan etiketler. Bir kaynak ziyareti veya araç başlangıcı, |
excluded_src_tag |
Şu sayfaya göz atın: |
dst_tag |
Bir hedef ziyareti veya araç sonu, |
excluded_dst_tag |
Şu sayfaya göz atın: |
cost |
Bu geçişi gerçekleştirmenin maliyetini belirtir. Bu, modeldeki tüm diğer maliyetlerle aynı birimdedir ve negatif olmamalıdır. Diğer tüm mevcut maliyetlerin üzerine uygulanır. |
cost_per_kilometer |
Bu geçiş gerçekleştirilirken katedilen mesafeye uygulanan kilometre başına maliyeti belirtir. Araçlarda belirtilen tüm |
distance_limit |
Bu geçiş gerçekleştirilirken katedilen mesafe için bir sınır belirtir. 2021/06 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 ziyaretinin tamamlanmasından sonra ve hedef ziyaretin başlamasından önce meydana gelir. |
Araç
Sevkiyat sorunundaki bir aracın modelini oluşturur. Gönderimle ilgili bir sorun çözülürse bu araç için start_location
noktasından başlayıp end_location
tarihinde sona eren bir rota oluşturulur. Rota, bir dizi ziyarettir (bkz. ShipmentRoute
).
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 kullanılabildiği yolları ve hızını etkileyen ulaşım şekli. Ayrıca |
start_location |
Aracın herhangi bir gönderimi almadan önce başladığı coğrafi konum. Belirtilmezse araç ilk kalkışta başlar. Gönderim modelinde süre ve mesafe matrisleri varsa |
start_waypoint |
Aracın herhangi bir gönderimi teslim almadan önce başladığı coğrafi konumu temsil eden ara nokta. |
end_location |
Son |
end_waypoint |
Aracın, son |
start_tags[] |
Araç rotasının başlangıcına eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
end_tags[] |
Araç 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 süre sınırları içinde olmalıdırlar ( Aynı tekrarlanan alana ait zaman aralıkları ayrı olmalıdır, yani hiçbir zaman aralığı başka bir zaman aralığıyla çakışamaz veya bitişik olamaz ve kronolojik sırada olmalıdır.
|
end_time_windows[] |
Aracın bitiş konumuna varabileceği zaman aralıkları. Genel süre sınırları içinde olmalıdırlar ( Aynı tekrarlanan alana ait zaman aralıkları ayrı olmalıdır, yani hiçbir zaman aralığı başka bir zaman aralığıyla çakışamaz veya bitişik olamaz ve kronolojik sırada olmalıdır.
|
unloading_policy |
Araçta yükleme kaldırma politikası uygulandı. |
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ı için saatlik ücret. Bu maliyet, rotanın aldığı toplam süreye uygulanır ve seyahat süresi, bekleme süresi ve ziyaret süresini içerir. Yalnızca |
cost_per_traveled_hour |
Araç rotasında seyahat edilen saat başına maliyet. Bu maliyet yalnızca rota tarafından alınan seyahat süresine ( |
cost_per_kilometer |
Araç rotasının kilometre başına maliyeti. Bu maliyet |
fixed_cost |
Bu araç gönderim için kullanılıyorsa uygulanan sabit maliyettir. |
used_if_route_is_empty |
Bu alan, yalnızca rotalarında herhangi bir gönderime hizmet verilmeyen araçlar için geçerlidir. Bu durumda aracın ikinci el olarak kabul edilip edilmeyeceğini belirtir. Doğruysa, araç herhangi bir sevkiyat hizmeti vermese bile başlangıç noktasından bitiş konumuna gider ve aracın başlangıcından itibaren zaman ve mesafe maliyetleri de hesaba katılır. Aksi takdirde, başlangıç noktasından bitiş konumuna seyahat etmez ve bu araç için |
route_duration_limit |
Aracın rotasının toplam süresine uygulanan sınır. Belirli bir |
travel_duration_limit |
Aracın rotasındaki seyahat süresine sınırlama uygulanır. Belirli bir |
route_distance_limit |
Aracın rotasının toplam mesafesine sınır uygulanır. Belirli bir |
extra_visit_duration_for_visit_type |
Visit_types dizelerinden sürelere bir eşleme belirtir. Bu süre, 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 verilmeyecek. |
label |
Bu araç için bir etiket belirtir. Bu etiket, yanıtta karşılık gelen |
ignore |
Doğru değerine ayarlanırsa Gönderim, Gönderim, |
travel_duration_multiple |
Bu aracın seyahat sürelerini artırmak veya azaltmak için kullanılabilecek çarpımsal bir faktör belirtir. Örneğin, bu değeri 2,0 olarak ayarlamak bu aracın daha yavaş olduğu ve standart araçlara göre iki kat daha uzun seyahat süreleri olduğu anlamına gelir. Bu katsayı, ziyaret sürelerini etkilemez. UYARI: Seyahat süreleri bu katsayı uygulandıktan sonra en yakın saniyeye yuvarlanır ancak sayısal bir işlem yapılmadan önce bu sayı yuvarlanır. Bu nedenle, katların küçük olması hassasiyet kaybına neden olabilir. Ayrıca aşağıdaki |
DurationLimit
Bir aracın güzergahının maksimum süresini tanımlayan sınır. Sert veya yumuşak olabilir.
Bir hafif sınır alanı tanımlandığında hem esnek maksimum eşik hem de ilişkili maliyet 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ı uygulamayan ancak bu sınır ihlal edildiğinde minimum sınır uygulanır. Bu maliyet, aynı birimle modelde tanımlanan diğer maliyetlerin toplamıdır. Tanımlanmışsa |
quadratic_soft_max_duration |
Maksimum süre sınırı uygulamayan ancak bir maksimum süre sınırı uygulamaya konulan yumuşak sınır, rotanın süre içinde ikinci dereceden bir maliyete neden olmasına neden olur. Bu maliyet, aynı birimle modelde tanımlanan diğer maliyetlerin toplamıdı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şiğin altındaysa ek maliyet 0 olur. Aksi takdirde maliyet, aşağıdaki gibi süreye bağlı olur:
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 kadar yük taşıyabilir"). Şu sayfaya göz atın: load_limits
.
Alanlar | |
---|---|
soft_max_load |
Yükün yumuşak sınırı. Şu sayfaya göz atın: |
cost_per_unit_above_soft_max |
Bu aracın rotasında yük |
start_load_interval |
Rotanın başlangıcında aracın kabul edilebilir yükleme aralığı. |
end_load_interval |
Rotanın sonunda aracın kabul edilebilir yükleme aralığı. |
max_load |
Kabul edilebilir maksimum yük miktarı. |
Aralık
Kabul edilebilir yükleme miktarları aralığı.
Alanlar | |
---|---|
min |
Kabul edilebilir minimum yük. ≥ 0 olmalıdır. Her ikisi de belirtilmişse |
max |
Kabul edilebilir maksimum yük. ≥ 0 olmalıdır. Bir değer belirtilmezse bu mesajla maksimum yükleme kısıtlanmaz. Her ikisi de belirtilmişse |
TravelMode
Araçlar tarafından kullanılabilecek ulaşım şekilleri.
Bunlar, Google Haritalar Platformu Rotaları Tercih Edilen API seyahat modlarının bir alt kümesi olmalıdır. Bkz. https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteTravelMode.
Sıralamalar | |
---|---|
TRAVEL_MODE_UNSPECIFIED |
DRIVING ile eşdeğer olan ulaşım şekli belirtilmemiş. |
DRIVING |
Arabayla yol tariflerine (araba, ...) karşılık gelen ulaşım şekli. |
WALKING |
Yaya yol tariflerine karşılık gelen ulaşım şekli. |
UnloadingPolicy
Bir aracın nasıl boşaltılabileceğiyle ilgili politika. Yalnızca hem teslim alma hem de teslimat seçeneği bulunan gönderiler için geçerlidir.
unloading_policy
haricinde rotanın herhangi bir yerinde başka gönderimler serbesttir.
Sıralamalar | |
---|---|
UNLOADING_POLICY_UNSPECIFIED |
Kaldırma politikası belirtilmemiş. Teslimatlar yalnızca ilgili teslim alma işlemlerinden sonra yapılmalıdır. |
LAST_IN_FIRST_OUT |
Teslimatlar, teslim almaların ters sırasına göre yapılmalıdır |
FIRST_IN_FIRST_OUT |
Teslimatlar teslim alma işlemleri ile aynı sırayla gerçekleşmelidir |
Ara nokta
Bir referans noktasını içerir. Referans noktaları, VisitRequests'in varış ve kalkış konumlarının yanı sıra Araçlar'ın başlangıç ve bitiş konumlarını işaretler.
Alanlar | |
---|---|
side_of_road |
İsteğe bağlı. Bu ara noktanın konumunun, aracın yolun belirli bir tarafında durması için tercih edilmesinin amaçlandığını belirtir. Bu değeri ayarladığınızda, araç, konumun yolun merkezine doğru eğildiği bir yolda durabileceği şekilde rota, konumdan geçer. Bu seçenek "WALKING" ulaşım modunda kullanılamaz. |
Birleştirme alanı location_type . Bir yeri 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 |
Ara noktayla ilişkili ÖY Yeri Kimliği. |