- JSON gösterimi
- Gönderim
- VisitRequest
- LatLng
- Waypoint
- Konum
- TimeWindow
- Araç
- TravelMode
- RouteModifiers
- UnloadingPolicy
- LoadLimit
- Aralık
- DurationLimit
- DistanceLimit
- BreakRule
- BreakRequest
- FrequencyConstraint
- DurationDistanceMatrix
- Satır
- TransitionAttributes
- ShipmentTypeIncompatibility
- IncompatibilityMode
- ShipmentTypeRequirement
- RequirementMode
- PrecedenceRule
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
JSON gösterimi |
---|
{ "shipments": [ { object ( |
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
Nanosaniye çözünürlüğüne sahip ve en fazla dokuz kesirli basamak içeren RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
global |
Ayarlanmazsa varsayılan olarak 1 Ocak 1971, 00:00:00 UTC (ör. saniye: 31536000, nanosaniye: 0) kullanılır. Nanosaniye çözünürlüğüne sahip ve en fazla dokuz kesirli basamak içeren RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
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. |
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.
JSON gösterimi |
---|
{ "displayName": string, "pickups": [ { object ( |
Alanlar | |
---|---|
display |
Gönderinin kullanıcı tanımlı görünen adı. En fazla 63 karakter uzunluğunda 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. En fazla dokuz kesirli basamak içeren ve " |
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. En fazla dokuz kesirli basamak içeren ve " |
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. |
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.
JSON gösterimi |
---|
{ "arrivalLocation": { object ( |
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; En fazla dokuz kesirli basamak içeren ve " |
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 |
LatLng
Bir enlem/boylam çiftini temsil eden nesne. Bu değer, enlem derecelerini ve boylam derecelerini temsil eden bir çift çift olarak ifade edilir. Aksi belirtilmediği sürece 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 |
Enlem (derece cinsinden). [-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 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.
JSON gösterimi |
---|
{ "sideOfRoad": boolean, // Union field |
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. |
Konum
Bir konumu (coğrafi bir nokta ve isteğe bağlı bir başlık) kapsar.
JSON gösterimi |
---|
{
"latLng": {
object ( |
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. |
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ı (startTime
ve endTime
), etkinliğin en erken ve en geç zamanını (startTime <= event_time <=
endTime
gibi) zorunlu kılar. Yumuşak zaman aralığı alt sınırı softStartTime
, etkinliğin softStartTime'dan ne kadar süre önce gerçekleştiğiyle orantılı bir maliyete neden olarak etkinliğin softStartTime
'te veya sonrasında gerçekleşmesi tercihini ifade eder. Yumuşak zaman aralığı üst sınırı softEndTime
, etkinliğin softEndTime
'ten ne kadar süre sonra gerçekleştiğiyle orantılı bir maliyete neden olarak etkinliğin softEndTime
'te veya öncesinde gerçekleşmesini tercih ettiğinizi ifade eder. startTime
, endTime
, softStartTime
ve softEndTime
, 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 <= `startTime` <= `endTime` and
0 <= `startTime` <= `softStartTime` and
0 <= `softEndTime` <= `endTime`.
JSON gösterimi |
---|
{ "startTime": string, "endTime": string, "softStartTime": string, "softEndTime": string, "costPerHourBeforeSoftStartTime": number, "costPerHourAfterSoftEndTime": number } |
Alanlar | |
---|---|
start |
Zorunlu zaman aralığının başlangıç zamanı. Belirtilmemişse Nanosaniye çözünürlüğüne sahip ve en fazla dokuz kesirli basamak içeren RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
end |
Sabit zaman aralığının bitiş zamanı. Belirtilmemişse Nanosaniye çözünürlüğüne sahip ve en fazla dokuz kesirli basamak içeren RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
soft |
Zaman aralığının yumuşak başlangıç zamanı. Nanosaniye çözünürlüğüne sahip ve en fazla dokuz kesirli basamak içeren RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
soft |
Zaman aralığının esnek bitiş zamanı. Nanosaniye çözünürlüğüne sahip ve en fazla dokuz kesirli basamak içeren RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
cost |
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. |
cost |
Etkinlik
Bu maliyet pozitif olmalıdır ve alan yalnızca |
Araç
Gönderim sorunu olan bir aracı modeller. Bir gönderim sorununun çözülmesi, bu araç için startLocation
ile endLocation
arasında bir rota oluşturur. Rota, ziyaretlerden oluşan bir sıradır (ShipmentRoute
bölümüne bakın).
JSON gösterimi |
---|
{ "displayName": string, "travelMode": enum ( |
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 |
visitTypes 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 |
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. |
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.
JSON gösterimi |
---|
{ "avoidTolls": boolean, "avoidHighways": boolean, "avoidFerries": boolean, "avoidIndoor": boolean } |
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 |
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, unloadingPolicy
'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 |
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: loadLimits
.
JSON gösterimi |
---|
{ "softMaxLoad": string, "costPerUnitAboveSoftMax": number, "startLoadInterval": { object ( |
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ığı.
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. Belirtilmemişse maksimum yük bu mesaj tarafından kısıtlanmaz. Her ikisi de belirtilmişse |
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.
JSON gösterimi |
---|
{ "maxDuration": string, "softMaxDuration": string, "quadraticSoftMaxDuration": string, "costPerHourAfterSoftMax": number, "costPerSquareHourAfterQuadraticSoftMax": number } |
Alanlar | |
---|---|
max |
Süreyi en fazla maxDuration olarak kısıtlayan katı bir sınır. En fazla dokuz kesirli basamak içeren ve " |
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 En fazla dokuz kesirli basamak içeren ve " |
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
En fazla dokuz kesirli basamak içeren ve " |
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. |
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 softMaxMeters
hem de costPerKilometerAboveSoftMax
tanımlanmalı ve sıfırdan büyük olmalıdır.
JSON gösterimi |
---|
{ "maxMeters": string, "softMaxMeters": string, "costPerKilometerBelowSoftMax": number, "costPerKilometerAboveSoftMax": number } |
Alanlar | |
---|---|
max |
Mesafeyi en fazla maxMeters değerine sınırlayan 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 softMaxMeters, maxMeters'ten küçük ve sıfırdan büyük olmalıdır. |
cost |
Aşağıdaki formül kullanılarak
Bu maliyet |
cost |
Mesafe
Maliyet pozitif olmalıdı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).
JSON gösterimi |
---|
{ "breakRequests": [ { object ( |
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ı (earliestStartTime
/ latestStartTime
) çakışma yapabilir ancak siparişle uyumlu olmalıdır (bu kontrol edilir).
JSON gösterimi |
---|
{ "earliestStartTime": string, "latestStartTime": string, "minDuration": string } |
Alanlar | |
---|---|
earliest |
Zorunlu. Aranın başlangıcındaki alt sınır (dahil). Nanosaniye çözünürlüğüne sahip ve en fazla dokuz kesirli basamak içeren RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
latest |
Zorunlu. Aranın başlangıcındaki üst sınır (dahil). Nanosaniye çözünürlüğüne sahip ve en fazla dokuz kesirli basamak içeren RFC3339 UTC "Zulu" biçiminde bir zaman damgası. Örnekler: |
min |
Zorunlu. Aranın minimum süresi. Pozitif olmalıdır. En fazla dokuz kesirli basamak içeren ve " |
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:
{
minBreakDuration { seconds: 3600 } # 1 hour.
maxInterBreakDuration { 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
JSON gösterimi |
---|
{ "minBreakDuration": string, "maxInterBreakDuration": string } |
Alanlar | |
---|---|
min |
Zorunlu. Bu kısıtlama için minimum ara süresi. Sıfırdan büyük. En fazla dokuz kesirli basamak içeren ve " |
max |
Zorunlu. Rotadaki, en azından kısmen En fazla dokuz kesirli basamak içeren ve " |
DurationDistanceMatrix
Ziyaret ve araç başlangıç konumlarından ziyaret ve araç bitiş konumlarına kadar bir süre ve mesafe matrisi belirtir.
JSON gösterimi |
---|
{
"rows": [
{
object ( |
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.
JSON gösterimi |
---|
{ "durations": [ string ], "meters": [ number ] } |
Alanlar | |
---|---|
durations[] |
Belirli bir satırın süre değerleri. En fazla dokuz kesirli basamak içeren ve " |
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 |
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).
JSON gösterimi |
---|
{
"srcTag": string,
"excludedSrcTag": string,
"dstTag": string,
"excludedDstTag": string,
"cost": number,
"costPerKilometer": number,
"distanceLimit": {
object ( |
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. En fazla dokuz kesirli basamak içeren ve " |
ShipmentTypeIncompatibility
Gönderim türlerine 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.
JSON gösterimi |
---|
{
"types": [
string
],
"incompatibilityMode": enum ( |
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önderi türlerine göre kargolar arasındaki koşulları belirtir. Koşulun ayrıntıları, koşul moduna göre belirlenir.
JSON gösterimi |
---|
{
"requiredShipmentTypeAlternatives": [
string
],
"dependentShipmentTypes": [
string
],
"requirementMode": enum ( |
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. |
PrecedenceRule
İki etkinlik arasındaki öncelik kuralı (her etkinlik bir gönderinin alınması veya teslim edilmesidir): "İkinci" etkinliğin, "ilk" etkinlikten en az offsetDuration
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.
JSON gösterimi |
---|
{ "firstIsDelivery": boolean, "secondIsDelivery": boolean, "offsetDuration": string, "firstIndex": integer, "secondIndex": integer } |
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. En fazla dokuz kesirli basamak içeren ve " |
first |
"ilk" etkinliğin gönderi dizini. Bu alan belirtilmelidir. |
second |
"İkinci" etkinliğin gönderi dizini. Bu alan belirtilmelidir. |