कॉन्टेंट लोड करने की लागत के साथ अनुरोध करना

लोड की लागत के साथ अनुरोध करें, ताकि ऑप्टिमाइज़र यह ध्यान में रख सके कि आपके वाहन एक जगह से दूसरी जगह जाते समय कितना लोड ले जाते हैं. लागत, ShipmentRoute.VehicleLoad की मात्रा और ट्रांज़िशन की दूरी या अवधि, दोनों पर निर्भर करती है. ट्रांज़िशन की दूरी या अवधि का पता लगाने के लिए, cost_per_kilometer या cost_per_traveled_hour का इस्तेमाल किया जाता है.

लोड करने के शुल्क के साथ अनुरोध का एक छोटा उदाहरण

यहां लोड करने की लागत के साथ अनुरोध का एक उदाहरण दिया गया है. इस उदाहरण में, एक वाहन में कुल 1,000 कि॰ग्रा॰ से ज़्यादा weightKg लोड नहीं किया जा सकता. अगर weightKg लोड 500 कि॰ग्रा॰ से ज़्यादा होता है, तो हर किलोमीटर के लिए लागत की एक यूनिट लगती है.

  {
    "model": {
      "vehicles": [{
        "loadLimits": {
          "weightKg": {
            "maxLoad": "1000",
            "costPerKilometer": {
              "loadThreshold": "500",
              "costPerUnitAboveThreshold": 1
            }
          }
        }
      }]
    }
  }
  

इस उदाहरण के लिए, लोड करने का शुल्क इस तरह कैलकुलेट किया जाता है:

cost = max(carried load - load threshold, 0) * distance * cost per unit above threshold

इसलिए, अगर वाहन 10 किलोमीटर तक weightKg का 600 लोड ले जाता है, तो हिसाब इस तरह लगाया जाएगा:

(600 - 500) * 10 * 1 = 1000 cost units

लोड की लागत का इस्तेमाल, कई तरह के कॉन्सेप्ट को मॉडल करने के लिए किया जा सकता है. जैसे, भारी सामान ले जाते समय वाहन में ज़्यादा ऊर्जा का इस्तेमाल होना या वाहन में ज़्यादा सामान लोड करने की वजह से वाहन के टायर घिस जाना.

लोड करने की लागत के साथ अनुरोध का दूसरा उदाहरण

यहां लोड की लागत का एक और उदाहरण दिया गया है. इसमें तय सीमा से ज़्यादा और कम, दोनों तरह के ट्रांज़िट समय के लिए लागत तय की गई है:

  {
    "model": {
      "vehicles": [{
        "loadLimits": {
          "weightLbs": {
            "maxLoad": "1000",
            "costPerTraveledHour": {
              "loadThreshold": "900",
              "costPerUnitAboveThreshold": 10,
              "costPerUnitBelowThreshold": 1
            },
          },
        }
      }]
    }
  }
  

इस उदाहरण के लिए, लोड करने का शुल्क इस तरह कैलकुलेट किया जाता है:

cost = max(carried load - load threshold, 0) * time * cost per unit above threshold
  + min(carried load, load threshold) * time * cost per unit below threshold

इसलिए, अगर कोई वाहन पांच घंटे तक 950 weightLbs लोड करता है, तो इसकी गणना इस तरह की जाएगी:

max(950 - 900, 0) * 5 * 10 + min(950, 900) * 5 * 1 = 7000

इस उदाहरण में, weightLbs लोड करने की लागत के लिए load_threshold, max_load के करीब है. cost_per_unit_above_threshold, वाहन पर ज़्यादा भारी सामान होने पर, यात्रा के हर घंटे के लिए ज़्यादा शुल्क लेता है. इससे उन रास्तों पर जुर्माना लगता है जिनसे वाहन को नुकसान पहुंच सकता है या ज़्यादा ईंधन खर्च हो सकता है. cost_per_unit_below_threshold से, वाहन में ले जाए जा रहे सामान के हर यूनिट वज़न के हिसाब से शुल्क जुड़ जाता है. यह शुल्क, थ्रेशोल्ड तक होता है. इससे पता चलता है कि वाहन में ज़्यादा सामान ले जाने पर, ईंधन की खपत बढ़ जाती है.

अक्सर पूछे जाने वाले सवाल

यहां लोड करने के शुल्क के बारे में अक्सर पूछे जाने वाले कुछ सवाल दिए गए हैं:

सवाल जवाब दें
लोड करने की लागत कहां बताई जाती है? Vehicle.LoadLimit में लोड करने का शुल्क बताएं.
लोड की लागत का मिलान शिपमेंट से कैसे किया जाता है? लोडिंग का शुल्क उन शिपमेंट पर लागू होता है जिनकी लोड डिमांड टाइप, वाहन की लोड लिमिट के टाइप से मेल खाती है. जैसे, वज़न या वॉल्यूम. लोड टाइप, मनमाने स्ट्रिंग होते हैं. इनके बारे में लोड की मांग और सीमाएं में बताया गया है.
लोड करने की लागत को कैसे दिखाया जाता है? लोड करने की लागत को ट्रांज़िशन दूरी या अवधि के हिसाब से दिखाया जाता है. दूरी के हिसाब से शुल्क तय करने के लिए cost_per_kilometer और समय के हिसाब से शुल्क तय करने के लिए cost_per_traveled_hour का इस्तेमाल करें.
लोड करने के शुल्क कब लागू होते हैं? वाहन के लोड की तुलना, लोड की लागत load_threshold से की जाती है. अगर cost_per_unit_above_threshold को चुना जाता है, तो वाहन के लोड के हिसाब से लागत बढ़ जाती है. यह लागत, load_threshold से ज़्यादा होती है. इसके लिए, max(0, load - load_threshold) फ़ॉर्मूला इस्तेमाल किया जाता है. अगर cost_per_unit_below_threshold को चुना जाता है, तो वाहन के लोड के हिसाब से लागत बढ़ जाती है. यह लोड, नीचे दिए गए load_threshold से कम होता है. इसके लिए, min(load, load_threshold) फ़ॉर्मूला इस्तेमाल किया जाता है.
लोड करने के लिए खरीदार से लिए जाने वाले शुल्क के पैरामीटर की डिफ़ॉल्ट वैल्यू क्या हैं? load_threshold, cost_per_unit_above_threshold, और cost_per_unit_below_threshold की वैल्यू डिफ़ॉल्ट रूप से शून्य होती है.
लोड करने की लागत को किन इकाइयों में दिखाया जाता है? लोड करने की लागत को, डाइमेंशनलेस यूनिट में दिखाया जाता है. यह यूनिट, लागत के अन्य सभी पैरामीटर के लिए इस्तेमाल की जाती है. जैसे, global_duration_cost_per_hour या Shipment.penalty_cost.
मुझे जवाब में लोड करने की लागत कहां दिखेगी? लोड करने के लिए चुकाई गई लागत, जवाब वाले मैसेज की metrics और route_metrics प्रॉपर्टी में दिखती है. उदाहरण के लिए, cost_per_kilometer के तौर पर हुई लागत model.vehicles.load_limits.cost_per_kilometer के तौर पर दिखेगी.

लोड करने की लागत के बारे में ज़्यादा जानकारी के लिए, रेफ़रंस दस्तावेज़ देखें (REST, gRPC).

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

OptimizeTours अनुरोध, REST या gRPC का इस्तेमाल करके भी किए जा सकते हैं.

अनुरोध करने से पहले, यहां दिए गए पैरामीटर को अपने एनवायरमेंट के हिसाब से सही वैल्यू से बदलें:

  • पक्का करें कि आपने ऐप्लिकेशन के लिए डिफ़ॉल्ट क्रेडेंशियल कॉन्फ़िगर किए हों. इसके बारे में OAuth का इस्तेमाल करना लेख में बताया गया है.
  • PROJECT_NUMBER_OR_ID को अपने Cloud प्रोजेक्ट नंबर या आईडी पर सेट करें.

    नीचे दिया गया निर्देश, Route Optimization API को OptimizeTours अनुरोध भेजता है और सिंक्रोनस तरीके से जवाब पाता है.

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- << EOM
    {
      "model": {
        "shipments": [
          {
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.789456,
                  "longitude": -122.390192
                },
                "duration": "250s"
              }
            ],
            "penaltyCost": 100.0,
            "loadDemands": {
              "weightKg": {
                "amount": 50
              }
            }
          },
          {
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.789116,
                  "longitude": -122.395080
                },
                "duration": "250s"
              }
            ],
            "penaltyCost": 30.0,
            "loadDemands": {
              "weightKg": {
                "amount": 10
              }
            }
          },
          {
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.795242,
                  "longitude": -122.399347
                },
                "duration": "250s"
              }
            ],
            "penaltyCost": 50.0,
            "loadDemands": {
              "weightKg": {
                "amount": 80
              }
            }
          }
        ],
        "vehicles": [
          {
            "endLocation": {
              "latitude": 37.794465,
              "longitude": -122.394839
            },
            "startLocation": {
              "latitude": 37.794465,
              "longitude": -122.394839
            },
            "costPerHour": 40.0,
            "costPerKilometer": 10.0,
            "loadLimits": {
              "weightKg": {
                "maxLoad": "100",
                "costPerKilometer": {
                  "loadThreshold": "15",
                  "costPerUnitAboveThreshold": 1
                }
              }
            }
          }
        ]
      }
    }
    EOM

अनुरोध पूरा होने के बाद, आपको जवाब मिलेगा.