- JSON gösterimi
- Gönderim
- VisitRequest
- LatLng
- Ara nokta
- Konum
- 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 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
JSON gösterimi |
---|
{ "shipments": [ { object ( |
Alanlar | |
---|---|
shipments[] |
Modelde gerçekleştirilmesi gereken gönderim grubu. |
vehicles[] |
Ziyaretler için kullanılabilecek araç grubu. |
globalStartTime |
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
Nanosaniye çözünürlük ve en fazla dokuz kesir basamağı olan, RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
globalEndTime |
Ayarlanmadan bırakılırsa, varsayılan olarak 1 Ocak 1971, 00:00:00 (UTC) (saniye: 31536000, nanos: 0) kullanılır. Nanosaniye çözünürlük ve en fazla dokuz kesir basamağı olan, RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
globalDurationCostPerHour |
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 |
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 eklenen geçiş özellikleri. |
shipmentTypeIncompatibilities[] |
Uyumsuz shipping_types grupları (bkz. |
shipmentTypeRequirements[] |
|
precedenceRules[] |
Modelde uygulanması gereken öncelik kuralları grubu. |
maxActiveVehicles |
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ı. |
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.
JSON gösterimi |
---|
{ "displayName": string, "pickups": [ { object ( |
Alanlar | |
---|---|
displayName |
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. |
loadDemands |
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.
|
allowedVehicleIndices[] |
Bu gönderimi gerçekleştirebilecek araç grubu. Boşsa tüm araçlar bunu yapabilir. Araçlar, |
costsPerVehicle[] |
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 |
costsPerVehicleIndices[] |
|
pickupToDeliveryAbsoluteDetourLimit |
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. " |
pickupToDeliveryTimeLimit |
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. " |
shipmentType |
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
|
penaltyCost |
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. |
pickupToDeliveryRelativeDetourLimit |
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. |
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.
JSON gösterimi |
---|
{ "arrivalLocation": { object ( |
Alanlar | |
---|---|
arrivalLocation |
Bu |
arrivalWaypoint |
Bu |
departureLocation |
Bu |
departureWaypoint |
Bu |
tags[] |
Ziyaret isteğine eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
timeWindows[] |
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 |
loadDemands |
Bu ziyaret isteğinin taleplerini yükle. Bu,
|
visitTypes[] |
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 |
LatLng
Enlem/boylam çiftini temsil eden bir nesne. Bu değer, enlem ve boylam derece ve boylam derecelerini temsil eden bir çift çiftle 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ı, VisitRequests'in varış ve kalkış konumlarının yanı sıra Araçlar'ın başlangıç ve bitiş konumlarını işaretler.
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ı 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. |
placeId |
Ara noktayla ilişkili ÖY Yeri Kimliği. |
Konum
Bir konumu (coğrafi bir nokta ve isteğe bağlı bir başlık) içerir.
JSON gösterimi |
---|
{
"latLng": {
object ( |
Alanlar | |
---|---|
latLng |
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.) |
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ı (startTime
ve endTime
), etkinliğin en erken ve en geç zamanını (ör. startTime <= event_time <=
endTime
) uygular. Yumuşak zaman aralığı alt sınırı (softStartTime
), etkinliğin gerçekleşmeden önceki softStartTime ile orantılı bir maliyet oluşturarak etkinliğin softStartTime
tarihinde veya sonrasında gerçekleşmesiyle ilgili bir tercih ifade eder. Yumuşak zaman aralığı üst sınırı (softEndTime
), etkinliğin softEndTime
tarihinden sonra ne kadar süreceğiyle orantılı bir maliyet belirleyerek etkinliğin softEndTime
tarihinde veya öncesinde gerçekleşmesiyle ilgili bir tercih belirtir. startTime
, endTime
, softStartTime
ve softEndTime
, 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 <= `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ığının başlangıç zamanı. Belirtilmemesi durumunda Nanosaniye çözünürlük ve en fazla dokuz kesir basamağı olan, RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
endTime |
Zor zaman aralığının bitiş zamanı. Belirtilmemesi durumunda Nanosaniye çözünürlük ve en fazla dokuz kesir basamağı olan, RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
softStartTime |
Zaman aralığının kontrollü başlangıç zamanı. Nanosaniye çözünürlük ve en fazla dokuz kesir basamağı olan, RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
softEndTime |
Zaman aralığının yumuşak bitiş zamanı. Nanosaniye çözünürlük ve en fazla dokuz kesir basamağı olan, RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Ö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ç
Sevkiyat sorunundaki bir aracın modelini oluşturur. Gönderimle ilgili bir sorun çözülürse bu araç için startLocation
noktasından başlayıp endLocation
tarihinde sona eren bir rota oluşturulur. Rota, bir dizi ziyarettir (bkz. ShipmentRoute
).
JSON gösterimi |
---|
{ "displayName": string, "travelMode": enum ( |
Alanlar | |
---|---|
displayName |
Aracın kullanıcı tanımlı görünen adı. En fazla 63 karakter uzunluğunda olabilir ve UTF-8 karakterleri kullanabilir. |
travelMode |
Aracın kullanılabildiği yolları ve hızını etkileyen ulaşım şekli. Ayrıca |
startLocation |
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 |
startWaypoint |
Aracın herhangi bir gönderimi teslim almadan önce başladığı coğrafi konumu temsil eden ara nokta. |
endLocation |
Son |
endWaypoint |
Aracın, son |
startTags[] |
Araç rotasının başlangıcına eklenen etiketleri belirtir. Boş veya yinelenen dizelere izin verilmez. |
endTags[] |
Araç 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 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.
|
endTimeWindows[] |
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.
|
unloadingPolicy |
Araçta yükleme kaldırma politikası uygulandı. |
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ı 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 |
costPerTraveledHour |
Araç rotasında seyahat edilen saat başına maliyet. Bu maliyet yalnızca rota tarafından alınan seyahat süresine ( |
costPerKilometer |
Araç rotasının kilometre başına maliyeti. Bu maliyet |
fixedCost |
Bu araç gönderim için kullanılıyorsa uygulanan sabit maliyettir. |
usedIfRouteIsEmpty |
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 |
routeDurationLimit |
Aracın rotasının toplam süresine uygulanan sınır. Belirli bir |
travelDurationLimit |
Aracın rotasındaki seyahat süresine sınırlama uygulanır. Belirli bir |
routeDistanceLimit |
Aracın rotasının toplam mesafesine sınır uygulanır. Belirli bir |
extraVisitDurationForVisitType |
ziyaret türü 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.
|
breakRule |
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, |
travelDurationMultiple |
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 |
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.
unloadingPolicy
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 |
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: loadLimits
.
JSON gösterimi |
---|
{ "softMaxLoad": string, "costPerUnitAboveSoftMax": number, "startLoadInterval": { object ( |
Alanlar | |
---|---|
softMaxLoad |
Yükün yumuşak sınırı. Şu sayfaya göz atın: |
costPerUnitAboveSoftMax |
Bu aracın rotasında yük |
startLoadInterval |
Rotanın başlangıcında aracın kabul edilebilir yükleme aralığı. |
endLoadInterval |
Rotanın sonunda aracın kabul edilebilir yükleme aralığı. |
maxLoad |
Kabul edilebilir maksimum yük miktarı. |
Aralık
Kabul edilebilir yükleme miktarları aralığı.
JSON gösterimi |
---|
{ "min": string, "max": string } |
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 |
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.
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 sınır. " |
softMaxDuration |
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 " |
quadraticSoftMaxDuration |
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
" |
costPerHourAfterSoftMax |
Maliyet negatif olmamalıdır. |
costPerSquareHourAfterQuadraticSoftMax |
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. |
DistanceLimit
Katedilebilecek maksimum mesafeyi tanımlayan bir sınır. Sert veya yumuşak olabilir.
Bir hafif sınır tanımlanırsa hem softMaxMeters
hem de costPerKilometerAboveSoftMax
tanımlanmalı ve negatif olmamalıdır.
JSON gösterimi |
---|
{ "maxMeters": string, "softMaxMeters": string, "costPerKilometerAboveSoftMax": number } |
Alanlar | |
---|---|
maxMeters |
Mesafeyi en fazla maxMeter ile sınırlayan katı bir sınır. Sınır negatif olmayan bir sayı olmalıdır. |
softMaxMeters |
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ımlı softMaxMeters, maxMeters değerinden küçük olmalı ve negatif olmamalıdır. |
costPerKilometerAboveSoftMax |
Mesafe
Maliyet negatif olmamalıdı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).
JSON gösterimi |
---|
{ "breakRequests": [ { object ( |
Alanlar | |
---|---|
breakRequests[] |
Araların sırası. |
frequencyConstraints[] |
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ı (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). Nanosaniye çözünürlük ve en fazla dokuz kesir basamağı olan, RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
latestStartTime |
Zorunlu. Aranın başlangıcındaki üst sınır (dahil). Nanosaniye çözünürlük ve en fazla dokuz kesir basamağı olan, RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
minDuration |
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
{
minBreakDuration { seconds: 3600 } # 1 hour.
maxInterBreakDuration { 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
JSON gösterimi |
---|
{ "minBreakDuration": string, "maxInterBreakDuration": string } |
Alanlar | |
---|---|
minBreakDuration |
Zorunlu. Bu kısıtlama için minimum ara süresi. Negatif olmayan. " |
maxInterBreakDuration |
Zorunlu. Rotada, en azından kısmen mola içermeyen, izin verilen maksimum zaman aralığı " |
DurationDistanceMatrix
Ziyaret ve araç başlangıç konumlarından ziyaret edilene kadar süre ve mesafe matrisini, ayrıca aracın bitiş konumlarını 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ç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.
JSON gösterimi |
---|
{ "durations": [ string ], "meters": [ number ] } |
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, |
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).
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. Bir kaynak ziyareti veya araç başlangıcı, |
excludedSrcTag |
Şu sayfaya göz atın: |
dstTag |
Bir hedef ziyareti veya araç sonu, |
excludedDstTag |
Ş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. |
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 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. " |
ShipmentTypeIncompatibility
Gönderim Türüne 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.
JSON gösterimi |
---|
{
"types": [
string
],
"incompatibilityMode": enum ( |
Alanlar | |
---|---|
types[] |
Uyumsuz türlerin listesi. Listelenenler arasında farklı |
incompatibilityMode |
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önderim Türüne göre gönderimler arasındaki gereksinimleri belirtir. Koşulun ayrıntıları, gereksinim modu ile tanımlanır.
JSON gösterimi |
---|
{
"requiredShipmentTypeAlternatives": [
string
],
"dependentShipmentTypes": [
string
],
"requirementMode": enum ( |
Alanlar | |
---|---|
requiredShipmentTypeAlternatives[] |
|
dependentShipmentTypes[] |
NOT: |
requirementMode |
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. |
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 offsetDuration
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.
JSON gösterimi |
---|
{ "firstIsDelivery": boolean, "secondIsDelivery": boolean, "offsetDuration": string, "firstIndex": integer, "secondIndex": integer } |
Alanlar | |
---|---|
firstIsDelivery |
"İlk" etkinliğin bir yayın olup olmadığını gösterir. |
secondIsDelivery |
"İkinci" etkinliğin bir yayın olup olmadığını gösterir. |
offsetDuration |
"İlk" ve "ikinci" etkinlik arasındaki göreli konum. Negatif olabilir. " |
firstIndex |
"İlk" etkinliğin gönderim dizini. Bu alan belirtilmelidir. |
secondIndex |
"İkinci" etkinliğin gönderim dizini. Bu alan belirtilmelidir. |