Yük talepleri ve sınırlar, kapasiteyi yönetmek için kullanabileceğiniz bir tür kısıtlamadır. Gönderinin gerekli kapasitesini ve aracın maksimum kapasitesini belirtir. Bu da rota atamalarını bu kısıtlamalara göre optimize etmenize olanak tanır.
Yük talepleri ve sınırlar aşağıdaki gibi hedefleri destekleyebilir:
- Araçların aşırı yüklenmesini önleyin.
- Gönderiler teslim alınırken ve teslim edilirken araç yüklerinin nasıl değiştiğini izleyin.
- Bir aracın belirli bir konumu ziyaret etme sayısını kısıtlayın.
Yük talepleri ve sınırlar aşağıdaki özelliklerde belirtilir:
loadDemands
, belirli bir gönderimin ihtiyaç duyduğu kapasite miktarını belirtir.loadLimits
, belirli bir araç için maksimum kapasiteyi belirtir.
Yapı
Şemada gösterildiği gibi, yük talepleri ve sınırlar aşağıdaki gibi yapılandırılmıştır:
loadDemands
,Shipment
mülküdür.Shipment
birden fazla yükleme talebi olabilir.loadLimits
,Vehicle
mülküdür.Vehicle
'ın birden fazla yükleme sınırı olabilir.
Özellikler
Bu bölümde, yük talepleri ve sınırları için aşağıdaki özellikler açıklanmaktadır:
- Yük türü: Yük talepleri ile sınırlar arasında paylaşılan bir özelliktir.
Load
veLoadLimit
: Sırasıyla yükleme isteklerinde ve yükleme sınırlarında bulunan benzersiz özellikler.
Yükleme türü
Yük türleri, bir gönderim için yük taleplerinin türünü ve bir araç için yük sınırlarını tanımlayan dize anahtarlardır. Yükleme türlerinin önemli özellikleri şunlardır:
- Kullanıcı tanımlı: Yükleme türleri, sizin tanımladığınız türlerdir. Yükleme türleri için önceden tanımlanmış sistem değişkeni yoktur.
- Ortak: Yük türleri, kargolar ve araçlar arasında paylaşılmak üzere tasarlanmıştır. Bu, bir gönderimin, araç kapasitesini yalnızca yük türleri eşleştiğinde sınırına kadar kullanacağı anlamına gelir. Bir araçta belirli bir yük türü için yük sınırı belirtilmemişse bu yük türünü sınırsız miktarda taşıyabilir.
Yükleme türlerini temsil eden dize anahtarları Protocol Buffers harita türü söz dizimini kullanır. Sorun yaşanmaması için bu dize anahtarları boş olmamalıdır. Yük türünü adlandırırken yükün türünü ve birimini açıklayan tanımlayıcıların kullanılması önerilir. Örneğin: weightKg, volume_gallons, palletcount veya frequencyDaily.
Load
ve LoadLimit
Load
ve LoadLimit
nesneleri, kargolar ve araçlar için kapasite şartlarını tanımlayan belirli özellikler içerir. Aşağıdaki tabloda bu özellikler açıklanmaktadır:
Nesne | Ebeveyn | Mülk | Tesis türü | Mülk açıklaması |
---|---|---|---|---|
Load |
loadDemands |
amount |
dize (int64 biçimi) | Belirtilen türde gönderinin kapasite şartını tanımlar. |
LoadLimit |
loadLimits |
maxLoad |
dize (int64 biçimi) | Belirtilen türdeki aracın maksimum yük kapasitesini tanımlar. |
Örnekler
Aşağıdaki örnekte, loadDemands
türünü dize olarak ve amount
özelliğini int64 biçiminde dize olarak ayarlayabileceğiniz bir yük talebinin yapısı gösterilmektedir:
"loadDemands": {
"MATCHING_LOAD_TYPE ": {
"amount": "YOUR_LOAD_AMOUNT "
}
}
Aşağıdaki örnekte, loadLimits
türünü dize olarak, maxLoad
mülkünü ise int64 biçiminde dize olarak ayarlayabileceğiniz en temel yükleme sınırı yapısı gösterilmektedir:
"loadLimits": {
"MATCHING_LOAD_TYPE ": {
"maxLoad": "YOUR_MAX_LOAD "
}
}
Deneyin
Kurgusal bir senaryo oluşturmak için yukarıdaki kod örneklerini kullanın. Bu senaryoda, 10 kilogram ağırlığında bir kargo ve 100 kilogram taşıyabilen bir aracınız var:
loadDemands
örneğinde, yükleme türünüweightKg
olarak tanımlayın.Bunu yaptığınızda
loadLimits
örneğindeki yükleme türü de doldurulur ve yükleme türü paylaşılır. Gönderimin aracın sınırlarını kullanabilmesi içinloadDemands
veloadLimits
türlerinin eşleşmesi gerektiğini unutmayın.Aynı
loadDemands
örneğindeamount
özelliğini10
olarak ayarlayın.Bu, gönderinin 10 kilogram ağırlığında olduğu anlamına gelir.
loadLimits
örneğindemaxLoad
özelliğini100
olarak ayarlayın.Bu, aracın en fazla 100 kilogram taşıyabileceği anlamına gelir.
Önceden tanımlanmış bir tür grubu olmadığını unutmayın. Bu örnekte, kilogramları puana veya ağırlık yerine doğrusal ölçümlere dönüştürebilirsiniz. Bu esneklik, yükleme taleplerini ve sınırlarını kendi ihtiyaçlarınıza göre özelleştirmenize olanak tanır.
İstek örneği
Aşağıdaki örnekte, bir gönderimde loadDemands
ve bir araçta loadLimits
bulunan temel bir optimizeTours
isteğinin yapısı gösterilmektedir:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 00.000000, "longitude": 00.000000 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 00.000000, "longitude": 00.000000 } } ], "loadDemands": { "MATCHING_LOAD_TYPE ": { "amount": "YOUR_LOAD_AMOUNT " } } } ], "vehicles": [ { "startLocation": { "latitude": 00.000000, "longitude": 00.000000 }, "endLocation": { "latitude": 00.000000, "longitude": 00.000000 }, "costPerKilometer": 1.0, "loadLimits": { "MATCHING_LOAD_TYPE ": { "maxLoad": "YOUR_MAX_LOAD " } } } ] } }
Bir gönderimin birden fazla yükleme talebi, bir aracın ise birden fazla yükleme sınırı olabileceğini unutmayın. Bu sayede, filonuzun rotalarını optimize ederken dikkate alınacak karmaşık kısıtlamalar sağlayabilirsiniz.