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 saatindedir: 1970-01-01T00:00:00+00:00 itibarıyla saniye.
- saniye, [0, 253402300799] aralığında (ör. [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00]) olmalıdır.
- nanos ayarının kaldırılması veya 0 olarak ayarlanması gerekir.
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 ayarının kaldırılması veya 0 olarak ayarlanması gerekir.
google.type.LatLng
- enlem, [-90,0; 90,0] aralığında olmalıdır.
- boylam, [-180,0; 180,0] aralığında olmalıdır.
- En az biri sıfır olmayan enlem ve boylam değerleri olmalıdır.
BatchOptimizeTours |
---|
Araç turlarını bir veya daha fazla Bu yöntem, uzun süreli bir işlemdir (LRO). Optimizasyon girişleri ( Kullanıcı, LRO'nun durumunu kontrol etmek için LRO LRO'nun
|
OptimizeTours |
---|
Bir
Amaç, maliyetin
|
AggregatedMetrics
ShipmentRoute
(veya tüm Transition
ve/veya Visit
(veya tüm ShipmentRoute
) öğeleri için OptimizeToursResponse
) öğeleri için toplu metrikler.
Alanlar | |
---|---|
performed_ |
Gerçekleştirilen gönderim sayısı. Bir teslim alma ve teslim etme çiftinin yalnızca bir kez sayıldığını unutmayın. |
travel_ |
Bir rota veya çözümün toplam seyahat süresi. |
wait_ |
Bir rota veya çözümün toplam bekleme süresi. |
delay_ |
Bir rota veya çözümün toplam gecikme süresi. |
break_ |
Bir rota veya çözümün toplam ara süresi. |
visit_ |
Bir rota veya çözümün toplam ziyaret süresi. |
total_ |
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_ |
Bir rota veya çözüm için toplam seyahat mesafesi. |
max_ |
Bu rotadaki (sırasıyla çözümdeki) her bir miktar için rotanın (sırasıyla çözümün) tamamında elde edilen maksimum yük. Tüm |
BatchOptimizeToursMetadata
Bu türde alan yoktur.
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
, her çıkış dosyası ise 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. Telefon görüşmesi yapmak için projeyi ve konumu hedefleyin. Biçim: * Konum belirtilmezse otomatik olarak bir bölge seçilir. |
model_ |
Zorunlu. Her satın alma modelinin giriş/çıkış bilgileri (ör. dosya yolları ve veri biçimleri). |
AsyncModelConfig
Bir optimizasyon modelini eşzamansız olarak çözmeyle ilgili bilgiler.
Alanlar | |
---|---|
display_ |
İ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_ |
Zorunlu. Giriş modeli hakkında bilgi. |
output_ |
Zorunlu. İstenilen çıkış konumu bilgileri. |
BatchOptimizeToursResponse
Bu türde alan yoktur.
BatchOptimizeToursRequest
için yanıt. Bu değer, işlem tamamlandıktan sonra Uzun Süreli İşlem'de döndürülür.
BreakRule
Bir araç için ara verme zamanları (ör. öğle yemeği araları) oluşturmaya yönelik kurallar. Ara, aracın mevcut konumunda sabit durduğu ve hiçbir ziyaret gerçekleştiremediği kesintisiz bir zaman aralığıdır. Aşağıdaki durumlarda ara verilebilir:
- iki ziyaret arasında seyahat sırasında (ziyaretten hemen önce veya hemen sonra olan süreyi içerir ancak ziyaretin ortasını kapsamaz) ziyaretler arasındaki ilgili geçiş 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.
- veya araç sona erdikten sonra (araç sona erme zamanı da aynı şekilde).
Alanlar | |
---|---|
break_ |
Araların sırası. |
frequency_ |
Birkaç |
BreakRequest
Her araç için geçerli olan ara verme sırası (ör. sayısı ve sırası) önceden bilinmelidir. Tekrarlanan BreakRequest
'ler, bu sırayı gerçekleşmeleri gereken sırayla tanımlar. Zaman aralıkları (earliest_start_time
/ latest_start_time
) çakışma yapabilir ancak siparişle uyumlu olmalıdır (bu kontrol edilir).
Alanlar | |
---|---|
earliest_ |
Zorunlu. Aranın başlangıcındaki alt sınır (dahil). |
latest_ |
Zorunlu. Aranın başlangıcındaki üst sınır (dahil). |
min_ |
Zorunlu. Aranın minimum süresi. Pozitif olmalıdır. |
FrequencyConstraint
"12 saatte en az 1 saatlik ara verilmelidir" gibi minimum ara sıklıklarını zorunlu kılarak yukarıda belirtilen araların sıklığını ve süresini daha da kısıtlayabilirsiniz. Bunun "12 saatlik herhangi bir kayan zaman aralığında en az bir saatlik en az bir ara verilmelidir" şeklinde yorumlanabileceği varsayıldığında, bu örnek aşağıdaki FrequencyConstraint
ile çevrilir:
{
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
içinde önceden belirtilen zaman aralıklarını ve minimum süreleri de dikkate alarak bu tür tüm kısıtlamalara uyar.
FrequencyConstraint
, pratikte art arda olmayan aralar için geçerli olabilir. Örneğin, aşağıdaki programda "12 saatte 1 saat" örneği dikkate alınmıştı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_ |
Zorunlu. Bu kısıtlama için minimum ara süresi. Sıfırdan büyük. |
max_ |
Zorunlu. Rotadaki, 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 olmamalıdır. |
JSON |
JavaScript Nesne Gösterimi. |
PROTO_TEXT |
Protokol Arabellekleri metin biçimi. https://protobuf.dev/reference/protobuf/textformat-spec/ adresine bakın. |
DistanceLimit
Seyahat edilebilecek maksimum mesafeyi tanımlayan bir 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_ |
Mesafeyi en fazla max_meters olacak şekilde kısıtlayan katı bir sınır. Sınır pozitif olmalıdır. |
soft_ |
Maksimum mesafe sınırı uygulamayan ancak ihlal edildiğinde modelde tanımlanan diğer maliyetlerle aynı birimde toplanan bir maliyete neden olan yumuşak sınır. Tanımlanmışsa soft_max_meters, max_meters değerinden küçük ve pozitif olmalıdır. |
cost_ |
Aşağıdaki formül kullanılarak
Bu maliyet |
cost_ |
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ıtlanacağı hakkında bilgiler içeren, isteğe yerleştirilen çözüm.
Alanlar | |
---|---|
routes[] |
Enjekte edilecek çözümün yolları. Bazı rotalar orijinal çözümden çıkarılabilir. Rotalar ve atlanan gönderimler, |
skipped_ |
Enjekte edilecek çözümün atlanan gönderimleri. Bazıları orijinal çözümden çıkarılabilir. |
constraint_ |
Sıfır veya daha fazla araç grubu için kısıtlamaların ne zaman ve ne kadar gevşetileceğini belirtir. Bu alan boşsa boş olmayan tüm araç rotaları tamamen kısıtlanır. |
ConstraintRelaxation
Bir araç grubu için, ziyaretlerle ilgili kısıtlamaların hangi eşiklerde ve hangi düzeyde gevşetileceğini belirtir. skipped_shipment
alanında listelenen gönderimler atlanacak şekilde kısıtlanmıştır. Yani bu gönderimler gerçekleştirilemez.
Alanlar | |
---|---|
relaxations[] |
|
vehicle_ |
Ziyaret kısıtlamasının
|
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
, #j ziyaretine uygulanan ve aşağıdaki koşulları karşılayan 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, aşağıdaki koşulları karşılıyorsa araç çalıştırma süresi relaxations(i).level
olarak gevşetilir:
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şulunu karşılıyorsa en gevşek düzey uygulanır. Sonuç olarak, araç başlangıcından rota ziyaretleri boyunca araç sonuna kadar rahatlama seviyesi daha rahat hale gelir: Yani rota ilerledikçe rahatlama seviyesi azalmaz.
Herhangi bir relaxations
'ün 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, bir aracın başlangıç veya bitiş zamanı, herhangi bir esneklik koşulunu karşılamıyorsa araç boş olmadığı sürece zaman sabitlenir.
Alanlar | |
---|---|
level |
|
threshold_ |
Gevşemenin |
threshold_ |
Gevşetme
|
Seviye
Bir ziyaret için uygulanan ve eşik koşulları karşılandığında sonraki ziyaretler için uygulanan farklı kısıtlama gevşetme düzeylerini ifade eder.
Aşağıdaki liste, rahatlama düzeyinin artması sırasına göre düzenlenmiştir.
Sıralamalar | |
---|---|
LEVEL_UNSPECIFIED |
Örtük varsayılan gevşeme düzeyi: Hiçbir kısıtlama gevşetilmez, yani tüm ziyaretler tamamen kısıtlanır. Bu değer |
RELAX_VISIT_TIMES_AFTER_THRESHOLD |
Ziyaret başlangıç saatleri ve araç başlangıç/bitiş saatleri için daha esnek bir yaklaşım uygulanacak ancak her ziyaret aynı araca bağlı olmaya devam edecek ve ziyaret sırasına uyulması gerekecek: Ziyayetler arasına veya ziyaretlerden önce başka ziyaret eklenemez. |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD |
RELAX_VISIT_TIMES_AFTER_THRESHOLD ile aynıdır ancak ziyaret sırası da gevşetilmiştir: Ziyaretler yalnızca bu araç tarafından gerçekleştirilebilir ancak potansiyel olarak iptal edilebilir. |
RELAX_ALL_AFTER_THRESHOLD |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD ile aynıdır ancak araçta da esneklik vardır: Ziyaretler, eşik zamanda veya sonrasında tamamen ücretsizdir ve potansiyel olarak gerçekleştirilmeyebilir. |
InputConfig
[BatchOptimizeTours][google.maps.routeoptimization.v1.RouteOptimizationService.BatchOptimizeTours] için bir giriş belirtin.
Alanlar | |
---|---|
data_ |
Zorunlu. Giriş verisi biçimi. |
Birlik alanı source . Zorunlu. source yalnızca aşağıdakilerden biri olabilir: |
|
gcs_ |
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) kapsar.
Alanlar | |
---|---|
lat_ |
Yol noktasının coğrafi koordinatları. |
heading |
Trafik akışının yönüyle ilişkili pusula yönü. 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 kargo modelini ve optimizasyon parametrelerini tanımlayan bir tur optimizasyonu çözümleyicisine gönderilecek istek.
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 sunucu, zaman aşımı süresi dolmadan veya eşzamanlı isteklerin sunucu için son tarihi dolmadan önce (hangisi önceyse) bir yanıt döndürür. Asenkron istekler için sunucu, zaman aşımı dolmadan önce (mümkünse) bir çözüm oluşturur. |
model |
Çözülecek gönderim modeli. |
solving_ |
Çözüm modu varsayılan olarak |
search_ |
İsteği çözmek için kullanılan arama modu. |
injected_ |
Önceki bir çözüme benzer ilk çözümü bulma konusunda optimizasyon algoritmasına rehberlik edin. İlk çözüm oluşturulduğunda model 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:
Enjekte edilen çözüm uygun değilse doğrulama hatası döndürülmeyebilir ve bunun yerine uygun olmadığını belirten bir hata döndürülebilir. |
injected_ |
Önceki bir çözüme benzer nihai bir çözüm bulmak için optimizasyon algoritmasını kısıtlayın. Örneğin, bu özellik, tamamlanmış veya tamamlanacak ancak değiştirilmemesi gereken rotaların bölümlerini dondurmak için kullanılabilir. Enjekte edilen çözüm uygun değilse doğrulama hatası döndürülmeyebilir ve bunun yerine uygun olmadığını belirten bir hata döndürülebilir. |
refresh_ |
Boş değilse belirli rotalar, temel ziyaret sırası 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 işlev yalnızca boş olmayan rotaların çoklu çizgilerini doldurur ve İletilen rotaların Bu alan
|
interpret_ |
Doğruysa:
Bu yorum Bu değer doğruysa aşağıdaki kategorilerdeki etiketler kategorilerinde en fazla bir kez görünmelidir:
Enjekte edilen çözümdeki bir Rota ziyaretlerinin veya rotaların tamamının enjekte edilmiş bir çözümden kaldırılması, ima edilen kısıtlamaları etkileyebilir. Bu da çözümde değişikliğe, doğrulama hatalarına veya uygulanamazlığa neden olabilir. NOT: Arayan, her |
consider_ |
|
populate_ |
Doğru ise yanıt |
populate_ |
Doğru ise |
allow_ |
Bu ayar belirlenirse istek için 60 dakikaya kadar bir son tarih (https://grpc.io/blog/deadlines adresine bakın) belirlenebilir. Aksi takdirde, maksimum son tarih yalnızca 30 dakikadır. Uzun süreli isteklerin kesinti riskinin önemli ölçüde daha yüksek (ancak yine de küçük) olduğunu unutmayın. |
use_ |
Doğru ise seyahat mesafeleri Google Haritalar mesafeleri yerine jeodezik mesafeler kullanılarak hesaplanır ve seyahat süreleri |
label |
Bu isteği tanımlamak için kullanılabilecek etiket. |
geodesic_ |
|
max_ |
Döndürülen doğrulama hatası 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
Aramanın davranışını tanımlayan, gecikme ile çözüm kalitesi arasında denge kuran 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 |
Daha iyi çözümler aramak için tüm zamanınızı kullanın. |
SolvingMode
Çözümleyicinin isteği nasıl işleyeceğ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ırlamak için max_validation_errors
bölümüne 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İ: Burada, uygulanamayan tüm gönderiler değil, yalnızca ön işleme sırasında uygulanamaz olarak algılananlar döndürülür. |
OptimizeToursResponse
Bir tur optimizasyonu probleminin çözümünden sonra, her aracın izlediği rotaları, atlanan kargoları ve çözümün toplam maliyetini içeren yanıt.
Alanlar | |
---|---|
routes[] |
Her araç için hesaplanan rotalar; i. rota, modeldeki i. araca karşılık gelir. |
request_ |
İstekte bir etiket belirtilmişse |
skipped_ |
Atlanan tüm gönderimlerin listesi. |
validation_ |
Bağımsız olarak tespit edebildiğimiz tüm doğrulama hatalarının listesi. |
metrics |
Bu çözümün süresi, mesafesi ve kullanım metrikleri. |
Metrikler
Tüm rotalar için toplanmış genel metrikler.
Alanlar | |
---|---|
aggregated_ |
Rotalar genelinde toplanır. Her metrik, aynı ada sahip tüm |
skipped_ |
Atlanan zorunlu gönderi sayısı. |
used_ |
Kullanılan araç sayısı. Not: Bir araç rotası boşsa ve |
earliest_ |
|
latest_ |
Bir ikinci el aracın en son bitiş zamanı. |
costs |
Maliyetle ilgili istek alanlarına göre dökümü alınmış çözüm maliyeti. Anahtarlar, giriş OptimizeToursRequest'a göre proto yollarıdır (ör. "model.shipments.pickups.cost") ve değerler, ilgili maliyet alanı tarafından oluşturulan ve çözümün tamamında toplanan toplam maliyettir. Diğer bir deyişle, costs["model.shipments.pickups.cost"], çözümdeki 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ç burada ayrıntılı olarak raporlanır. |
total_ |
Çözümün toplam maliyeti. Maliyet haritasındaki tüm değerlerin toplamı. |
OptimizeToursValidationError
Bir OptimizeToursRequest
doğrulanırken karşılaşılan hatayı veya uyarıyı açıklar.
Alanlar | |
---|---|
code |
Doğrulama hatası, her zaman mevcut olan ( Bu bölümün ardından gelen alanlar, hatayla ilgili daha fazla bağlam bilgisi sağlar. MULTIPLE ERRORS: Birden fazla hata olduğunda doğrulama işlemi, bunların birkaçını döndürmeye çalışır. Derleyiciye benzer şekilde, bu işlem de kusursuz değildir. Bazı doğrulama hataları "önemli"dir. Bu, doğrulama sürecinin tamamını durdurdukları anlamına gelir. Bu durum, diğerlerinin yanı sıra KARARLILIĞ: |
display_ |
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ı araca ve 2 numaralı gönderinin ilk teslimine referans verilebilir:
Ancak |
error_ |
Hatayı açıklayan, kullanıcıların okuyabileceği bir dize. STABİLİTE: Kararlı değil: Belirli bir |
offending_ |
Alanların değerlerini içerebilir. Bu seçenek her zaman kullanılamaz. Bu yönteme kesinlikle güvenmemeli ve yalnızca manuel model hata ayıklama için kullanmalısınız. |
FieldReference
Doğrulama hatası için bir 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
öğesinin 2. öğesini şu şekilde belirtebiliriz:
name: "vehicles" index: 5 sub_field { name: "end_time_windows" index: 2 }
Ancak mesajın kalabalıklaşmasını önlemek için OptimizeToursRequest
veya ShipmentModel
gibi üst düzey varlıkları atlıyoruz.
Alanlar | |
---|---|
name |
Alanın adı (ör. "vehicles". |
sub_ |
Gerekirse yinelenen olarak iç içe yerleştirilmiş alt alan. |
Birlik alanı
|
|
index |
Yinelenen alanın dizini. |
key |
Alan bir harita ise anahtar. |
OutputConfig
[BatchOptimizeTours][google.maps.routeoptimization.v1.RouteOptimizationService.BatchOptimizeTours] sonuçları için bir hedef belirtin.
Alanlar | |
---|---|
data_ |
Zorunlu. Çıkış veri biçimi. |
Birlik alanı destination . Zorunlu. destination yalnızca aşağıdakilerden biri olabilir: |
|
gcs_ |
Çıktının yazılacağı Google Cloud Storage konumu. |
RouteModifiers
Araç rotaları hesaplanırken karşılanması gereken bir dizi isteğe bağlı koşulu kapsar. Bu, Google Haritalar Platformu Rotalar Tercih Edilen API'sindeki RouteModifiers
ile benzerdir. https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteModifiers adresine bakın.
Alanlar | |
---|---|
avoid_ |
Makul olduğunda ücretli yollardan kaçınılıp kaçınılmayacağını belirtir. Ücretli yol içermeyen rotalara öncelik verilir. Yalnızca motorlu seyahat modları için geçerlidir. |
avoid_ |
Makul olduğunda otoyolların kullanılıp kullanılmayacağını belirtir. Otoyol içermeyen rotalara öncelik verilir. Yalnızca motorlu seyahat modları için geçerlidir. |
avoid_ |
Makul olduğunda feribotlardan kaçınılıp kaçınılmayacağını belirtir. Feribot seyahati içermeyen rotalara öncelik verilir. Yalnızca motorlu seyahat modları için geçerlidir. |
avoid_ |
İsteğe bağlı. Mümkün olduğunda kapalı alanlarda gezinmekten kaçınılmasını belirtir. Kapalı mekan navigasyonu içermeyen rotalara öncelik verilir. Yalnızca |
Gönderim
Tek bir öğenin, teslim alma noktalarından teslim noktalarına kadar olan gönderimi. 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_ |
Gönderinin kullanıcı tanımlı görünen adı. 63 karaktere kadar uzun olabilir ve UTF-8 karakterleri içerebilir. |
pickups[] |
Gönderimle ilişkili teslim alma alternatifleri grubu. Belirtilmemişse aracın yalnızca teslimatlara karşılık gelen bir konumu ziyaret etmesi gerekir. |
deliveries[] |
Gönderimle 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_ |
Gönderinin yükleme talepleri (ör. ağırlık, hacim, palet sayısı vb.). Haritadaki anahtarlar, ilgili yükün türünü açıklayan tanımlayıcılardır (ideal olarak birimleri de içermelidir). Örneğin: "weight_kg", "volume_gallons", "pallet_count" vb. Belirli bir anahtar haritada görünmüyorsa ilgili yük geçersiz olarak kabul edilir. |
allowed_ |
Bu gönderimi gerçekleştirebilecek araç grubu. Boşsa tüm araçlar tarafından gerçekleştirilebilir. Araçlar, |
costs_ |
Bu gönderim her araç tarafından teslim edildiğinde ortaya çıkan maliyeti belirtir. Belirtilmişse ŞUNLARDAN BİRİNİ içermelidir:
Bu maliyetler |
costs_ |
|
pickup_ |
Alınma noktasından teslimat noktasına giden en kısa yola kıyasla maksimum mutlak ek süreyi belirtir. Belirtiliyse pozitif olmalıdır ve gönderim en az 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ı sınır kullanılır. 10/2017 itibarıyla, yalnızca seyahat süreleri araçlara bağlı olmadığında dolambaçlar desteklenir. |
pickup_ |
Bir gönderinin teslim alınma başlangıcından teslimat başlangıcına kadar geçen maksimum süreyi belirtir. Belirtiliyse pozitif olmalıdır ve gönderim en az bir teslim alma ve teslimat içermelidir. Bu süre, teslimat ve teslim alma için hangi alternatiflerin seçildiğine veya araç hızına bağlı değildir. Bu, maksimum sapma kısıtlamalarıyla birlikte belirtilebilir: Çözüm her iki spesifikasyona da uyar. |
shipment_ |
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, yanıtta ilgili |
ignore |
Doğruysa bu gönderimi atlayın ancak Modelde
|
penalty_ |
Gönderim tamamlanmazsa bu ceza, rotaların toplam maliyetine eklenir. Bir kargo, teslim alma ve teslimat seçeneklerinden biri ziyaret edilirse tamamlanmış kabul edilir. Maliyet, modeldeki diğer tüm maliyetle ilgili alanlar için kullanılan birimle ifade edilebilir ve pozitif olmalıdır. ÖNEMLİ: Bu ceza belirtilmezse sonsuz olarak kabul edilir. Yani gönderim tamamlanmalıdır. |
pickup_ |
Alınma noktasından teslimat noktasına giden en kısa yola kıyasla maksimum göreli ek süreyi belirtir. Belirtiliyse pozitif olmalıdır ve gönderim en az 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ı sınır kullanılır. 10/2017 itibarıyla, yalnızca seyahat süreleri araçlara bağlı olmadığında dolambaçlar desteklenir. |
Yükle
Bir ziyaret gerçekleştirirken, teslimat ise araç yüküne önceden tanımlanmış bir tutar eklenebilir veya teslimat ise araç yükünden çıkarılabilir. Bu mesajda bu 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 ne kadar değişeceği. Tam sayı olduğundan kullanıcıların, hassasiyet kaybı yaşamamak için uygun bir birim seçmeleri önerilir. ≥ 0 olmalıdır. |
VisitRequest
Bir araçla yapılabilen ziyaret isteği: Coğrafi konumu (veya iki tane, aşağıya bakın), zaman aralıkları ile gösterilen açılış ve kapanış saatleri ve hizmet süresi (araç, malları teslim almaya veya teslim etmeye geldikten sonra harcadığı süre) vardır.
Alanlar | |
---|---|
arrival_ |
Bu |
arrival_ |
Bu |
departure_ |
Bu |
departure_ |
Bu |
tags[] |
Ziyaret isteğine eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
time_ |
Ziyaretlerin varış zamanını kısıtlayan 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 hiçbir zaman aralığı diğeriyle örtüşmemeli veya bitişik olmamalıdır. Ayrıca zaman aralıkları artan düzende olmalıdır.
|
duration |
Ziyaretin süresi, yani aracın varış ile ayrılış arasında geçirdiği süre (olası bekleme süresine eklenir; |
cost |
Bir araç rotasında bu ziyaret isteğini yerine getirmenin maliyeti. Bu, bir gönderimin her alternatif teslim alma veya teslimat işlemi için farklı maliyetler ödemek amacıyla kullanılabilir. Bu maliyet, |
load_ |
Bu ziyaret isteğinin taleplerini yükleyin. Bu, |
visit_ |
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 dizi araç tarafından yapılması gereken bir dizi gönderimi içerir. Bu modelde, toplam maliyeti en aza indirmek için aşağıdakilerin toplamı kullanılır:
- Araç rotalarının maliyeti (toplam süre başına maliyet, seyahat süresi başına maliyet ve tüm araçlar için sabit maliyetin toplamı).
- yapılmayan kargo cezaları.
- Gönderimlerin dünya genelindeki süresinin maliyeti
Alanlar | |
---|---|
shipments[] |
Modelde yapılması gereken kargolar grubu. |
vehicles[] |
Ziyaret yapmak için kullanılabilecek araç grubu. |
global_ |
Modelin genel başlangıç ve bitiş zamanı: Bu aralık dışındaki hiçbir zaman geçerli kabul edilemez. Modelin zaman aralığı bir yıldan kısa olmalıdır. Yani
|
global_ |
Ayarlanmazsa varsayılan olarak 1 Ocak 1971, 00:00:00 UTC (ör. saniye: 31536000, nanosaniye: 0) kullanılır. |
global_ |
Genel planın "küresel 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 en kısa sürede iş tamamlama için optimizasyon yapmaya çalışmak üzere bu miktara saat başına bir maliyet atayabilir. Bu maliyet, |
duration_ |
Modelde kullanılan süre ve mesafe matrislerini belirtir. Bu alan boşsa Kullanım örnekleri:
|
duration_ |
Süre ve mesafe matrislerinin kaynaklarını tanımlayan etiketler; Etiketler |
duration_ |
Süre ve mesafe matrislerinin hedeflerini tanımlayan etiketler; Etiketler |
transition_ |
Modele geçiş özellikleri eklendi. |
shipment_ |
Uyumsuz shipment_types grupları ( |
shipment_ |
|
precedence_ |
Modelde uygulanması gereken öncelik kuralları grubu. |
max_ |
Maksimum etkin araç sayısını kısıtlar. Rotasında en az bir gönderim yapılan araçlar etkindir. Bu, sürücü sayısının araç sayısından az olduğu ve araç filosunun heterojen olduğu durumlarda rota sayısını sınırlamak için kullanılabilir. Ardından optimizasyon, kullanılacak en iyi araç alt kümesini seçer. Kesinlikle pozitif 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_ |
Bu süre ve mesafe matrisinin hangi araçlara uygulandığını 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. Yani Tüm matrislerin farklı bir |
Satır
Süre ve mesafe matrisinin bir satırını belirtir.
Alanlar | |
---|---|
durations[] |
Belirli bir satırın süre değerleri. |
meters[] |
Belirli bir satırın 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.
Birkaç öncelik aynı (veya ilgili) etkinliklere atıfta bulunabilir. Örneğin: "B teslimatı A teslimatından sonra gerçekleşir" ve "C teslimatı B teslimatından sonra gerçekleşir".
Ayrıca, öncelik yalnızca her iki gönderim de yapıldığında geçerli olur ve aksi takdirde yoksayılır.
Alanlar | |
---|---|
first_ |
"İlk" etkinliğin bir yayın olup olmadığını belirtir. |
second_ |
"İkinci" etkinliğin bir yayın olup olmadığını belirtir. |
offset_ |
"ilk" ve "ikinci" etkinlik arasındaki ofset. Negatif olabilir. |
first_ |
"ilk" etkinliğin gönderi dizini. Bu alan belirtilmelidir. |
second_ |
"İkinci" etkinliğin gönderi dizini. Bu alan belirtilmelidir. |
ShipmentRoute
Bir aracın rotası, zaman ekseni boyunca aşağıdaki gibi ayrılabilir (n ziyaret olduğunu varsayalım):
| | | | | 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:
- 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.
- Ziyaretlerin kendisi ve ziyaretler arasındaki geçiş gibi "zaman aralıkları". Zaman aralıkları bazen sıfır süreye sahip olabilir (yani aynı saniyede başlar ve biter). Ancak genellikle pozitif bir süreye sahiptir.
Değişmezler:
- n ziyaret varsa n+1 geç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ç çalıştırma işlemini her zaman 0 numaralı geçiş izler.
- Araç sonunun önünde her zaman geçiş #n bulunur.
Büyütme işleminde, Transition
ve Visit
sırasında şunlar gerçekleşir:
---+-------------------------------------+-----------------------------+-->
| 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, TRAVEL, BREAKS, DELAY ve WAIT öğelerinin geçiş sırasında nasıl düzenlenebileceğini aşağıda görebilirsiniz.
- Bu iki bölge çakışmaz.
- GECİKME benzersizdir ve bir sonraki ziyaretten (veya aracın bitiş tarihinden) hemen önce kesintisiz bir zaman aralığı olmalıdır. Bu nedenle, başlangıç ve bitiş zamanını öğrenmek için gecikme süresini bilmeniz yeterlidir.
- ARA VERİLECEK ZAMANLAR, birbirini takip eden ve çakışmayan zaman aralıklarıdır. Yanıt, her bir aranın başlangıç zamanını ve süresini belirtir.
- TRAVEL ve WAIT "öncelik verilebilir"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ştiğini ve kalan sürenin "bekleme" ile doldurulduğunu 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_ |
Rotayı gerçekleştiren araç. Kaynaktaki diziniyle |
vehicle_ |
Bu rotayı gerçekleştiren aracın etiketi. Belirtilmişse |
vehicle_ |
Aracın rotasına başladığı zaman. |
vehicle_ |
Aracın rotasını tamamladığı zaman. |
visits[] |
Bir rotayı temsil eden ziyaretlerin sıralı dizisi. visits[i], rotada i. ziyarettir. Bu alan boşsa araç kullanılmamış olarak kabul edilir. |
transitions[] |
Rotanın geçişlerinin sıralı listesi. |
has_ |
Trafik nedeniyle artan seyahat süresi tahmini |
route_ |
Rotayı kodlanmış çoklu çizgi temsili. Bu alan yalnızca |
breaks[] |
Bu rotayı yapan araç için planlanan aralar. |
metrics |
Bu rotanın süresi, mesafesi ve yük metrikleri. |
route_ |
Maliyetle ilgili istek alanlarına göre dökümü alınmış rota maliyeti. Anahtarlar, giriş OptimizeToursRequest'a göre proto yollar ("model.shipments.pickups.cost" gibi) ve değerler, ilgili maliyet alanı tarafından oluşturulan toplam maliyetin tüm rota boyunca toplanmış halidir. Diğer bir deyişle, costs["model.shipments.pickups.cost"], rotadaki tüm teslim alma maliyetlerinin toplamıdır. Modelde tanımlanan tüm maliyetler, TransitionAttributes ile ilgili maliyetler hariç olmak üzere burada ayrıntılı olarak raporlanır. TransitionAttributes ile ilgili maliyetler ise 01.2022 itibarıyla yalnızca toplu olarak raporlanır. |
route_ |
Rotanın toplam maliyeti. Maliyet haritasındaki tüm maliyetlerin toplamı. |
Ara
Bir aranın yürütülmesini temsil eden veriler.
Alanlar | |
---|---|
start_ |
Aranın başlangıç zamanı. |
duration |
Mola süresi. |
EncodedPolyline
Bir çoklu çizginin kodlanmış gösterimi. Poli çizgi kodlaması hakkında daha fazla bilgiyi şu adreslerde 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ş
Rotadaki iki etkinlik arasında geçiş. ShipmentRoute
öğesinin açıklamasını inceleyin.
Araçta start_location
ve/veya end_location
yoksa ilgili seyahat metrikleri 0 olur.
Alanlar | |
---|---|
travel_ |
Bu geçiş sırasındaki seyahat süresi. |
travel_ |
Geçiş sırasında kat edilen mesafe. |
traffic_ |
|
delay_ |
Bu geçişe uygulanan gecikme sürelerinin toplamı. Gecikme varsa bir sonraki etkinlikten (ziyaret veya araç sonu) tam olarak |
break_ |
Bu geçiş sırasında gerçekleşen araların süresinin toplamı (varsa). Her molanın başlangıç zamanı ve süresi |
wait_ |
Bu geçiş sırasında bekleme süresi. Bekleme süresi, boşta kalma süresine karşılık gelir ve ara verme süresini içermez. Ayrıca bu bekleme süresinin, birbirine bitişik olmayan birkaç aralığa bölünebileceğini unutmayın. |
total_ |
Kolaylık olması açısından geçişin toplam süresi. Şuna eşittir:
|
start_ |
Bu geçişin başlangıç zamanı. |
route_ |
Geçiş sırasında takip edilen rotanın kodlanmış çoklu çizgi gösterimi. Bu alan yalnızca |
route_ |
Yalnızca çıkış. Navigasyon sırasında rotayı yeniden oluşturmak ve yeniden yönlendirme durumunda rotanın oluşturulduğu orijinal amacı dikkate almak için Navigation SDK'ya iletilebilecek opak bir jeton. Bu jetonu opak bir blob olarak değerlendirin. Hizmet tam olarak aynı rotayı döndürse bile değeri değişebileceğinden, değerini istekler arasında karşılaştırmayın. Bu alan yalnızca |
vehicle_ |
Bu geçiş sırasında araç yüklemeleri. Bu araçta İlk geçiş sırasındaki yükler, araç rotasının başlangıç yükleridir. Ardından, her ziyaretten sonra ziyaretin |
VehicleLoad
Belirli bir tür için rotadaki bir noktada aracın gerçek yükünü bildirir (Transition.vehicle_loads
bölümüne bakın).
Alanlar | |
---|---|
amount |
Belirtilen tür için araçtaki yük miktarı. Yük birimi genellikle türe göre belirtilir. Şu sayfaya göz atın: |
Ziyaret edin
Bir rota sırasında yapılan ziyaret. Bu ziyaret, bir Shipment
'ın teslim alınmasına veya teslim edilmesine karşılık gelir.
Alanlar | |
---|---|
shipment_ |
Kaynak |
is_ |
Doğru ise ziyaret, bir |
visit_ |
|
start_ |
Ziyaretin başladığı zaman. Aracın ziyaret konumuna bu saatten daha erken ulaşabileceğini unutmayın. Saatler |
load_ |
Gönderim ve ziyaret isteğinin toplamı olarak toplam ziyaret yükleme talebi |
detour |
Ziyaretten önce rota üzerinde ziyaret edilen gönderimler ve zaman aralıkları nedeniyle ortaya çıkan olası bekleme süresi nedeniyle ek yan yol süresi. Ziyaret bir teslimat ise yan yol, ilgili teslim alma ziyaretinden hesaplanır ve şuna eşittir:
Aksi takdirde,
|
shipment_ |
|
visit_ |
|
ShipmentTypeIncompatibility
shipment_type özelliğine bağlı olarak gönderimler arasındaki uyumsuzlukları belirtir. Aynı rotadaki uyumsuz kargoların görünümü, uyumsuzluk moduna göre kısıtlanır.
Alanlar | |
---|---|
types[] |
Uyumsuz türlerin listesi. Listelenenler arasında farklı |
incompatibility_ |
Uyumsuzluk için uygulanan mod. |
IncompatibilityMode
Aynı rotadaki uyumsuz gönderimlerin görünümünün nasıl kısıtlandığı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, uyumlu olmayan türlere sahip iki gönderim hiçbir zaman aynı aracı paylaşamaz. |
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY |
|
ShipmentTypeRequirement
Gönderimlerin shipment_type özelliğine göre gönderimler arasındaki koşulları belirtir. Koşulun ayrıntıları, koşul moduna göre belirlenir.
Alanlar | |
---|---|
required_ |
|
dependent_ |
NOT: |
requirement_ |
Koşula uygulanan mod. |
RequirementMode
Bir rotadaki bağımlı gönderimlerin görünümünü tanımlayan modlar.
Sıralamalar | |
---|---|
REQUIREMENT_MODE_UNSPECIFIED |
Belirtilmemiş koşul modu. Bu değer hiçbir zaman kullanılmamalıdır. |
PERFORMED_BY_SAME_VEHICLE |
Bu modda, tüm "bağlı" gönderimler "zorunlu" gönderimlerinden en az biriyle aynı aracı paylaşmalıdır. |
IN_SAME_VEHICLE_AT_PICKUP_TIME |
Bu nedenle, "bağlı" kargo teslim alma işleminde aşağıdakilerden biri bulunmalıdır:
|
IN_SAME_VEHICLE_AT_DELIVERY_TIME |
"Bağımlı" gönderimlerin teslimatı sırasında aracında "zorunlu" bir gönderim olması dışında öncekiyle aynıdır. |
SkippedShipment
Bir çözümdeki gerçekleştirilmemiş gönderimlerin ayrıntılarını belirtir. Önemsiz durumlarda ve/veya atlamanın nedenini belirleyebiliyorsak nedeni burada bildiririz.
Alanlar | |
---|---|
index |
Dizin, kaynak |
label |
|
reasons[] |
Gönderimin neden atlandığını açıklayan nedenlerin listesi. |
Neden
Gönderimin neden atlandığını açıklayabilmemiz durumunda nedenler burada listelenir. Neden tüm araçlar için aynı değilse reason
öğesinde birden fazla öğe bulunur. Atlanan gönderimlerde, example_vehicle_index
hariç tüm alanların aynı olduğu kopya nedenler olamaz. Ö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ğildir. 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 |
Kodun yorumlarına bakın. |
example_ |
Neden kodu |
example_ |
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ız. Özellikle, her ikisi de geçerliyse belirli bir nedenin çözümde diğerinden önce görünüp görünmeyeceğine dair hiçbir gösterge vermez.
Sıralamalar | |
---|---|
CODE_UNSPECIFIED |
Bu yöntem hiçbir zaman kullanılmamalıdır. |
NO_VEHICLE |
Modelde, tüm gönderimlerin uygulanamaz hale gelmesine neden olan bir araç yok. |
DEMAND_EXCEEDS_VEHICLE_CAPACITY |
Gönderinin talebi, bir aracın bazı kapasite türleri (bunlardan biri example_exceeded_capacity_type ) için kapasitesini aşıyor. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DISTANCE_LIMIT |
Bu gönderimi gerçekleştirmek için gereken minimum mesafe (yani 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 durum senaryosuna göre hesaplanır. Yani jeodezik mesafe x 36 m/sn (yaklaşık 130 km/sa) olarak hesaplanır. |
CANNOT_BE_PERFORMED_WITHIN_VEHICLE_TRAVEL_DURATION_LIMIT |
Yukarıdakiyle aynıdır ancak yalnızca minimum seyahat süresini ve 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şlarsa en iyi senaryoda (zaman hesaplaması için CANNOT_BE_PERFORMED_WITHIN_VEHICLE_DURATION_LIMIT bölümüne bakın) bu gönderimi gerçekleştiremez: Toplam süre, aracın en geç bitiş zamanından sonra bitmesine neden olur. |
VEHICLE_NOT_ALLOWED |
Gönderinin allowed_vehicle_indices alanı boş değil ve bu araç bu alana ait değil. |
TimeWindow
Zaman aralıkları, bir etkinliğin zamanını (ör. ziyaretin varış zamanı veya bir aracın başlangıç ve bitiş zamanı) 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 etkinliğinden 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şmesi tercihini 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ğiyle 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ına (ShipmentModel.global_start_time
ve ShipmentModel.global_end_time
'e bakın) uymalı ve aşağıdakilere dikkat etmelidir:
0 <= `start_time` <= `end_time` and
0 <= `start_time` <= `soft_start_time` and
0 <= `soft_end_time` <= `end_time`.
Alanlar | |
---|---|
start_ |
Zorunlu zaman aralığının başlangıç zamanı. Belirtilmemişse |
end_ |
Sabit zaman aralığının bitiş zamanı. Belirtilmemişse |
soft_ |
Zaman aralığının yumuşak başlangıç zamanı. |
soft_ |
Zaman aralığının esnek bitiş zamanı. |
cost_ |
Etkinlik soft_start_time değerinden önce 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 ayarlandıysa ayarlanabilir. |
cost_ |
Etkinlik
Bu maliyet pozitif olmalıdır ve alan yalnızca |
TransitionAttributes
Bir rotada art arda yapılan iki ziyaret arasındaki geçişlerin özelliklerini belirtir. Aynı geçiş için birden fazla TransitionAttributes
geçerli olabilir: Bu durumda, tüm ek maliyetler toplanır ve en katı kısıtlama veya sınır uygulanır (doğal "VE" semantiğine göre).
Alanlar | |
---|---|
src_ |
Bu özelliklerin geçerli olduğu (src->dst) geçiş grubunu tanımlayan etiketler. Bir kaynak ziyareti veya araç başlatma işlemi, |
excluded_ |
Şu sayfaya göz atın: |
dst_ |
Bir hedef ziyaret veya araç sonu, |
excluded_ |
Şu sayfaya göz atın: |
cost |
Bu geçişin maliyetini belirtir. Bu değer, modeldeki diğer tüm maliyetlerle aynı birimdedir ve negatif olmamalıdır. Mevcut diğer tüm maliyetlerin üzerine uygulanır. |
cost_ |
Bu geçiş sırasında kat edilen mesafeye uygulanan kilometre başına maliyeti belirtir. Araçlarda belirtilen tüm |
distance_ |
Bu geçiş sırasında kat edilen mesafeyle ilgili bir sınır belirtir. 2021/06 itibarıyla yalnızca yumuşak sınırlar desteklenmektedir. |
delay |
Bu geçişi gerçekleştirirken oluşan gecikmeyi belirtir. Bu gecikme her zaman kaynak ziyareti tamamlandıktan sonra ve hedef ziyareti başlatılmadan önce gerçekleşir. |
Araç
Gönderim sorunu olan bir aracı modeller. Bir gönderim sorununun çözülmesi, bu araç için start_location
ile end_location
arasında bir rota oluşturur. Rota, ziyaretlerden oluşan bir sıradır (ShipmentRoute
bölümüne bakın).
Alanlar | |
---|---|
display_ |
Aracın kullanıcı tanımlı görünen adı. En fazla 63 karakter uzunluğunda olabilir ve UTF-8 karakterleri içerebilir. |
travel_ |
Aracın kullanabileceği yolları ve hızını etkileyen ulaşım şekli. Ayrıca |
route_ |
Belirli bir araç için rotaların hesaplanma şeklini etkileyen ve karşılanması gereken bir koşul grubu. |
start_ |
Araç, kargoyu teslim almaya başlamadan önce hangi coğrafi konumdadır? Belirtilmemişse araç ilk teslimatında başlar. Gönderi modelinde süre ve mesafe matrisleri varsa |
start_ |
Aracın herhangi bir kargoyu teslim almadan önce başladığı coğrafi konumu temsil eden yol noktası. |
end_ |
Aracın son |
end_ |
Aracın son |
start_ |
Aracın rotasının başına eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
end_ |
Aracın rotasının sonuna eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
start_ |
Aracın başlangıç konumundan ayrılabileceği zaman aralıkları. Bu değerler, genel zaman sınırları içinde olmalıdır ( 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 başka bir zaman aralığına bitişik olamaz. Ayrıca zaman aralıkları kronolojik sırayla olmalıdır.
|
end_ |
Aracın bitiş konumuna ulaşabileceği zaman aralıkları. Bu değerler, genel zaman sınırları içinde olmalıdır ( 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 başka bir zaman aralığına bitişik olamaz. Ayrıca zaman aralıkları kronolojik sırayla olmalıdır.
|
unloading_ |
Araçta kargo boşaltma politikası uygulanıyor. |
load_ |
Aracın kapasiteleri (ör. ağırlık, hacim, palet sayısı). Haritadaki anahtarlar, |
cost_ |
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üresini, bekleme süresini ve ziyaret süresini içerir. Yalnızca |
cost_ |
Araç rotasının kat edilen her saati başına maliyet. Bu maliyet yalnızca rotanın aldığı seyahat süresine (yani |
cost_ |
Araç rotasının kilometre başına maliyeti. Bu maliyet, |
fixed_ |
Bu araç bir gönderiyi işlemek için kullanılıyorsa uygulanan sabit maliyet. |
used_ |
Bu alan yalnızca rotalarında kargo hizmeti verilmeyen araçlar için geçerlidir. Bu durumda aracın ikinci el olarak kabul edilip edilmeyeceğini belirtir. Doğru ise araç, herhangi bir gönderim hizmeti sunmasa bile başlangıç konumundan bitiş konumuna gider ve başlangıç ile bitiş arasındaki seyahat nedeniyle oluşan zaman ve mesafe maliyetleri dikkate alınır. Aksi takdirde, başlangıç konumundan bitiş konumuna gitmez ve bu araç için |
route_ |
Aracın rotasının toplam süresi için uygulanan sınır. Belirli bir |
travel_ |
Aracın rotasının seyahat süresine uygulanan sınır. Belirli bir |
route_ |
Aracın rotasının toplam mesafesine uygulanan sınır. Belirli bir |
extra_ |
visit_types dizelerinden sürelere bir eşleme belirtir. Süre, belirtilen Bir ziyaret isteği birden fazla türdeyse haritaya her tür için bir süre eklenir. |
break_ |
Bu araçta uygulanacak ara verme 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 ilgili |
ignore |
Doğruysa Bir gönderim Bir gönderim |
travel_ |
Bu aracın seyahat sürelerini artırmak veya azaltmak için kullanılabilecek bir çarpma faktörünü belirtir. Örneğin, bu değeri 2,0 olarak ayarlamak, bu aracın daha yavaş olduğu ve seyahat sürelerinin standart araçlara kıyasla iki kat daha uzun olduğu anlamına gelir. Bu çarpan, ziyaret sürelerini etkilemez. UYARI: Seyahat süreleri, bu çarpan uygulandıktan sonra ancak herhangi bir sayısal işlem yapılmadan önce en yakın saniyeye yuvarlanır. Bu nedenle, küçük bir çarpan hassasiyet kaybına neden olabilir. Aşağıdaki |
DurationLimit
Bir aracın rotasının maksimum süresini tanımlayan sınır. Sert veya yumuşak olabilir.
Yumuşak sınır alanı tanımlanırken hem yumuşak maksimum eşik hem de ilişkili maliyet birlikte tanımlanmalıdır.
Alanlar | |
---|---|
max_ |
Süreyi en fazla max_duration olarak kısıtlayan katı bir sınır. |
soft_ |
Maksimum süre sınırı uygulamayan ancak ihlal edildiğinde rotanın 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 |
quadratic_ |
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_ |
Maliyet pozitif olmalıdır. |
cost_ |
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 pozitif olmalıdır. |
LoadLimit
Bir araç için geçerli bir 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_ |
Yükün yumuşak sınırı. Şu sayfaya göz atın: |
cost_ |
Bu aracın rotasında yük |
start_ |
Rotanın başlangıcında aracın kabul edilebilir yük aralığı. |
end_ |
Rotanın sonunda aracın kabul edilebilir yük aralığı. |
max_ |
Kabul edilebilir maksimum yük miktarı. |
Aralık
Kabul edilebilir yük 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. Belirtilmemişse maksimum yük bu mesaj tarafından kısıtlanmaz. Her ikisi de belirtilmişse |
TravelMode
Araçlar tarafından kullanılabilen ulaşım şekilleri.
Bunlar, Google Haritalar Platformu Rotalar Tercih Edilen API seyahat modlarının alt kümesi olmalıdır. https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteTravelMode adresine bakın.
Sıralamalar | |
---|---|
TRAVEL_MODE_UNSPECIFIED |
Belirtilmemiş ulaşım şekli. DRIVING ile eşdeğerdir. |
DRIVING |
Araçla yol tarifine karşılık gelen ulaşım şekli (araba, ...) |
WALKING |
Yürüyüş 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 içeren gönderimler için geçerlidir.
Diğer gönderimler, unloading_policy
'ten bağımsız olarak rotanın herhangi bir yerinde yapılabilir.
Sıralamalar | |
---|---|
UNLOADING_POLICY_UNSPECIFIED |
Belirtilmemiş boşaltma politikası; teslimatlar, ilgili teslim alma işlemlerinden hemen 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 almalarla aynı sırada yapılmalıdır |
Ara nokta
Bir ara noktayı kapsüller. Ara noktalar, ziyaret isteklerinin varış ve kalkış konumlarını ve araçların başlangıç ile bitiş konumlarını işaretler.
Alanlar | |
---|---|
side_ |
İ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 ayarlarsanız rota, aracın yolun ortasından konuma doğru eğimli olan tarafında durabilmesi için konumdan geçer. Bu seçenek "YÜRÜYÜŞ" seyahat modunda kullanılamaz. |
Birlik alanı location_type . Bir konumu temsil etmenin farklı yolları. location_type yalnızca aşağıdakilerden biri olabilir: |
|
location |
İsteğe bağlı bir başlık da dahil olmak üzere coğrafi koordinatlar kullanılarak belirtilen bir nokta. |
place_ |
Dönüm noktasıyla ilişkili ÖY yer kimliği. |