Yük talepleri ve sınırları, kapasiteyi yönetmek için kullanabileceğiniz bir kısıtlama türüdür. Bu kısıtlama, bir gönderinin gerekli kapasitesini ve bir aracın maksimum kapasitesini belirtir. Bu sayede rota atamalarını bu kısıtlamalara göre optimize edebilirsiniz.
Yük talepleri ve sınırları şu 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.
- Ağır yük sevkiyatlarında ağır hizmet araçlarının eşleştirilmesine öncelik verin.
Yük talepleri ve sınırları şu özelliklerde belirtilir:
loadDemands, belirli bir gönderinin gerektirdiği kapasite miktarını belirtir.loadLimits, belirli bir araç için maksimum kapasiteyi belirtir.
Yapı
Diyagramda gösterildiği gibi, yük talepleri ve sınırları aşağıdaki şekilde yapılandırılmıştır:
loadDemands,Shipmentmülküdür. BirShipmentbirden fazla yük talebine sahip olabilir.loadLimits,Vehicle'ın bir özelliğidir. BirVehiclebirden fazla yükleme sınırına sahip olabilir.
Essentials kontrol listesi
Aşağıdaki kontrol listesinde, yüklemeyle ilgili olası hataları önlemek için gerekli bilgiler açıklanmaktadır. Bu liste, isteğinizi doğrulamanıza ve yanıtınızla ilgili sorunları gidermenize yardımcı olabilir.
Özellikler
Bu bölümde, yük talepleri ve sınırlarıyla ilgili özellikler açıklanmaktadır. Bu özellikler şunlardır:
- Yük türü: Yük talepleri ve sınırlar arasında paylaşılan bir özellik.
LoadveLoadLimit: Yükleme taleplerinde ve yükleme sınırlarında bulunan benzersiz mülkler.
Yükleme kapağı
Yük türü, gönderilere ve araçlara eşit şekilde uyguladığınız bir dize anahtarıdır. Tek bir yükleme türü, gönderinin yükleme talebinin yanı sıra aracın yükleme sınırı için de geçerlidir.
Yük türleri, protokol arabelleği harita türü söz dizimini kullanır. Yük türünü adlandırırken yükün türünü ve birimini açıklayan tanımlayıcılar kullanın. Örneğin: weightKg, volume_gallons, palletcount veya frequencyDaily.
Load ve LoadLimit
Load ve LoadLimit nesneleri, gönderiler ve araçlar için kapasite koşullarını tanımlamaya yönelik belirli özellikler içerir. Aşağıdaki tabloda bu özellikler açıklanmaktadır:
| Nesne | Ebeveyn | Mülk | Tesis türü | Tesis açıklaması |
|---|---|---|---|---|
Load |
loadDemands |
amount |
dize (int64 biçimi) | Belirtilen türdeki gönderinin kapasite gereksinimini tanımlar. |
LoadLimit |
loadLimits |
maxLoad |
dize (int64 biçimi) | Aracın belirtilen türdeki maksimum yük kapasitesini tanımlar. |
Örnekler
Bu bölümde üç tür örnek ele alınmaktadır:
- Yük taleplerinin ve sınır özelliklerinin yapısını gösteren kod örnekleri.
- API isteğinde yük taleplerini ve sınırlarını kullanmanın bir yolunu gösteren örnek senaryo.
- Bir istek örneği, örnek senaryoda ayarlanan değerleri içerir.
Kod örnekleri
Aşağıdaki örnekte, loadDemands türünü dize, amount özelliğini ise int64 biçiminde dize olarak ayarlayabileceğiniz bir yükleme talebinin yapısı gösterilmektedir:
{ "model": { "shipments": [ ... { "loadDemands": { "MATCHING_LOAD_TYPE": { "amount": "YOUR_LOAD_AMOUNT" } } } ], "vehicles": [ ... ] } }
Aşağıdaki örnekte, yük sınırının en temel yapısı gösterilmektedir. Burada loadLimits türünü dize, maxLoad özelliğini ise int64 biçiminde dize olarak ayarlayabilirsiniz:
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "loadLimits": { "MATCHING_LOAD_TYPE": { "maxLoad": "YOUR_MAX_LOAD" } } } ] } }
Örnek senaryo
Bu bölümde, köpek bakımı işi yaptığınız ve sınırlı sayıda kafes içeren bir araçla birkaç köpeği taşımak için rotayı optimize ettiğiniz bir senaryo açıklanmaktadır.
Her gönderim, belirli sayıda köpeği aldığınız bir durağı temsil eder. Bu örnekte, her gönderinin farklı bir teslim alma konumu vardır (baktığınız köpeklerin evi) ve tüm gönderilerin aynı teslimat konumu vardır (köpek bakım merkezinizin bulunduğu bina).
Bu örnekte, isteğinizdeki özellik değerleri aşağıdaki gibidir:
| Ebeveyn | Mülk | Tür | Değer | Senaryo |
|---|---|---|---|---|
loadDemands |
yükleme kapağı | dize | dogUnit |
Gönderinin yük türünü tanımlar. Bu örnekte dogUnit kullanılmıştır. Her dogUnit bir köpeği temsil eder. |
loadDemands |
amount |
sayı | 1. gönderi: 12. gönderi: 3 |
Tanımlanan yük türünün miktarını belirtir. Bu örnekte iki gönderim tanımlıyorsunuz. İlkinde bir köpek, ikincisinde ise 3 köpek alıyorsunuz. |
loadLimits |
yükleme kapağı | dize | dogUnit |
Araca uygulanan yük sınırı türünü tanımlar. Sınırın geçerli olması için bu değer, gönderinin yük türüyle eşleşmelidir. |
loadLimits |
maxLoad |
sayı | 6 |
Aracın taşıyabileceği yük türünün maksimum miktarını belirtir. Bu örnekte, maksimum kapasitesi 6 dogUnit olan tek bir aracınız var. Her dogUnit, bir köpek kafesini temsil ediyor. |
Aşağıdaki diyagramda aracın yük sınırları, her gönderinin yük talepleri ve her gönderinin aracın yük sınırlarını nasıl tükettiği gösterilmektedir:

Bu örnekte, her gönderinin yük talepleri ve aracın yük sınırları aşağıdaki etkilere sahiptir:
Araç 6 köpeğe kadar taşıyabildiğinden ve yalnızca 4 köpek aldığınızdan optimize edici, aracın köpekleri taşıması için rota oluştururken sorun yaşamaz.
Araçta 6
dogUnityük sınırı olması, bu araçta yalnızca iki köpek daha taşıyabileceğiniz anlamına da gelir.Köpek sayısı yük sınırından fazlaysa optimize edici, toplama işlemlerinden birini atlar veya uygun bir araca atar.
Önceden tanımlanmış bir tür grubu olmadığını unutmayın. Bu örnekte, köpeklerin ağırlığını sınırlamak için yük türünü köpek birimlerinden ağırlık birimlerine değiştirebilir veya genişliklerini ya da yüksekliklerini sınırlamak için doğrusal ölçümlere değiştirebilirsiniz. Bu esneklik sayesinde yük taleplerini ve sınırlarını kendi ihtiyaçlarınıza göre ayarlayabilirsiniz.
İstek örneği
Aşağıdaki örnekte, örnek senaryo değerlerini içeren temel bir optimizeTours isteğinin yapısı gösterilmektedir:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ], "label": "One bernese mountain dog", "loadDemands": { "dogUnit": { "amount": "1" } } }, { "pickups": [ { "arrivalLocation": { "latitude": 37.7359, "longitude": -122.5011 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ], "label": "Three chihuahuas", "loadDemands": { "dogUnit": { "amount": "3" } } } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "loadLimits": { "dogUnit": { "maxLoad": "6" } }, "costPerKilometer": 1.0 } ] } }
Bu örnektekinin aksine, bir sevkiyatta birden fazla yük talebi ve bir araçta birden fazla yük sınırı olabileceğini unutmayın. Bu sayede, filonuzun rotalarını optimize ederken dikkate alınması gereken karmaşık kısıtlamalar sağlayabilirsiniz.
Yumuşak yükleme sınırları
Bir aracın loadLimits bölümüne softMaxLoad ve costPerUnitAboveSoftMax ekleyerek yük sınırlarını esnek kısıtlamalar olarak ayarlayabilirsiniz. Bu sayede, optimizasyon aracı, yük sınırına sıkı sıkıya bağlı kalmak yerine rotanın tamamlanmasına öncelik vererek bir maliyet karşılığında aracın maksimum yükünü aşabilir.
Hem katı hem de esnek bir yükleme sınırı belirlemek için maxLoad ve softMaxLoad öğelerini birlikte kullanabilirsiniz. Bu durumda softMaxLoad, aşılabilecek yükü belirlerken maxLoad, aşılamayacak kesin bir sınır belirler. Her ikisi de kullanıldığında maxLoad, softMaxLoad değerinden büyük olmalıdır.
Özellikler
Aşağıdaki tabloda, yük talepleri ve sınırları için esnek kısıtlama özellikleri açıklanmaktadır.
| Ebeveyn | Mülk adı | Tesis türü | Tesis açıklaması |
|---|---|---|---|
loadLimits |
softMaxLoad |
dize (int64 biçimi) | Bir araç için tercih edilen maksimum yük. Aracın yükü bu değeri aşarsa maliyet oluşur. |
loadLimits |
costPerUnitAboveSoftMax |
sayı | softMaxLoad üzerindeki yükün birim başına maliyeti. Bu alan, softMaxLoad kullanılırken zorunludur. Maliyetler hakkında daha fazla bilgi edinmek için Maliyet modeli temel kavramına bakın. |
Kod örneği
Aşağıdaki örnekte, loadLimits için esnek kısıtlama özelliklerinin yapısı gösterilmektedir:
{ "loadLimits": { "LOAD_TYPE": { "softMaxLoad": "LOAD_AMOUNT", "costPerUnitAboveSoftMax": COST_PER_UNIT } } }