मांग और सीमाएं लोड करें

loadDemands प्रॉपर्टी को ShipmentModel.shipments.Shipment के तहत और loadLimits प्रॉपर्टी को ShipmentModel.vehicles.Vehicle के तहत तय किया जाता है.

लोड की मांग और सीमाएं, एक तरह की पाबंदी होती हैं. इनका इस्तेमाल क्षमता को मैनेज करने के लिए किया जा सकता है. इस शर्त से, शिपमेंट की ज़रूरी क्षमता और वाहन की ज़्यादा से ज़्यादा क्षमता के बारे में पता चलता है. इससे इन शर्तों के आधार पर, रूट असाइनमेंट को ऑप्टिमाइज़ किया जा सकता है.

मांग और सीमाएं लोड करने से, इन जैसे लक्ष्यों को पूरा करने में मदद मिल सकती है:

  • वाहनों में ज़्यादा सामान ले जाने से रोकना.
  • शिपमेंट पिक अप और डिलीवर किए जाने पर, वाहन के लोड में होने वाले बदलावों पर नज़र रखें.
  • ज़्यादा लोड वाले शिपमेंट के लिए, ज़्यादा ड्यूटी वाले वाहनों को प्राथमिकता दें.

लोड की मांग और सीमाएं, इन प्रॉपर्टी में बताई गई हैं:

  • loadDemands से पता चलता है कि किसी शिपमेंट के लिए कितनी जगह की ज़रूरत है.
  • loadLimits से, किसी वाहन की ज़्यादा से ज़्यादा क्षमता के बारे में पता चलता है.

स्ट्रक्चर

डायग्राम में दिखाए गए तरीके से, लोड की मांग और सीमाएं इस तरह से तय की जाती हैं:

  • loadDemands, Shipment की प्रॉपर्टी है. एक Shipment में लोड की कई मांगें हो सकती हैं.
  • loadLimits, Vehicle की प्रॉपर्टी है. एक Vehicle में कई लोड सीमाएं हो सकती हैं.

Essentials की चेकलिस्ट

यहां दी गई चेकलिस्ट में, लोड करने से जुड़ी संभावित गड़बड़ियों को रोकने के लिए ज़रूरी जानकारी दी गई है. इस सूची से, आपको अपने अनुरोध की पुष्टि करने और जवाब से जुड़ी समस्या हल करने में मदद मिल सकती है.

प्रॉपर्टी

इस सेक्शन में, लोड की मांगों और सीमाओं के लिए प्रॉपर्टी के बारे में बताया गया है. ये प्रॉपर्टी यहां दी गई हैं:

  • लोड टाइप: यह लोड की मांग और सीमाओं के बीच शेयर की गई प्रॉपर्टी है.
  • Load और LoadLimit: ये लोड डिमांड और लोड लिमिट में मौजूद यूनीक प्रॉपर्टी हैं.

लोड टाइप

लोड टाइप, एक स्ट्रिंग की होती है. इसे शिपमेंट और वाहनों, दोनों पर एक जैसा लागू किया जाता है. शिपमेंट की लोड डिमांड के साथ-साथ वाहन की लोड सीमा पर भी एक ही लोड टाइप लागू होता है.

लोड टाइप, प्रोटोकॉल बफ़र मैप टाइप सिंटैक्स का इस्तेमाल करते हैं. लोड टाइप का नाम देते समय, ऐसे आइडेंटिफ़ायर का इस्तेमाल करें जिनसे लोड के टाइप और उसकी यूनिट के बारे में पता चले. उदाहरण के लिए: weightKg, volume_gallons, palletcount या frequencyDaily.

Load और LoadLimit

Load और LoadLimit ऑब्जेक्ट में, शिपमेंट और वाहनों के लिए क्षमता से जुड़ी ज़रूरी शर्तों को तय करने वाली प्रॉपर्टी होती हैं. इस टेबल में इन प्रॉपर्टी के बारे में बताया गया है:

ऑब्जेक्ट Parent प्रॉपर्टी प्रॉपर्टी किस तरह की है प्रॉपर्टी की जानकारी
Load loadDemands amount string (int64 फ़ॉर्मैट) इससे तय किए गए टाइप में, शिपमेंट की क्षमता से जुड़ी ज़रूरी शर्तें तय की जाती हैं.
LoadLimit loadLimits maxLoad string (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 string (int64 फ़ॉर्मैट) किसी वाहन के लिए, ज़्यादा से ज़्यादा लोड का पसंदीदा विकल्प. अगर वाहन का लोड इस वैल्यू से ज़्यादा है, तो शुल्क लगता है.
loadLimits costPerUnitAboveSoftMax संख्या softMaxLoad से ज़्यादा लोड होने पर, हर यूनिट की लागत. softMaxLoad का इस्तेमाल करने पर, यह फ़ील्ड भरना ज़रूरी है. लागत के बारे में ज़्यादा जानने के लिए, लागत मॉडल का मुख्य कॉन्सेप्ट देखें.

कोड सैंपल

यहां दिए गए उदाहरण में, loadLimits की सॉफ्ट कंस्ट्रेंट प्रॉपर्टी का स्ट्रक्चर दिखाया गया है:

{
   "loadLimits": {
        "LOAD_TYPE": {
          "softMaxLoad": "LOAD_AMOUNT",
          "costPerUnitAboveSoftMax": COST_PER_UNIT
        }
      }
}