लागत का मॉडल

लागत की प्रॉपर्टी, 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
      }
    ]
  }
}

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

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

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

प्रॉपर्टी मान स्थिति
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: सभी रास्तों के कुल किराये को जोड़कर यह वैल्यू मिलती है.