लोड डिमांड और सीमाएं, एक तरह की पाबंदी हैं. इनका इस्तेमाल करके, कैपेसिटी को मैनेज किया जा सकता है. यह पाबंदी, शिपमेंट के लिए ज़रूरी क्षमता और वाहन की ज़्यादा से ज़्यादा क्षमता के बारे में बताती है. इससे, इन पाबंदियों के आधार पर रूट असाइनमेंट को ऑप्टिमाइज़ किया जा सकता है.
लोड डिमांड और लिमिट की मदद से, इन लक्ष्यों को हासिल किया जा सकता है:
- वाहन में क्षमता से ज़्यादा सामान न भरें.
- शिपमेंट पिक अप और डिलीवर होने पर, वाहन के लोड में होने वाले बदलावों पर नज़र रखें.
- भारी सामान वाले शिपमेंट के लिए, भारी वाहनों को प्राथमिकता दें.
लोड की मांग और सीमाएं, इन प्रॉपर्टी में बताई गई हैं:
loadDemandsसे पता चलता है कि किसी शिपमेंट के लिए कितनी क्षमता की ज़रूरत है.loadLimitsसे, किसी वाहन की ज़्यादा से ज़्यादा क्षमता के बारे में पता चलता है.
स्ट्रक्चर
जैसा कि डायग्राम में दिखाया गया है, लोड की मांग और सीमाएं इस तरह से तय की जाती हैं:
loadDemands,Shipmentकी प्रॉपर्टी है. एकShipmentमें लोड की कई मांगें हो सकती हैं.loadLimits,Vehicleकी प्रॉपर्टी है. एकVehicleके लिए, लोड की कई सीमाएं हो सकती हैं.
ज़रूरी चीज़ों की चेकलिस्ट
नीचे दी गई चेकलिस्ट में, ज़रूरी जानकारी दी गई है. इससे लोड से जुड़ी संभावित गलतियों से बचा जा सकता है. इस सूची की मदद से, अपने अनुरोध की पुष्टि की जा सकती है और जवाब से जुड़ी समस्या को हल किया जा सकता है.
प्रॉपर्टी
इस सेक्शन में, लोड की मांग और सीमाओं के लिए प्रॉपर्टी के बारे में बताया गया है. ये प्रॉपर्टी इस तरह हैं:
- लोड टाइप: लोड की मांग और सीमाओं के बीच शेयर की गई प्रॉपर्टी.
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 } } }