- JSON gösterimi
- Gönderim
- VisitRequest
- LatLng
- Ara nokta
- Yer
- TimeWindow
- Araç
- TravelMode
- UnloadingPolicy
- LoadLimit
- Aralık
- DurationLimit
- DistanceLimit
- BreakRule
- BreakRequest
- FrequencyConstraint
- DurationDistanceMatrix
- Satır
- TransitionAttributes
- ShipmentTypeIncompatibility
- IncompatibilityMode
- ShipmentTypeRequirement
- RequirementMode
- PrecedenceRule
Gönderim modeli, bir grup araç tarafından gerçekleştirilmesi gereken bir dizi gönderim içerir ve toplam maliyeti en aza indirir. Bu durumda toplam maliyet, toplamda şu olur:
- araçları yönlendirme maliyeti (toplam süre başına maliyet, seyahat süresi başına maliyet ve tüm araçlar üzerindeki sabit maliyet).
- sorumlu tutulamaz.
- Global sevkiyat süresinin maliyeti
JSON gösterimi |
---|
{ "shipments": [ { object ( |
Alanlar | |
---|---|
shipments[] |
Modelde yapılması gereken gönderim grubu. |
vehicles[] |
Ziyaret gerçekleştirmek için kullanılabilecek araç grubu. |
globalStartTime |
Modelin genel başlangıç ve bitiş zamanı: Bu aralığın dışındaki hiçbir zaman geçerli olarak kabul edilemez. Modelin zaman aralığı bir yıldan kısa olmalıdır.Diğer bir deyişle,
RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: |
globalEndTime |
Ayarlanmadan bırakılırsa 1 Ocak 1971, 00:00:00 UTC (yani saniye: 31536000, nanos: 0) varsayılan olarak kullanılır. RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: |
globalDurationCostPerHour |
"Global süre" toplam planın en erken geçerli başlangıç zamanı ile tüm araçların geçerli en geç bitiş zamanı arasındaki farktır. Örneğin kullanıcılar, işin en kısa sürede tamamlanması için optimizasyon yapmak amacıyla bu miktara bir saat başına maliyet atayabilir. Bu maliyet, |
durationDistanceMatrices[] |
Modelde kullanılan süre ve mesafe matrislerini belirtir. Bu alan boşsa, Kullanım örnekleri:
|
durationDistanceMatrixSrcTags[] |
Süre ve mesafe matrislerinin kaynaklarını tanımlayan etiketler; Etiketler |
durationDistanceMatrixDstTags[] |
Süre ve mesafe matrislerinin hedeflerini tanımlayan etiketler Etiketler |
transitionAttributes[] |
Modele geçiş özellikleri eklendi. |
shipmentTypeIncompatibilities[] |
Uyumsuz delivery_types grupları (bkz. |
shipmentTypeRequirements[] |
|
precedenceRules[] |
Modelde uygulanması gereken öncelik kuralları kümesi. |
maxActiveVehicles |
Maksimum etkin araç sayısını kısıtlar. Rotasında en az bir gönderim olan araçlar etkin durumda demektir. Bu özellik, araçlardan daha az sürücünün bulunduğu ve araç filosunun heterojen olduğu durumlarda rota sayısını sınırlandırmak için kullanılabilir. Ardından optimizasyon, kullanılacak en iyi araç alt kümesini seçer. Tamamen olumlu olmalıdır. |
Gönderim
Tek bir öğenin, teslim alma alanlarından birinden teslimatlarına kadar gönderilmesi. Gönderinin tamamlanmış olarak kabul edilmesi için benzersiz bir aracın teslim alma konumlarından birini ziyaret etmesi (ve buna göre yedek kapasiteyi azaltması), daha sonra teslimat konumlarından birini ziyaret etmesi (ve dolayısıyla yedek kapasitelerini buna göre yeniden artırması) gerekir.
JSON gösterimi |
---|
{ "displayName": string, "pickups": [ { object ( |
Alanlar | |
---|---|
displayName |
Gönderinin kullanıcı tanımlı görünen adı. En fazla 63 karakter uzunluğunda olabilir ve UTF-8 karakterleri kullanabilir. |
pickups[] |
Kargoyla ilişkili teslim alma alternatifleri grubu. Belirtilmemişse aracın yalnızca teslimatlarla ilgili bir konumu ziyaret etmesi gerekir. |
deliveries[] |
Kargoyla ilişkili teslimat alternatifleri grubu. Belirtilmemişse aracın yalnızca teslim alma işlemleriyle ilgili bir konumu ziyaret etmesi gerekir. |
loadDemands |
Gönderinin taleplerini yüklemek (ör. ağırlık, hacim, palet sayısı vb.). Haritadaki anahtarlar, karşılık gelen yükün türünü (tercihen birimleri de içeren) açıklayan tanımlayıcılar olmalıdır. Örneğin: "weight_kg", "quantity_galon", "pallet_count" vb. Belirli bir anahtar haritada görünmezse karşılık gelen yükleme null olarak kabul edilir.
|
allowedVehicleIndices[] |
Bu sevkiyatı gerçekleştirebilecek araç grubu. Boşsa tüm araçlar bu işlemi gerçekleştirebilir. Araçlar, |
costsPerVehicle[] |
Bu gönderim her bir araç tarafından teslim edildiğinde tahakkuk eden maliyeti belirtir. Belirtilmişse:
Bu maliyetler, |
costsPerVehicleIndices[] |
|
pickupToDeliveryAbsoluteDetourLimit |
Teslim alma ile teslimat arasındaki en kısa yola kıyasla maksimum mutlak sapma süresini belirtir. Belirtilmişse negatif olmamalıdır ve kargo en azından bir teslim alma ve teslimat içermelidir. Örneğin, seçilen teslim alma alternatifinden doğrudan seçilen teslimat alternatifine geçmek için en kısa süre bu olmalıdır. Ardından
Aynı gönderimde hem göreli hem de mutlak sınırlar belirtilirse olası her teslim alma/teslimat çifti için daha kısıtlayıcı sınır kullanılır. 2017/10 tarihi itibarıyla, yalnızca seyahat süreleri araçlara bağlı olmadığında rota değişikliği desteklenmektedir. En fazla dokuz kesir basamağı olan ve " |
pickupToDeliveryTimeLimit |
Teslim almanın başlangıcından gönderimin başlangıcına kadar maksimum süreyi belirtir. Belirtilmişse negatif olmamalıdır ve kargo en azından bir teslim alma ve teslimat içermelidir. Bu, teslim alma ve teslimat için seçilen alternatiflerin veya aracın hızına bağlı değildir. Bu, maksimum sapma kısıtlamalarıyla birlikte belirtilebilir; çözüm her iki spesifikasyona da uyar. En fazla dokuz kesir basamağı olan ve " |
shipmentType |
Bir "type" belirten boş olmayan dize belirtin. Bu özellik, Tek bir ziyaret için belirtilen |
label |
Bu gönderim için bir etiket belirtir. Bu etiket, ilgili |
ignore |
True (doğru) ise bu kargoyu atlayın, ancak Bir gönderimin göz ardı edilmesi, modelde herhangi bir
|
penaltyCost |
Sevkiyat tamamlanmazsa bu ceza, rotaların toplam maliyetine eklenir. Teslim alma ve teslimat alternatiflerinden birinin ziyaret edilmesi durumunda kargo tamamlanmış olarak kabul edilir. Maliyet, modeldeki maliyetle ilgili diğer tüm alanlar için kullanılan birim içinde ifade edilebilir ve pozitif olmalıdır. ÖNEMLİ: Bu ceza belirtilmezse sonsuz olarak kabul edilir, yani gönderimin tamamlanması gerekir. |
pickupToDeliveryRelativeDetourLimit |
Teslim alma ile teslimat arasındaki en kısa yola kıyasla maksimum göreli sapma süresini belirtir. Belirtilmişse negatif olmamalıdır ve kargo en azından bir teslim alma ve teslimat içermelidir. Örneğin, seçilen teslim alma alternatifinden doğrudan seçilen teslimat alternatifine geçmek için en kısa süre bu olmalıdır. Ardından
Aynı gönderimde hem göreli hem de mutlak sınırlar belirtilirse olası her teslim alma/teslimat çifti için daha kısıtlayıcı sınır kullanılır. 2017/10 tarihi itibarıyla, yalnızca seyahat süreleri araçlara bağlı olmadığında rota değişikliği desteklenmektedir. |
VisitRequest
Araç tarafından yapılabilecek bir ziyaret isteği: Aracın coğrafi konumu (veya iki tanesi aşağıya bakın), zaman aralıklarıyla gösterilen açılış ve kapanış zamanları ve hizmet süresi (ürünlerin teslim alınması veya teslim edilmesi için vardığı araç tarafından harcanan süre) belirtilmelidir.
JSON gösterimi |
---|
{ "arrivalLocation": { object ( |
Alanlar | |
---|---|
arrivalLocation |
Bu |
arrivalWaypoint |
Bu |
departureLocation |
Bu |
departureWaypoint |
Aracın bu |
tags[] |
Ziyaret isteğine eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
timeWindows[] |
Ziyarete varış saatini sınırlayan zaman aralıkları. Araç, varış saati aralığının dışında kalkabilir. Diğer bir ifadeyle, varış saatinin ve sürenin bir zaman aralığının içinde olması gerekmez. Araç
Zaman aralıkları birbirinden ayrı olmalıdır. Yani, zaman aralıkları başka bir zaman aralığıyla çakışmamalı veya bitişik olmamalıdır ve artan sırada olmalıdır.
|
duration |
Ziyaret süresi, ör.varış ile kalkış arasında aracın harcadığı süre (olası bekleme süresine eklenir, bkz. En fazla dokuz kesir basamağı olan ve " |
cost |
Araç rotasında bu ziyaret isteğini yerine getirmenin maliyeti. Bu seçenek, bir gönderinin her alternatif teslim alma veya teslimat seçeneği için farklı maliyetler ödemek amacıyla kullanılabilir. Bu maliyet, |
loadDemands |
Bu ziyaret isteğinin isteklerini yükleyin. Bu,
|
visitTypes[] |
Ziyaretin türlerini belirtir. Bu süre, aracın bu ziyareti tamamlaması için gereken ek süreyi ayırmak amacıyla kullanılabilir (bkz. Bir tür yalnızca bir kez görünebilir. |
label |
Bu |
LatLng
Enlem/boylam çiftini temsil eden bir nesne. Bu, enlem ve boylam derecelerini temsil eden bir çift çift olarak ifade edilir. Aksi belirtilmedikçe bu nesne WGS84 standardına uygun olmalıdır. Değerler normalleştirilmiş aralıklar içinde olmalıdır.
JSON gösterimi |
---|
{ "latitude": number, "longitude": number } |
Alanlar | |
---|---|
latitude |
Derece cinsinden enlem. [-90,0, +90,0] aralığında olmalıdır. |
longitude |
Derece cinsinden boylam. [-180.0, +180.0] aralığında olmalıdır. |
Ara nokta
Bir referans noktasını içerir. Referans noktaları, Ziyaret İstekleri'nin varış ve kalkış konumları ile Araçların başlangıç ve bitiş konumlarını gösterir.
JSON gösterimi |
---|
{ "sideOfRoad": boolean, // Union field |
Alanlar | |
---|---|
sideOfRoad |
İsteğe bağlı. Bu ara noktanın konumunun, aracın yolun belirli bir tarafında durmasına yönelik bir tercih olduğunu belirtir. Bu değeri ayarladığınızda rota, yerden geçer. Böylece araç, konumun merkezine doğru ağırlık verdiği yol kenarında durabilir. Bu seçenek 'WALKING' (YAPIYOR) için çalışmaz yardımcı olur. |
Birleştirme alanı location_type . Bir konumu temsil etmenin farklı yolları. location_type şunlardan yalnızca biri olabilir: |
|
location |
İsteğe bağlı bir başlık da dahil olmak üzere, coğrafi koordinatlar kullanılarak belirtilen bir nokta. |
placeId |
Referans noktasıyla ilişkilendirilen ÖY yer kimliği. |
Konum
Bir konumu (coğrafi nokta ve isteğe bağlı başlık) kapsar.
JSON gösterimi |
---|
{
"latLng": {
object ( |
Alanlar | |
---|---|
latLng |
Referans noktasının coğrafi koordinatları. |
heading |
Trafiğin akış yönüyle ilişkilendirilen pusula başlığı. Bu değer, yolun teslim alma ve bırakma için kullanılacak kenarını belirtmek için kullanılır. Başlık değerleri 0 ile 360 arasında olabilir. Burada 0, vadesi Kuzey olan bir başlığı, 90 değeri ise gereken Doğu başlığını vb. belirtir. |
TimeWindow
Zaman aralıkları, ziyaretin varış saati veya bir aracın başlangıç ve bitiş zamanı gibi bir etkinliğin zamanını kısıtlar.
startTime
ve endTime
sabit zaman aralığı sınırları, etkinliğin en erken ve en geç zamanını (startTime <= event_time <=
endTime
) uygular. Esnek zaman aralığı alt sınırı (softStartTime
), etkinliğin softStartTime'dan ne kadar süre önce gerçekleştiğiyle orantılı bir maliyet oluşturarak etkinliğin softStartTime
tarihinde veya sonrasında gerçekleşmesine ilişkin tercihi ifade eder. Esnek zaman aralığı üst sınırı (softEndTime
), etkinliğin gerçekleşmesinden softEndTime
sonra ne kadar süreyle orantılı bir maliyet oluşturarak etkinliğin softEndTime
tarihinde veya öncesinde gerçekleşmesi tercihini ifade eder. startTime
, endTime
, softStartTime
ve softEndTime
, genel zaman sınırları içinde olmalı (bkz. ShipmentModel.global_start_time
ve ShipmentModel.global_end_time
) ve şunlara uymalıdır:
0 <= `startTime` <= `softStartTime` <= `endTime` and
0 <= `startTime` <= `softEndTime` <= `endTime`.
JSON gösterimi |
---|
{ "startTime": string, "endTime": string, "softStartTime": string, "softEndTime": string, "costPerHourBeforeSoftStartTime": number, "costPerHourAfterSoftEndTime": number } |
Alanlar | |
---|---|
startTime |
Zor zaman aralığı başlangıç zamanı. Belirtilmemişse RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: |
endTime |
Zor zaman aralığı bitiş zamanı. Belirtilmemişse RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: |
softStartTime |
Zaman aralığının esnek başlangıç zamanı. RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: |
softEndTime |
Zaman aralığının geçici bitiş zamanı. RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: |
costPerHourBeforeSoftStartTime |
Etkinlik softStartTime'dan ö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 softStartTime ayarlanmışsa ayarlanabilir. |
costPerHourAfterSoftEndTime |
Etkinlik
Bu maliyet pozitif olmalıdır ve alan yalnızca |
Araç
Gönderim sorunu olan bir aracı modelleme. Gönderim sorunu çözüldüğünde bu araç için startLocation
ile başlayıp endLocation
itibarıyla biten bir rota oluşturulur. Rota, ziyaretlerden oluşan bir dizidir (bkz. ShipmentRoute
).
JSON gösterimi |
---|
{ "displayName": string, "travelMode": enum ( |
Alanlar | |
---|---|
displayName |
Aracın kullanıcı tarafından tanımlanan görünen adı. En fazla 63 karakter uzunluğunda olabilir ve UTF-8 karakterleri kullanabilir. |
travelMode |
Aracın kullanabileceği yolları ve hızını etkileyen ulaşım şekli. Ayrıca bkz. |
startLocation |
Aracın herhangi bir gönderimi teslim almadan önce başladığı coğrafi konum. Belirtilmezse araç ilk teslim alındığında başlar. Gönderim modelinin süre ve mesafe matrisleri varsa |
startWaypoint |
Aracın herhangi bir gönderimi teslim almadan önce çalışmaya başladığı coğrafi konumu temsil eden ara nokta. |
endLocation |
Aracın son |
endWaypoint |
Aracın son |
startTags[] |
Aracın rotasının başlangıcına eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
endTags[] |
Aracın rotasının sonuna eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
startTimeWindows[] |
Aracın başlangıç konumundan ayrılabileceği zaman aralıkları. Genel zaman sınırları dahilinde olmalıdırlar ( Aynı tekrarlanan alana ait zaman aralıkları ayrı olmalıdır. Yani zaman aralığı başka bir zaman aralığıyla çakışamaz ya da bitişik olamaz ve kronolojik sırada olmalıdır.
|
endTimeWindows[] |
Aracın bitiş konumuna varabileceği zaman aralıkları. Genel zaman sınırları dahilinde olmalıdırlar ( Aynı tekrarlanan alana ait zaman aralıkları ayrı olmalıdır. Yani zaman aralığı başka bir zaman aralığıyla çakışamaz ya da bitişik olamaz ve kronolojik sırada olmalıdır.
|
unloadingPolicy |
Araçta uygulanan kaldırma politikası. |
loadLimits |
Aracın kapasiteleri (ör. ağırlık, hacim, palet sayısı). Haritadaki anahtarlar,
|
costPerHour |
Araç maliyetleri: Tüm maliyetler toplanır ve Araç rotasının saatlik maliyeti. Bu maliyet, rotanın toplam süresine uygulanır ve seyahat süresi, bekleme süresi ve ziyaret süresini içerir. Yalnızca |
costPerTraveledHour |
Araç rotasında katedilen saat başına maliyet. Bu maliyet, yalnızca rotanın aldığı seyahat süresine ( |
costPerKilometer |
Araç rotasının kilometre başına maliyeti. Bu maliyet, |
fixedCost |
Bu araç bir gönderimi yönetmek için kullanılıyorsa sabit maliyet uygulanır. |
usedIfRouteIsEmpty |
Bu alan, yalnızca rotalarında herhangi bir sevkiyat hizmeti sunulmayan araçlar için geçerlidir. Bu durumda aracın kullanılmış olarak kabul edilip edilmeyeceğini belirtir. True (doğru) ise araç, herhangi bir sevkiyat hizmeti vermese bile başlangıç konumundan bitiş konumuna kadar gider ve başlangıcından itibaren oluşan süre ve mesafe maliyetleriyle birlikte gider --> dikkate alınır. Aksi takdirde, bu araç için başlangıç noktasından bitiş konumuna kadar gitmez ve bu araç için |
routeDurationLimit |
Sınır, aracın rotasının toplam süresine uygulanır. Belirli bir |
travelDurationLimit |
Sınır, aracın rotasının seyahat süresine uygulanır. Belirli bir |
routeDistanceLimit |
Aracın rotasının toplam mesafesine uygulanan sınır. Belirli bir |
extraVisitDurationForVisitType |
VisitTypes dizelerinden sürelere kadar olan bir haritayı belirtir. Süre, belirtilen Bir ziyaret isteğinin birden fazla türü varsa haritadaki her tür için bir süre eklenir.
|
breakRule |
Bu araçta uygulanacak ara programını açıklar. Boşsa bu araç için ara verilmez. |
label |
Bu araç için bir etiket belirtir. Bu etiket, yanıtta karşılık gelen |
ignore |
Değer true ise
|
travelDurationMultiple |
Bu aracın seyahat sürelerini artırmak veya azaltmak için kullanılabilen çarpma faktörünü belirtir. Örneğin bu değerin 2.0 olarak ayarlanması, bu aracın daha yavaş olduğu ve seyahat sürelerinin standart araçlardakinin iki katı olduğu anlamına gelir. Bu katsayı, ziyaret sürelerini etkilemez. UYARI: Bu katsayı uygulandıktan sonra herhangi bir sayısal işlem yapılmadan önce seyahat süreleri en yakın saniyeye yuvarlanır. Bu nedenle, küçük bir sayının katsayısı hassasiyet kaybına neden olabilir. Ayrıca aşağıdaki |
TravelMode
Araçlar tarafından kullanılabilen ulaşım şekilleri.
Bunlar, Google Haritalar Platformu Routes Preferred API seyahat modlarının bir alt kümesi olmalıdır. Şu sayfaya göz atın: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteTravelMode.
Sıralamalar | |
---|---|
TRAVEL_MODE_UNSPECIFIED |
Belirtilmemiş ulaşım şekli, DRIVING ile eşdeğerdir. |
DRIVING |
Arabayla yol tariflerine karşılık gelen ulaşım şekli (araba, ...). |
WALKING |
Yaya yol tarifine karşılık gelen ulaşım modu. |
UnloadingPolicy
Araçların nasıl indirilebileceğiyle ilgili politika. Yalnızca hem teslim alma hem de teslimat seçeneği bulunan gönderiler için geçerlidir.
Diğer gönderimler, unloadingPolicy
tarihinden bağımsız olarak rotanın herhangi bir yerinde ücretsiz olacaktır.
Sıralamalar | |
---|---|
UNLOADING_POLICY_UNSPECIFIED |
Belirtilmemiş kaldırma politikası; teslimatlar da ilgili teslim almalarından sonra gerçekleşmelidir. |
LAST_IN_FIRST_OUT |
Teslimatlar, teslim alma sırası tersten yapılmalıdır |
FIRST_IN_FIRST_OUT |
Teslimatlar, teslim alma siparişleriyle aynı sırayla yapılmalıdır |
LoadLimit
Bir araca uygulanan yük sınırını tanımlar (ör. "bu kamyon en fazla 3.500 kg taşıyabilir". Şu sayfaya göz atın: loadLimits
.
JSON gösterimi |
---|
{ "softMaxLoad": string, "costPerUnitAboveSoftMax": number, "startLoadInterval": { object ( |
Alanlar | |
---|---|
softMaxLoad |
Düşük bir yük sınırı. Şu sayfaya göz atın: |
costPerUnitAboveSoftMax |
Yük, bu aracın rotasında |
startLoadInterval |
Rotanın başlangıcında aracın kabul edilebilir yük aralığı. |
endLoadInterval |
Rotanın sonundaki aracın kabul edilebilir yük aralığı. |
maxLoad |
Kabul edilebilir maksimum yük miktarı. |
Aralık
Kabul edilebilir yükleme miktarlarının aralığı.
JSON gösterimi |
---|
{ "min": string, "max": string } |
Alanlar | |
---|---|
min |
Minimum kabul edilebilir yük. ≥ 0 olmalıdır. İkisi de belirtilmişse |
max |
Maksimum kabul edilebilir yük. ≥ 0 olmalıdır. Belirtilmemişse maksimum yükleme bu ileti tarafından kısıtlanmaz. İkisi de belirtilmişse |
DurationLimit
Bir aracın rotanın maksimum süresini tanımlayan sınır. Sert veya yumuşak olabilir.
Bir esnek sınır alanı tanımlandığında, hem esnek maksimum eşiği hem de ilişkili maliyeti birlikte tanımlanmalıdır.
JSON gösterimi |
---|
{ "maxDuration": string, "softMaxDuration": string, "quadraticSoftMaxDuration": string, "costPerHourAfterSoftMax": number, "costPerSquareHourAfterQuadraticSoftMax": number } |
Alanlar | |
---|---|
maxDuration |
Süreyi en fazla maxDuration olacak şekilde sınırlayan kesin bir sınır. En fazla dokuz kesir basamağı olan ve " |
softMaxDuration |
Maksimum süre sınırı uygulanmayan, ancak ihlal edildiğinde rotanın ücretlendirilen bir sınırı olan sabit bir sınır. Bu maliyet, aynı birimle modelde tanımlanan diğer maliyetlere eklenir. Tanımlanmışsa En fazla dokuz kesir basamağı olan ve " |
quadraticSoftMaxDuration |
Maksimum süre sınırı uygulanmayan, ancak ihlal edildiğinde rotanın süresiyle ikinci dereceden bir maliyet doğurduğu hafif bir sınır. Bu maliyet, aynı birimle modelde tanımlanan diğer maliyetlere eklenir. Tanımlanmışsa
En fazla dokuz kesir basamağı olan ve " |
costPerHourAfterSoftMax |
Maliyet negatif olmamalıdır. |
costPerSquareHourAfterQuadraticSoftMax |
Süre eşiğin altındaysa ek maliyet 0 olur. Aksi takdirde maliyet, süreye aşağıdaki şekilde bağlı olur:
Maliyet negatif olmamalıdır. |
DistanceLimit
Katedilebilecek maksimum mesafeyi tanımlayan sınır. Sert veya yumuşak olabilir.
Hafif sınır tanımlanırsa hem softMaxMeters
hem de costPerKilometerAboveSoftMax
tanımlanmalı ve negatif olmayan bir sayı olmalıdır.
JSON gösterimi |
---|
{ "maxMeters": string, "softMaxMeters": string, "costPerKilometerAboveSoftMax": number } |
Alanlar | |
---|---|
maxMeters |
Mesafeyi en fazla maxMeter olacak şekilde sınırlayan kesin bir sınır. Sınır negatif olmamalıdır. |
softMaxMeters |
Maksimum mesafe sınırı uygulanmayan, ancak ihlal edildiğinde modelde tanımlanan ve aynı birimdeki diğer maliyetlerin toplamına eşit bir maliyet ortaya çıkan hafif bir sınır. Tanımlanmışsa softMaxMeters'lar, maxMeters'tan küçük olmalı ve negatif olmamalıdır. |
costPerKilometerAboveSoftMax |
Mesafe
Maliyet negatif olmamalıdır. |
BreakRule
Araç için zaman arası oluşturma kuralları (ör. öğle yemeği molaları). Mola, aracın mevcut konumunda boşta kaldığı ve herhangi bir ziyaret gerçekleştiremediği kesintisiz süredir. Süreçte kesinti yaşanabilir:
- iki ziyaret arasındaki seyahat sırasında (ziyaretten hemen önceki veya hemen sonraki süreyi içerir, ancak ziyaretin ortasında değil) bu durumda ziyaretler arasındaki nakliye süresini uzatır.
- veya araç çalışmaya başlamadan önce başlar (araç, aranın ortasında başlamayabilir) ve bu durumda aracın başlangıç süresi etkilenmez.
- araç bitiş tarihinden sonra (araç bitiş zamanıyla birlikte).
JSON gösterimi |
---|
{ "breakRequests": [ { object ( |
Alanlar | |
---|---|
breakRequests[] |
Aralar dizisi. |
frequencyConstraints[] |
Birkaç |
BreakRequest
Her araç için geçerli olan araların sırası (yani sayısı ve sırası) önceden bilinmelidir. Tekrarlanan BreakRequest
öğeleri, gerçekleşmeleri gereken sırayla bu diziyi tanımlar. Aralarındaki zaman aralıkları (earliestStartTime
/ latestStartTime
) çakışabilir ancak siparişle uyumlu olmalıdır (bu seçenek işaretlidir).
JSON gösterimi |
---|
{ "earliestStartTime": string, "latestStartTime": string, "minDuration": string } |
Alanlar | |
---|---|
earliestStartTime |
Zorunlu. Aranın başlangıcındaki alt sınır (dahil). RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: |
latestStartTime |
Zorunlu. Aranın başlangıcındaki üst sınır (dahil). RFC3339 UTC "Zulu" zaman damgası biçiminde olmalıdır. Örnekler: |
minDuration |
Zorunlu. Minimum ara süresi. Pozitif olmalıdır. En fazla dokuz kesir basamağı olan ve " |
FrequencyConstraint
"Her 12 saatte en az 1 saatlik ara olmalıdır" gibi bir minimum ara sıklığı uygulayarak yukarıda belirtilen araların sıklığını ve süresini daha da kısıtlayabilirsiniz. Bunun, "12 saatlik herhangi bir kaydırma zaman aralığında, en az bir saatlik en az bir ara olması gerekir" şeklinde yorumlanabileceği varsayıldığında, bu örnek FrequencyConstraint
anlamına gelir:
{
minBreakDuration { seconds: 3600 } # 1 hour.
maxInterBreakDuration { seconds: 39600 } # 11 hours (12 - 1 = 11).
}
Çözümdeki araların zamanlaması ve süresi, BreakRequest
politikasında önceden belirtilen zaman aralıkları ile minimum sürelere ek olarak bu tür kısıtlamalara da uyar.
FrequencyConstraint
, ardışık olmayan aralar için pratikte geçerli olabilir. Örneğin, aşağıdaki program "her 12 saatte 1 saat" olarak dikkate alınır örnek:
04:00 vehicle start
.. performing travel and visits ..
09:00 1 hour break
10:00 end of the break
.. performing travel and visits ..
12:00 20-min lunch break
12:20 end of the break
.. performing travel and visits ..
21:00 1 hour break
22:00 end of the break
.. performing travel and visits ..
23:59 vehicle end
JSON gösterimi |
---|
{ "minBreakDuration": string, "maxInterBreakDuration": string } |
Alanlar | |
---|---|
minBreakDuration |
Zorunlu. Bu kısıtlama için minimum ara süresi. Negatif değil. En fazla dokuz kesir basamağı olan ve " |
maxInterBreakDuration |
Zorunlu. Rotada en azından kısmen En fazla dokuz kesir basamağı olan ve " |
DurationDistanceMatrix
Ziyaret süresi ile aracın başlangıç yerlerinden ziyaret edilecek ve aracın bitiş konumlarına kadar olan süre ve mesafe matrisini belirtir.
JSON gösterimi |
---|
{
"rows": [
{
object ( |
Alanlar | |
---|---|
rows[] |
Süre ve mesafe matrisinin satırlarını belirtir. |
vehicleStartTag |
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çerli olur ve yalnızca tek bir matris olabilir. Her araç başlangıcı tam olarak bir matrisle eşleşmelidir. Diğer bir deyişle, Tüm matrisler farklı bir |
Satır
Süre ve mesafe matrisinin satırını belirtir.
JSON gösterimi |
---|
{ "durations": [ string ], "meters": [ number ] } |
Alanlar | |
---|---|
durations[] |
Belirli bir satır için süre değerleri. En fazla dokuz kesir basamağı olan ve " |
meters[] |
Belirli bir satır için mesafe değerleri. Herhangi bir maliyet veya kısıtlama, modeldeki mesafelere işaret etmiyorsa bu alan boş bırakılabilir; Aksi takdirde |
TransitionAttributes
Bir rota üzerinde art arda iki ziyaret arasındaki geçişlerin özelliklerini belirtir. Aynı geçiş için birkaç TransitionAttributes
geçerli olabilir: Bu durumda, tüm ek maliyetler toplanır ve en katı kısıtlama veya sınır geçerli olur (doğal "VE" anlamının gereği).
JSON gösterimi |
---|
{
"srcTag": string,
"excludedSrcTag": string,
"dstTag": string,
"excludedDstTag": string,
"cost": number,
"costPerKilometer": number,
"distanceLimit": {
object ( |
Alanlar | |
---|---|
srcTag |
Bu özelliklerin geçerli olduğu (src->dst) geçiş grubunu tanımlayan etiketler. Kaynak ziyareti veya araç başlangıcı, |
excludedSrcTag |
Şu sayfaya göz atın: |
dstTag |
Hedef ziyareti veya araç sonu, |
excludedDstTag |
Şu sayfaya göz atın: |
cost |
Bu geçişi gerçekleştirmenin maliyetini belirtir. Bu değer, modeldeki diğer tüm maliyetlerle aynı birimdir ve negatif olmamalıdır. Diğer tüm mevcut maliyetlerin üzerine uygulanır. |
costPerKilometer |
Bu geçiş gerçekleştirilirken katedilen mesafeye uygulanan kilometre başına maliyeti belirtir. Araçlarda belirtilen tüm |
distanceLimit |
Bu geçiş gerçekleştirilirken katedilen mesafeyle ilgili bir sınırı belirtir. 06.06.2021 itibarıyla yalnızca geçici sınırlar desteklenmektedir. |
delay |
Bu geçiş gerçekleştirilirken oluşan gecikmeyi belirtir. Bu gecikme her zaman kaynak ziyareti bittikten sonra ve hedef ziyaretin başlamasından önce gerçekleşir. En fazla dokuz kesir basamağı olan ve " |
ShipmentTypeIncompatibility
deliveryType'a bağlı olarak, gönderimler arasındaki uyumsuzlukları belirtir. Aynı rotadaki uyumsuz gönderimlerin görünümü, uyumsuzluk moduna göre kısıtlanır.
JSON gösterimi |
---|
{
"types": [
string
],
"incompatibilityMode": enum ( |
Alanlar | |
---|---|
types[] |
Uyumsuz türlerin listesi. Listelenenler arasından farklı |
incompatibilityMode |
Uyumsuzluğa mod uygulandı. |
IncompatibilityMode
Uyumsuz gönderimlerin aynı rotada nasıl kısıtlanacağını tanımlayan modlar.
Sıralamalar | |
---|---|
INCOMPATIBILITY_MODE_UNSPECIFIED |
Belirtilmemiş uyumsuzluk modu. Bu değer hiçbir zaman kullanılmamalıdır. |
NOT_PERFORMED_BY_SAME_VEHICLE |
Bu modda, uyumsuz türlere sahip iki gönderim hiçbir zaman aynı aracı paylaşamaz. |
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY |
|
ShipmentTypeRequirement
deliveryType'a göre gönderimler arasındaki şartları belirtir. Şartın ayrıntıları, gereksinim modu ile tanımlanır.
JSON gösterimi |
---|
{
"requiredShipmentTypeAlternatives": [
string
],
"dependentShipmentTypes": [
string
],
"requirementMode": enum ( |
Alanlar | |
---|---|
requiredShipmentTypeAlternatives[] |
|
dependentShipmentTypes[] |
NOT: |
requirementMode |
Mod, koşula uygulandı. |
RequirementMode
Bağımlı gönderilerin rota üzerindeki görünümünü tanımlayan modlar.
Sıralamalar | |
---|---|
REQUIREMENT_MODE_UNSPECIFIED |
Belirtilmemiş gereksinim modu. Bu değer hiçbir zaman kullanılmamalıdır. |
PERFORMED_BY_SAME_VEHICLE |
Bu modda, tüm "bağımlı" Gönderiler, "gerekli" koşullardan en az biriyle aynı aracı paylaşmalıdır sevkiyatlar. |
IN_SAME_VEHICLE_AT_PICKUP_TIME |
"Bağımlı" kuruluş Dolayısıyla kargodan teslim alma şunlardan birine sahip olmalıdır:
|
IN_SAME_VEHICLE_AT_DELIVERY_TIME |
"Bağımlı" olanlar hariç öncekiyle aynı gönderimlerde "zorunlu" teslimat sırasında araçlarına gönderim yapmış olmaları. |
PrecedenceRule
İki etkinlik arasındaki öncelik kuralı (her etkinlik, bir gönderinin teslim alınması veya teslim edilmesidir): "ikinci" etkinlik "first"ten en az offsetDuration
sonra başlamalıdır başladı.
Birden fazla öncelik aynı (veya ilgili) etkinliklere işaret edebilir, ör. "B teslimi, A tesliminden sonra gerçekleşir" ve "C teslimi, B tesliminden sonra gerçekleşir".
Ayrıca, öncelikler yalnızca her iki gönderim de gerçekleştirildiğinde uygulanır ve aksi takdirde göz ardı edilir.
JSON gösterimi |
---|
{ "firstIsDelivery": boolean, "secondIsDelivery": boolean, "offsetDuration": string, "firstIndex": integer, "secondIndex": integer } |
Alanlar | |
---|---|
firstIsDelivery |
"İlk"in bir teslimattır. |
secondIsDelivery |
"Saniye"nin bir teslimattır. |
offsetDuration |
"İlk" arasındaki fark ve "second" (ikincil) unutmayın. Negatif olabilir. En fazla dokuz kesir basamağı olan ve " |
firstIndex |
"İlk"in gönderim dizini unutmayın. Bu alan belirtilmelidir. |
secondIndex |
"Saniye"nin gönderim dizini unutmayın. Bu alan belirtilmelidir. |