लागत का मॉडल

लागत की प्रॉपर्टी, ShipmentModel.shipments.Shipment और ShipmentModel.vehicles.Vehicle के तहत तय की जाती हैं

Route Optimization API का मुख्य मकसद, सबसे कम लागत वाले रास्ते ढूंढना है. इसलिए, लागत मॉडल, रूट ऑप्टिमाइज़ेशन के लिए मुख्य ड्राइवर है.

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

लागत मॉडल की प्रॉपर्टी, ऑप्टिमाइज़ेशन के इन मकसद के लिए काम करती हैं:

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

स्ट्रक्चर

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

इस दस्तावेज़ में, सिर्फ़ ज़रूरी लागत मॉडल पैरामीटर हाइलाइट किए गए हैं. लागत के सभी पैरामीटर के बारे में जानने के लिए, रेफ़रंस दस्तावेज़ देखें.

Essentials की चेकलिस्ट

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

प्रॉपर्टी

यहां दी गई टेबल में, लागत मॉडल की प्रॉपर्टी के बारे में बताया गया है.

Parent प्रॉपर्टी का नाम प्रॉपर्टी किस तरह की है हर प्रॉपर्टी की जानकारी
Shipment penaltyCost संख्या शिपमेंट छोड़ दिया गया शिपमेंट स्किप करने पर लगने वाला शुल्क.
अगर शिपमेंट पूरा करने की लागत, पेनल्टी की लागत से ज़्यादा है, तो एपीआई उस शिपमेंट को छोड़ देता है.
  • penaltyCost को सेट करने से, ज़्यादा शुल्क वाले शिपमेंट को प्राथमिकता मिलती है.
  • शिपमेंट penaltyCost की वैल्यू सेट न करने पर, शिपमेंट ज़रूरी हो जाता है.
  • शिपमेंट के लिए penaltyCost को साफ़ तौर पर शून्य पर सेट करने से, एपीआई हमेशा शिपमेंट को छोड़ देता है. हालांकि, ऐसा तब तक होता है, जब तक कि अन्य शर्तों के हिसाब से इसकी ज़रूरत न हो.
Vehicle fixedCost संख्या शिपमेंट अगर इस वाहन का इस्तेमाल शिपमेंट को हैंडल करने के लिए किया जाता है, तो तय की गई लागत लागू होती है.
costPerHour संख्या घंटा हर घंटे के हिसाब से वाहन चलाने की लागत. इसमें यात्रा, इंतज़ार, विज़िट, और ब्रेक का समय शामिल है.
लागत बढ़ने पर, ऑप्टिमाइज़र ऐसे तेज़ रास्ते ढूंढने की कोशिश करता है जो सबसे छोटे रास्ते नहीं हो सकते.
यह प्रॉपर्टी, वाहन के हिसाब से लागत की जानकारी देने वाली एक असरदार प्रॉपर्टी हो सकती है. इसकी वजह यह है कि इसमें आसानी से और पूरी जानकारी दी जाती है.
costPerKilometer संख्या किलोमीटर वाहन से हर किलोमीटर की यात्रा करने की लागत. इसमें ईंधन की लागत या वाहन के रखरखाव की लागत शामिल हो सकती है.
costPerTraveledHour संख्या घंटा सिर्फ़ यात्रा के दौरान, हर घंटे के हिसाब से वाहन चलाने का खर्च. इसमें इंतज़ार, विज़िट, और ब्रेक के समय को शामिल नहीं किया जाता. इससे कम दूरी वाले रास्तों के बजाय, यात्रा में कम समय लगने वाले रास्तों को प्राथमिकता मिलती है.

उदाहरण

इस सेक्शन में, तीन तरह के उदाहरण दिए गए हैं:

कोड सैंपल

यहां दिए गए कोड सैंपल में, Shipment में मौजूद लागत मॉडल की प्रॉपर्टी का स्ट्रक्चर दिखाया गया है:

{
  "model": {
    "shipments": [ ...
      {
        "penaltyCost": PENALTY_COST
      }
    ],
    "vehicles": [ ...
    ]
  }
}

यहां दिए गए कोड सैंपल में, Vehicle में मौजूद लागत मॉडल की प्रॉपर्टी का स्ट्रक्चर दिखाया गया है:

{
  "model": {
    "shipments": [ ...
    ],
    "vehicles": [ ...
      {
        "fixedCost": FIXED_COST,
        "costPerKilometer": KILOMETER_COST,
        "costPerHour": HOUR_COST,
        "costPerTraveledHour": TRAVELED_HOUR_COST
      }
    ]
  }
}

उदाहरण के तौर पर

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

इस उदाहरण में, लागत की एक यूनिट का मतलब एक डॉलर है. इसका मतलब है कि आपके अनुरोध में, लागत मॉडल प्रॉपर्टी की वैल्यू ये हैं:

प्रॉपर्टी वैल्यू स्थिति
penaltyCost 10 इससे पता चलता है कि आपने अपने खरीदारों को, तय किए गए दिन पर कुत्ता न लेने पर कितना जुर्माना लगाया है. अगर आपने तय किए गए दिन कुत्ते को पिकअप नहीं किया, तो ग्राहक को सेवा के कुल शुल्क पर 40 डॉलर की छूट मिलती है.
fixedCost 30 इससे वाहन के लोन के पेमेंट की रोज़ की लागत का पता चलता है. यह लागत हर दिन 30 डॉलर है.
costPerKilometer 0.08 इससे पता चलता है कि आपका वाहन हर किलोमीटर पर कितना पेट्रोल खर्च करता है. आपके वाहन को चलने के लिए, हर किलोमीटर पर 0.04 गैलन ईंधन की ज़रूरत होती है. साथ ही, आपके इलाके में ईंधन की कीमत 2 डॉलर प्रति गैलन है.
costPerHour 27 इससे पता चलता है कि आपने ड्राइवर को गाड़ी चलाने के लिए कितना किराया दिया. आपने ड्राइवर को हर घंटे के हिसाब से 27 डॉलर का पेमेंट किया.
costPerTraveledHour 2.5 इससे पता चलता है कि सड़क पर यात्रा के दौरान, कुत्तों के लिए गाड़ी में एयर कंडीशनिंग की सुविधा इस्तेमाल करने पर, आपको हर घंटे कितना शुल्क देना होगा. जब वाहन नहीं चल रहा हो, तब ड्राइवर पीछे के दरवाज़े खोल सकता है और एयर कंडीशनिंग बंद कर सकता है.

लागत के पैरामीटर के आधार पर, ऑप्टिमाइज़र ऐसे फ़ैसले ले सकता है जिनके बारे में उपयोगकर्ता को पता नहीं चलता. हालांकि, ऑप्टिमाइज़ेशन की मदद से इन फ़ैसलों के बारे में पता लगाया जा सकता है.

इस डायग्राम में एक उदाहरण दिखाया गया है. इसमें ऑप्टिमाइज़र, ट्रैफ़िक से बचने के लिए, बिंदी वाली लाल लाइन के बजाय हरी डैश वाली लाइन से लंबा, लेकिन तेज़ रास्ता चुन सकता है.

वाहन के लिए दो संभावित रास्ते दिखाए गए हैं. एक रास्ते को हरी डैश वाली लाइन से दिखाया गया है. यह रास्ता लंबा है, लेकिन इस पर कोई घटना नहीं हुई है. दूसरे रास्ते को लाल बिंदुओं वाली लाइन से दिखाया गया है. यह रास्ता छोटा है, लेकिन इस पर बीच में कार क्रैश की घटना हुई है.

इस उदाहरण में, दोनों रास्तों के लिए लागत का बैलेंस यहां दिया गया है:

  • हरी डैश वाली लाइन में costPerHour और costPerTraveledHour कम है, क्योंकि यह ट्रैफ़िक से बचने वाला तेज़ रास्ता है. इसलिए, costPerKilometer ज़्यादा होने पर भी, यह किफ़ायती है.

  • लाल रंग की डॉटेड लाइन का costPerKilometer कम है, क्योंकि यह सीधा रास्ता है. हालांकि, ट्रैफ़िक में इंतज़ार के समय की वजह से costPerHour और costPerTraveledHour बहुत ज़्यादा है. इसलिए, यह सबसे महंगा रास्ता है.

ऑप्टिमाइज़र, कम लागत वाले रास्ते उपलब्ध कराने के साथ-साथ, जवाब की प्रॉपर्टी में डिलीवरी के रास्तों की कुल लागत की जानकारी भी देता है.

अनुरोध का उदाहरण

यहां दिए गए उदाहरण में, optimizeTours के एक बुनियादी अनुरोध का स्ट्रक्चर दिखाया गया है. इसमें उदाहरण के तौर पर दिए गए परिदृश्य में सेट की गई वैल्यू शामिल हैं:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.8024,
              "longitude": -122.4058
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
        "penaltyCost": 40
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "endLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "fixedCost": 30,
        "costPerKilometer": 0.08,
        "costPerHour": 27,
        "costPerTraveledHour": 2.5
      }
    ]
  }
}

जवाब की प्रॉपर्टी

OptimizeToursResponse मैसेज में, कीमत की प्रॉपर्टी होती हैं. इनमें किसी रास्ते को पूरा करने में लगने वाले खर्च के बारे में बताया जाता है:

  • metrics.costs: सभी रास्तों के लिए कुल किराया, अनुरोध फ़ील्ड के हिसाब से बांटा गया है.
  • metrics.totalCost: सभी रास्तों के कुल किराये को जोड़कर यह कीमत तय की जाती है.