लागत का मॉडल

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

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

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

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

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

स्ट्रक्चर

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

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

ज़रूरी चीज़ों की चेकलिस्ट

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

प्रॉपर्टी

यहां दी गई टेबल में, लागत मॉडल की प्रॉपर्टी की सूची दी गई है और उनके बारे में बताया गया है.

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 गैलन ईंधन की ज़रूरत होती है. साथ ही, आपके इलाके में एक गैलन ईंधन की कीमत दो डॉलर है.
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: सभी रूट की कुल लागत.