लोड की मांग और सीमाएं, एक तरह की पाबंदी होती है. इनका इस्तेमाल क्षमता को मैनेज करने के लिए किया जा सकता है. इस शर्त से, शिपमेंट की ज़रूरी क्षमता और वाहन की ज़्यादा से ज़्यादा क्षमता के बारे में पता चलता है. इससे, इन शर्तों के आधार पर रूट असाइनमेंट को ऑप्टिमाइज़ किया जा सकता है.
लोड की मांग और सीमाएं, इन जैसे लक्ष्यों को पूरा करने में मदद कर सकती हैं:
- वाहनों में ज़्यादा सामान न भरा जाए.
- शिपमेंट पिक अप और डिलीवर किए जाने पर, वाहन के लोड में होने वाले बदलावों पर नज़र रखें.
- ज़्यादा लोड वाले शिपमेंट के लिए, ज़्यादा ड्यूटी वाले वाहनों को प्राथमिकता दें.
लोड की मांग और सीमाएं, इन प्रॉपर्टी में बताई गई हैं:
loadDemands
एट्रिब्यूट से पता चलता है कि किसी शिपमेंट के लिए, कितनी क्षमता की ज़रूरत है.loadLimits
से, किसी वाहन की ज़्यादा से ज़्यादा क्षमता के बारे में पता चलता है.
बनावट
डायग्राम में दिखाए गए तरीके से, लोड की मांग और सीमाएं इस तरह से तय की जाती हैं:
loadDemands
,Shipment
की प्रॉपर्टी है. किसीShipment
के लिए, लोड करने के कई अनुरोध किए जा सकते हैं.loadLimits
,Vehicle
की प्रॉपर्टी है. किसीVehicle
के लिए, एक से ज़्यादा लोड सीमाएं हो सकती हैं.
Essentials की चेकलिस्ट
यहां दी गई चेकलिस्ट में, लोड करने से जुड़ी संभावित गड़बड़ियों को रोकने के लिए ज़रूरी जानकारी दी गई है. इस सूची से, आपको अपने अनुरोध की पुष्टि करने और जवाब से जुड़ी समस्या हल करने में मदद मिल सकती है.
प्रॉपर्टी
इस सेक्शन में, लोड की मांगों और सीमाओं के लिए प्रॉपर्टी के बारे में बताया गया है. ये प्रॉपर्टी यहां दी गई हैं:
- लोड टाइप: यह लोड की मांग और सीमाओं के बीच शेयर की गई प्रॉपर्टी है.
Load
औरLoadLimit
: ये लोड डिमांड और लोड लिमिट में मौजूद यूनीक प्रॉपर्टी हैं.
लोड टाइप
लोड टाइप, एक स्ट्रिंग की होती है. इसे शिपमेंट और वाहनों, दोनों पर एक जैसा लागू किया जाता है. शिपमेंट की लोड डिमांड और वाहन की लोड लिमिट, दोनों पर एक ही लोड टाइप लागू होता है.
लोड टाइप, प्रोटोकॉल बफ़र मैप टाइप सिंटैक्स का इस्तेमाल करते हैं. लोड टाइप का नाम देते समय, ऐसे आइडेंटिफ़ायर का इस्तेमाल करें जिनसे लोड के टाइप और उसकी यूनिट के बारे में पता चले. उदाहरण के लिए: weightKg, volume_gallons, palletcount या frequencyDaily.
Load
और LoadLimit
Load
और LoadLimit
ऑब्जेक्ट में, शिपमेंट और वाहनों के लिए क्षमता से जुड़ी ज़रूरी शर्तों को तय करने वाली खास प्रॉपर्टी होती हैं. इस टेबल में इन प्रॉपर्टी के बारे में बताया गया है:
ऑब्जेक्ट | Parent | प्रॉपर्टी | प्रॉपर्टी किस तरह की है | प्रॉपर्टी की जानकारी |
---|---|---|---|---|
Load |
loadDemands |
amount |
स्ट्रिंग (int64 फ़ॉर्मैट) | यह तय करता है कि तय किए गए टाइप के हिसाब से, शिपमेंट की क्षमता कितनी होनी चाहिए. |
LoadLimit |
loadLimits |
maxLoad |
स्ट्रिंग (int64 फ़ॉर्मैट) | इससे यह पता चलता है कि तय किए गए टाइप के हिसाब से, वाहन में ज़्यादा से ज़्यादा कितना सामान ले जाया जा सकता है. |
उदाहरण
इस सेक्शन में, तीन तरह के उदाहरण दिए गए हैं:
- कोड के उदाहरण, जिनमें लोड की मांगों और सीमाओं की प्रॉपर्टी के स्ट्रक्चर के बारे में बताया गया है.
- उदाहरण के तौर पर एक ऐसा परिदृश्य जिसमें एपीआई अनुरोध में लोड की मांग और सीमाएं इस्तेमाल करने का एक तरीका दिखाया गया है.
- अनुरोध का उदाहरण, जिसमें उदाहरण के तौर पर दिए गए सिनेरियो में सेट की गई वैल्यू शामिल हैं.
कोड सैंपल
यहां लोड डिमांड का एक उदाहरण दिया गया है. इसमें loadDemands
टाइप को स्ट्रिंग के तौर पर और amount
प्रॉपर्टी को int64 फ़ॉर्मैट में स्ट्रिंग के तौर पर सेट किया जा सकता है:
{ "model": { "shipments": [ ... { "loadDemands": { "MATCHING_LOAD_TYPE": { "amount": "YOUR_LOAD_AMOUNT" } } } ], "vehicles": [ ... ] } }
यहां लोड लिमिट का सबसे बुनियादी स्ट्रक्चर दिखाया गया है. इसमें loadLimits
टाइप को स्ट्रिंग के तौर पर सेट किया जा सकता है. साथ ही, maxLoad
प्रॉपर्टी को int64 फ़ॉर्मैट में स्ट्रिंग के तौर पर सेट किया जा सकता है:
{ "model": { "shipments": [ ... ], "vehicles": [ ... { "loadLimits": { "MATCHING_LOAD_TYPE": { "maxLoad": "YOUR_MAX_LOAD" } } } ] } }
उदाहरण के तौर पर
इस सेक्शन में, एक ऐसे उदाहरण के बारे में बताया गया है जिसमें आपका डॉगी डेकेयर का कारोबार है. आपको कुछ कुत्तों को एक वाहन में ले जाना है. हालांकि, आपके पास पिंजरों की संख्या सीमित है. ऐसे में, आपको कुत्तों को ले जाने के लिए रास्ते को ऑप्टिमाइज़ करना है.
हर शिपमेंट, एक स्टॉप को दिखाता है. यहां से आपको कुछ कुत्ते पिक अप करने होते हैं. इस उदाहरण में, हर शिपमेंट के लिए पिकअप करने की जगह अलग-अलग है. यह वह घर है जहां कुत्तों की देखभाल की जाती है. साथ ही, सभी शिपमेंट के लिए डिलीवरी की जगह एक ही है. यह कुत्तों की देखभाल करने वाले डेकेयर की बिल्डिंग है.
इस उदाहरण के लिए, आपके अनुरोध में प्रॉपर्टी की वैल्यू ये हैं:
Parent | प्रॉपर्टी | टाइप | मान | स्थिति |
---|---|---|---|---|
loadDemands |
लोड टाइप | स्ट्रिंग | dogUnit |
शिपमेंट के लिए लोड का टाइप तय करता है. इस उदाहरण में dogUnit का इस्तेमाल किया गया है. इसमें हर dogUnit एक कुत्ते को दिखाता है. |
loadDemands |
amount |
संख्या | पहला शिपमेंट: 1 दूसरा शिपमेंट: 3 |
यह तय करता है कि तय किए गए लोड टाइप की कितनी मात्रा है. इस उदाहरण में, दो शिपमेंट तय किए जा रहे हैं. पहले शिपमेंट में एक कुत्ते को पिक अप किया जा रहा है और दूसरे में तीन कुत्तों को पिक अप किया जा रहा है. |
loadLimits |
लोड टाइप | स्ट्रिंग | dogUnit |
इससे वाहन पर लागू होने वाली लोड लिमिट के टाइप के बारे में पता चलता है. यह शिपमेंट के लोड टाइप से मेल खाना चाहिए, ताकि सीमा लागू हो सके. |
loadLimits |
maxLoad |
संख्या | 6 |
इससे पता चलता है कि वाहन, किस तरह के लोड की ज़्यादा से ज़्यादा कितनी मात्रा ले जा सकता है. इस उदाहरण में, आपके पास सिर्फ़ एक वाहन है, जिसमें ज़्यादा से ज़्यादा छह dogUnit रखे जा सकते हैं. यहां हर dogUnit का मतलब एक डॉग क्रेट है. |
इस डायग्राम में, वाहन की लोड करने की सीमा, हर शिपमेंट की लोड करने की ज़रूरत, और हर शिपमेंट के लिए वाहन की लोड करने की सीमा का इस्तेमाल करने का तरीका दिखाया गया है:
इस उदाहरण में, हर शिपमेंट की लोड डिमांड और वाहन की लोड लिमिट का असर इस तरह पड़ता है:
ऑप्टिमाइज़र को कुत्तों को ले जाने के लिए वाहन का रूट जनरेट करने में कोई समस्या नहीं होगी. इसकी वजह यह है कि वाहन में छह कुत्तों को ले जाया जा सकता है और आपको सिर्फ़ चार कुत्तों को पिक अप करना है.
वाहन में 6
dogUnit
ले जाने की सीमा का मतलब यह भी है कि इस वाहन में सिर्फ़ दो और कुत्ते ले जाए जा सकते हैं.अगर कुत्तों की संख्या, गाड़ी में ले जाने की सीमा से ज़्यादा थी, तो ऑप्टिमाइज़र किसी एक पिक अप को छोड़ देता या उसे किसी दूसरी गाड़ी को असाइन कर देता.
ध्यान रखें कि पहले से तय किए गए टाइप का कोई सेट नहीं होता. इस उदाहरण में, कुत्तों के वज़न को सीमित करने के लिए, लोड टाइप को डॉग यूनिट से वज़न यूनिट में बदला जा सकता है. इसके अलावा, उनकी चौड़ाई या ऊंचाई को सीमित करने के लिए, इसे लीनियर मेज़रमेंट में बदला जा सकता है. इस सुविधा की मदद से, लोड की मांग और सीमाएं अपनी ज़रूरतों के हिसाब से तय की जा सकती हैं.
अनुरोध का उदाहरण
इस उदाहरण में, optimizeTours
के बुनियादी अनुरोध का स्ट्रक्चर दिखाया गया है. इसमें उदाहरण के तौर पर दिए गए वैल्यू शामिल हैं:
{ "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 } ] } }
ध्यान रखें कि इस उदाहरण के उलट, किसी शिपमेंट के लिए लोड की कई मांगें हो सकती हैं. साथ ही, किसी वाहन के लिए लोड की कई सीमाएं हो सकती हैं. इससे आपको अपनी फ्लीट के रास्तों को ऑप्टिमाइज़ करते समय, कई तरह की मुश्किल शर्तों को ध्यान में रखने में मदद मिलती है.
सॉफ़्ट लोड की सीमाएं
किसी वाहन के loadLimits
पर softMaxLoad
और costPerUnitAboveSoftMax
जोड़कर, लोड की सीमाएं सॉफ्ट कंस्ट्रेंट के तौर पर सेट की जा सकती हैं. इससे ऑप्टिमाइज़र को, वाहन में तय सीमा से ज़्यादा सामान लोड करने की अनुमति मिलती है. हालांकि, इसके लिए उसे शुल्क चुकाना पड़ता है. इसमें, सामान लोड करने की तय सीमा का सख्ती से पालन करने के बजाय, रूट पूरा करने को प्राथमिकता दी जाती है.
maxLoad
और softMaxLoad
, दोनों का इस्तेमाल करके, हार्ड और सॉफ्ट लोड लिमिट सेट की जा सकती है. इस मामले में, softMaxLoad
लोड की वह सीमा तय करता है जिसे बढ़ाया जा सकता है. वहीं, maxLoad
लोड की वह सीमा तय करता है जिसे बढ़ाया नहीं जा सकता. दोनों का इस्तेमाल करने पर, maxLoad
की वैल्यू softMaxLoad
से ज़्यादा होनी चाहिए.
प्रॉपर्टी
यहां दी गई टेबल में, लोड की मांग और सीमाओं के लिए, सॉफ्ट कंस्ट्रेंट प्रॉपर्टी के बारे में बताया गया है.
Parent | प्रॉपर्टी का नाम | प्रॉपर्टी किस तरह की है | प्रॉपर्टी की जानकारी |
---|---|---|---|
loadLimits |
softMaxLoad |
स्ट्रिंग (int64 फ़ॉर्मैट) | किसी वाहन के लिए, ज़्यादा से ज़्यादा लोड की पसंदीदा सीमा. अगर वाहन का लोड इस वैल्यू से ज़्यादा होता है, तो शुल्क लगता है. |
loadLimits |
costPerUnitAboveSoftMax |
संख्या | softMaxLoad से ज़्यादा लोड होने पर, हर यूनिट की लागत. softMaxLoad का इस्तेमाल करने पर, यह फ़ील्ड भरना ज़रूरी है. लागत के बारे में ज़्यादा जानने के लिए, लागत मॉडल का मुख्य सिद्धांत देखें. |
कोड सैंपल
यहां दिए गए उदाहरण में, loadLimits
की सॉफ्ट कंस्ट्रेंट प्रॉपर्टी का स्ट्रक्चर दिखाया गया है:
{ "loadLimits": { "LOAD_TYPE": { "softMaxLoad": "LOAD_AMOUNT", "costPerUnitAboveSoftMax": COST_PER_UNIT } } }