कुत्तों की मदद से, रूट ऑप्टिमाइज़ेशन का पहला अनुरोध करना

यूरोपियन इकनॉमिक एरिया (ईईए) के डेवलपर

इस दस्तावेज़ में, असल दुनिया के इस्तेमाल के उदाहरण का इस्तेमाल करके, Route Optimization API को पहला अनुरोध भेजने का तरीका बताया गया है.

REST API को आसानी से समझाने के लिए, उदाहरण में एचटीटीपी और JSON का इस्तेमाल किया गया है. हालांकि, आपके प्रोडक्शन एनवायरमेंट के लिए, gRPC का इस्तेमाल करने का सुझाव दिया जाता है, क्योंकि इससे परफ़ॉर्मेंस बेहतर होती है. हालांकि, gRPC को इंस्टॉल करना पड़ता है. ज़्यादा जानकारी के लिए, Route Optimization API की क्लाइंट लाइब्रेरी देखें.

स्थिति

सैन फ़्रांसिस्को का मैप, जिसमें कॉइट टावर, मिशन डलोरेस पार्क, और साउथ सनसेट प्लेग्राउंड पार्क के लिए पिन मौजूद हैं

सैन फ़्रांसिस्को में, सुबह 7 बजे से शाम 7 बजे तक कुत्तों की देखभाल करने की सेवा दी जाती है. आज सुबह, आपको शहर में अलग-अलग जगहों से तीन कुत्तों को पिक करना है और उन्हें अपने डेकेयर सेंटर में लाना है.

बर्नीज़ माउंटेन डॉग और चिहुआहुआ, नियमित क्लाइंट हैं. उन्होंने पिछले हफ़्ते अपॉइंटमेंट बुक किए थे. जर्मन शेफ़र्ड के लिए, आखिरी समय में नया अनुरोध किया गया है. आपको जर्मन शेफ़र्ड को भी शामिल करना है, लेकिन अपने नियमित क्लाइंट को खोए बिना.

आपके पास इस काम के लिए एक वैन है और ड्राइवर को हर घंटे के हिसाब से 27 डॉलर दिए जाते हैं. ड्राइवर और वैन, सुबह 7 बजे डेकेयर सेंटर से निकलती है. सुबह के पिकअप के बाद, दोपहर के खाने के लिए उन्हें दोपहर तक वापस आना होता है.

आज 13 फ़रवरी, 2024 है. इस उदाहरण में, सभी समय सैन फ़्रांसिस्को के स्थानीय समय के हिसाब से हैं. यह फ़रवरी में पैसिफ़िक स्टैंडर्ड टाइम (यूटीसी-8) होता है. ड्राइवर को ये काम करने होते हैं:

  • कॉइट टावर के पास से बर्नीज़ माउंटेन डॉग को पिक अप करें. मालिक ने सुबह 8 बजे से 8:20 बजे के बीच पिकअप करने का अनुरोध किया.
  • साउथ सनसेट प्लेग्राउंड पार्क से चिहुआहुआ को पिक करें. मालिक ने सुबह 7:30 से 9:30 बजे के बीच, पिकअप के लिए ज़्यादा सुविधाजनक समय दिया.
  • लैंड्स एंड से जर्मन शेफ़र्ड को पिक करें. मालिक ने यह भी अनुरोध किया कि पिकअप का समय सुबह 8 बजे से 8:20 बजे के बीच ही हो.
  • कुत्तों को मिशन डलोरेस पार्क में मौजूद डेकेयर सेंटर में छोड़ें. डेकेयर में बच्चों को सुबह 9:30 बजे से 11:30 बजे के बीच छोड़ना ज़रूरी है.

कुत्ते को पिकअप और ड्रॉपऑफ़ करने में पांच मिनट लगते हैं.

लैंड्स एंड, कॉइट टावर से काफ़ी दूर है और दोनों जगहों पर पिकअप का समय एक ही है. इसलिए, ड्राइवर तीनों पिकअप नहीं कर सकता. ऑप्टिमाइज़र को यह चुनना होगा कि किस कुत्ते को छोड़ना है, ताकि कुल लागत (ड्राइवर की मज़दूरी और कुत्ते को छोड़ने पर लगने वाला जुर्माना) कम से कम हो.

शुरू करने से पहले

इस उदाहरण में दिए गए कोड को चलाने के लिए, आपको पहले Route Optimization API सेट अप करें में दिए गए निर्देशों को पूरा करना होगा.

1. रास्ता ऑप्टिमाइज़ करने का तरीका चुनना

Route Optimization API में कई तरीके उपलब्ध हैं. इनमें से कोई भी तरीका चुना जा सकता है. यह इस बात पर निर्भर करता है कि रूट को ऑप्टिमाइज़ करने में आपको किस तरह की समस्या आ रही है.

कुत्तों की देखभाल करने वाली इस सेवा का अनुरोध छोटा और आसान है. इसलिए, optimizeTours जैसे ब्लॉकिंग तरीके का इस्तेमाल करें. इससे छोटे अनुरोधों के नतीजे तुरंत मिलते हैं. Route Optimization API के एंडपॉइंट के बारे में ज़्यादा जानकारी के लिए, कोई एंडपॉइंट चुनें लेख पढ़ें.

optimizeTours तरीके के लिए, एचटीटीपी पोस्ट अनुरोध करने के लिए, इस यूआरएल का इस्तेमाल करें:

https://routeoptimization.googleapis.com/v1/projects/PROJECT_OR_ID:optimizeTours

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

  • timeout पैरामीटर को दो सेकंड पर सेट करें.
  • समयसीमा की सेटिंग को डिफ़ॉल्ट पर छोड़ दें. REST अनुरोधों के लिए, यह समयसीमा 60 सेकंड होती है.

2. अनुरोध के मैसेज का मुख्य हिस्सा बनाना

ब्लॉक करने का तरीका optimizeTours चुनने और टाइम आउट और समयसीमा की सेटिंग तय करने के बाद, आपको अनुरोध मैसेज का मुख्य हिस्सा बनाना होगा.

इस मामले में, अनुरोध एक OptimizeToursRequest मैसेज होता है. इसे REST API में JSON के तौर पर कोड में बदला जाता है.

अनुरोध का मैसेज बनाने के लिए, यह तरीका अपनाएं:

  1. अनुरोध के बुनियादी स्ट्रक्चर से शुरू करें, जो इस तरह है:

    {
      "timeout": ...,
      "model": {
        "shipments": [...],
        "vehicles": [...],
        "globalStartTime": "...",
        "globalEndTime": "..."
      }
    }
    

    स्ट्रक्चर के बारे में ज़्यादा जानने के लिए, बुनियादी स्ट्रक्चर (ShipmentModel, Shipment, और Vehicle) के लिए मुख्य कॉन्सेप्ट की गाइड देखें.

  2. शिपमेंट तय करें. shipments फ़ील्ड में, हर उस कुत्ते के लिए Shipment मैसेज जोड़ें जिसे सुबह पिक और ड्रॉप करना है. यहां आपको कुत्ते के मालिक की पसंद के मुताबिक, कुत्ते को पिकअप करने की जगह और समय के बारे में बताना होगा. साथ ही, डेकेयर सेंटर की जगह और कुत्ते को ड्रॉप करने के समय के बारे में बताना होगा.

    1. हर कुत्ते के लिए, पिकअप के लिए एक VisitRequest और डिलीवरी के लिए दूसरा स्टॉप बनाएं. इस मामले में, डिलीवरी को डेकेयर ड्रॉपऑफ़ कहा जाता है.

      • पिकअप में, arrivalWaypoint को कुत्ते की पिकअप की जगह पर सेट करें. जैसे, बर्नीज़ माउंटेन डॉग के लिए कॉइट टावर, चिहुआहुआ के लिए साउथ सनसेट प्लेग्राउंड पार्क या जर्मन शेफ़र्ड के लिए लैंड्स एंड. timeWindows को मालिक के अनुरोध किए गए पिकअप समय पर सेट करें. जैसे, बर्नीज़ माउंटेन डॉग और जर्मन शेफ़र्ड के लिए सुबह 8 बजे से सुबह 8:20 बजे तक और चिहुआहुआ के लिए सुबह 7:30 बजे से सुबह 9:30 बजे तक.

      • डिलीवरी के लिए, arrivalWaypoint को डेकेयर सेंटर पर सेट करें. साथ ही, timeWindows को ड्रॉपऑफ़ के लिए ज़रूरी समय (सुबह 9:30 बजे से सुबह 11:30 बजे तक) पर सेट करें.

      • सभी पिकअप और डिलीवरी के लिए, duration को पांच मिनट (300s) पर सेट करें, ताकि कुत्तों को गाड़ी में चढ़ाने और उतारने के लिए समय मिल सके.

      टाइम विंडो के बारे में ज़्यादा जानने के लिए, टाइम विंडो लेख पढ़ें.

    2. नियमित ग्राहकों को प्राथमिकता देने के लिए, आपने बर्निस माउंटेन डॉग और चिहुआहुआ के लिए penaltyCost को 1000 पर और जर्मन शेफ़र्ड के लिए 100 पर सेट किया है. जुर्माने की लागत सेट होने पर, ऑप्टिमाइज़र किसी भी कुत्ते को छोड़ सकता है. हालांकि, अगर पाबंदियों की वजह से सभी कुत्तों को पिकअप करना मुमकिन नहीं है, तो वह सबसे पहले जर्मन शेफ़र्ड (जिस पर कम जुर्माना लगता है) को छोड़ने पर विचार करता है.

    3. हर शिपमेंट के लिए आइडेंटिफ़ायर जोड़ने के लिए, label फ़ील्ड का इस्तेमाल किया जा सकता है. जैसे, "बर्नीज़ माउंटेन डॉग", "चिहुआहुआ", और "जर्मन शेफ़र्ड". इससे आपको जवाब में शिपमेंट की पहचान करने में मदद मिल सकती है.

    शिपमेंट तय करने के बारे में ज़्यादा जानकारी के लिए, शिपमेंट देखें.

  3. वाहन तय करना. vehicles फ़ील्ड में, Vehicle मैसेज जोड़ें. इसमें डेकेयर सेंटर से शुरू और खत्म होने वाली एक वैन, ड्राइवर की सैलरी, और वैन के काम करने के समय की जानकारी शामिल करें.

    1. वैन के लिए, दिन की शुरुआत और खत्म होने की जगह के तौर पर, startWaypoint और endWaypoint सेट करें. यह जगह, मिशन डलोरेस पार्क के पास मौजूद डेकेयर सेंटर है.

    2. ऑपरेशन की लागत को कम करने के लिए, आपको अपने कारोबार की लागत की सीमाओं को तय करना होगा. लागत पैरामीटर costPerHour को 27 पर सेट करें. यह वह रकम है जो आपको डॉगी डेकेयर वैन चलाने के लिए ड्राइवर को देनी होती है. लागत के पैरामीटर के बारे में ज़्यादा जानकारी के लिए, लागत मॉडल देखें.

    3. ऑप्टिमाइज़र, वैन के काम करने के घंटों के दौरान ही रास्ता बनाए, इसके लिए वाहन के काम करने का समय तय करें. इस विंडो में, रूट के शुरू और खत्म होने के समय की पाबंदियां सेट की जाती हैं. हर टाइम विंडो का सिर्फ़ आधा हिस्सा तय करके, ऑप्टिमाइज़र को रूट को बाद में शुरू करने या पहले खत्म करने की सुविधा दी जा सकती है:

      • startTimeWindows में startTime को सुबह 7 बजे पर सेट करने का मतलब है कि ड्राइवर सुबह 7 बजे से अपनी शिफ़्ट शुरू कर सकता है. अगर सुबह-सुबह कोई पिकअप नहीं है, तो वह बाद में भी शिफ़्ट शुरू कर सकता है.

      • endTimeWindows में endTime को दोपहर पर सेट करने का मतलब है कि ड्राइवर को दोपहर तक अपनी शिफ़्ट खत्म करनी होगी. आखिरी डिलीवरी पूरी करने के बाद, वे अपनी शिफ़्ट भी खत्म कर सकते हैं.

      विंडो के दूसरे हिस्से को छोड़ने से, ड्राइवर को इंतज़ार नहीं करना पड़ता और उसे रास्ता भी नहीं बदलना पड़ता. टाइम विंडो के बारे में ज़्यादा जानने के लिए, टाइम विंडो लेख पढ़ें.

    वाहनों के बारे में ज़्यादा जानकारी के लिए, वाहन देखें.

  4. ग्लोबल टाइम विंडो सेट करें. ग्लोबल टाइम विंडो से पता चलता है कि वैन, पूरे दिन में किस समयावधि के दौरान आपके डेकेयर के लिए पिकअप और ड्रॉपऑफ़ कर सकती है. इस स्थिति के लिए, 13 फ़रवरी, 2024 को globalStartTime को सुबह 7 बजे और globalEndTime को शाम 7 बजे पर सेट करें. इससे आपके डॉगी डेकेयर के कारोबार के खुले होने का समय दिखेगा.

3. अनुरोध भेजें

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

अनुरोध भेजने से पहले, सैंपल कोड में मौजूद PROJECT_NUMBER_OR_ID को अपने Google Cloud प्रोजेक्ट आईडी से बदलें.

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
{
  "timeout": "2s",
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalWaypoint": {
              "location": {
                "latLng": {
                  "latitude": 37.802395,
                  "longitude": -122.405822
                }
              }
            },
            "timeWindows": [
              {
                "startTime": "2024-02-13T08:00:00-08:00",
                "endTime": "2024-02-13T08:20:00-08:00"
              }
            ],
            "duration": "300s"
          }
        ],
        "deliveries": [
          {
            "arrivalWaypoint": {
              "location": {
                "latLng": {
                  "latitude": 37.759719,
                  "longitude": -122.42798
                }
              }
            },
            "timeWindows": [
              {
                "startTime": "2024-02-13T09:30:00-08:00",
                "endTime": "2024-02-13T11:30:00-08:00"
              }
            ],
            "duration": "300s"
          }
        ],
        "label": "Bernese mountain dog",
        "penaltyCost": 1000
      },
      {
        "pickups": [
          {
            "arrivalWaypoint": {
              "location": {
                "latLng": {
                  "latitude": 37.738067,
                  "longitude": -122.498593
                }
              }
            },
            "timeWindows": [
              {
                "startTime": "2024-02-13T07:30:00-08:00",
                "endTime": "2024-02-13T09:30:00-08:00"
              }
            ],
            "duration": "300s"
          }
        ],
        "deliveries": [
          {
            "arrivalWaypoint": {
              "location": {
                "latLng": {
                  "latitude": 37.759719,
                  "longitude": -122.42798
                }
              }
            },
            "timeWindows": [
              {
                "startTime": "2024-02-13T09:30:00-08:00",
                "endTime": "2024-02-13T11:30:00-08:00"
              }
            ],
            "duration": "300s"
          }
        ],
        "label": "Chihuahua",
        "penaltyCost": 1000
      },
      {
        "pickups": [
          {
            "arrivalWaypoint": {
              "location": {
                "latLng": {
                  "latitude": 37.78018,
                  "longitude": -122.51194
                }
              }
            },
            "timeWindows": [
              {
                "startTime": "2024-02-13T08:00:00-08:00",
                "endTime": "2024-02-13T08:20:00-08:00"
              }
            ],
            "duration": "300s"
          }
        ],
        "deliveries": [
          {
            "arrivalWaypoint": {
              "location": {
                "latLng": {
                  "latitude": 37.759719,
                  "longitude": -122.42798
                }
              }
            },
            "timeWindows": [
              {
                "startTime": "2024-02-13T09:30:00-08:00",
                "endTime": "2024-02-13T11:30:00-08:00"
              }
            ],
            "duration": "300s"
          }
        ],
        "label": "German shepherd",
        "penaltyCost": 100
      }
    ],
    "vehicles": [
      {
        "startWaypoint": {
          "location": {
            "latLng": {
              "latitude": 37.759719,
              "longitude": -122.42798
            }
          }
        },
        "endWaypoint": {
          "location": {
            "latLng": {
              "latitude": 37.759719,
              "longitude": -122.42798
            }
          }
        },
        "costPerHour": 27,
        "startTimeWindows": [
          {
            "startTime": "2024-02-13T07:00:00-08:00"
          }
        ],
        "endTimeWindows": [
          {
            "endTime": "2024-02-13T12:00:00-08:00"
          }
        ]
      }
    ],
    "globalStartTime": "2024-02-13T07:00:00-08:00",
    "globalEndTime": "2024-02-13T19:00:00-08:00"
  }
}
EOM

अनुरोध में इस्तेमाल किए गए पैरामीटर

नीचे दी गई टेबल में, उदाहरण के तौर पर दिए गए अनुरोध के मुख्य हिस्से में इस्तेमाल किए गए पैरामीटर के बारे में बताया गया है. कॉन्टेंट को पैरंट या टेक्स्ट से खोजें के हिसाब से फ़िल्टर किया जा सकता है.

Parent पैरामीटर प्रॉपर्टी का टाइप ब्यौरा
OptimizeToursRequest model ऑब्जेक्ट (ShipmentModel) यह आपके अनुरोध का मुख्य हिस्सा है. यह एक ऐसा ऑब्जेक्ट है जिसमें आपको अपनी पूरी समस्या को तय करना होता है. इसमें, आपको पिक अप और ड्रॉप ऑफ़ किए जाने वाले सभी कुत्तों (shipments) और आपके फ़्लीट में मौजूद वैन (vehicles) की जानकारी शामिल करनी होती है. इसे उस समस्या का पूरा ब्लूप्रिंट मानें जिसे आपको ऑप्टिमाइज़ करना है.
timeout कुल समय यह पैरामीटर बताता है कि जवाब देने से पहले, सर्वर किसी अनुरोध पर ज़्यादा से ज़्यादा कितने समय तक काम करता है. इंतज़ार का समय कम करने के लिए, इस पैरामीटर का इस्तेमाल करें. कुत्तों की देखभाल करने वाली इस सेवा की तरह, छोटे और तुरंत जवाब देने वाले अनुरोधों के लिए, इस वैल्यू को दो सेकंड पर सेट करें.
ShipmentModel shipments[] ऑब्जेक्ट का कलेक्शन (Shipment) यह ऑब्जेक्ट का एक कलेक्शन है. इसमें हर ऑब्जेक्ट, उस कुत्ते को दिखाता है जिसे पिक अप या ड्रॉप ऑफ़ करना है.
vehicles[] ऑब्जेक्ट का कलेक्शन (Vehicle) यह ऑब्जेक्ट का एक कलेक्शन है. इसमें हर ऑब्जेक्ट, आपके बेड़े में मौजूद किसी वाहन के बारे में बताता है. यहां अपने संसाधनों के बारे में बताया जाता है. जैसे, पिकअप और ड्रॉपऑफ़ करने वाली वैन. ऑप्टिमाइज़ किया गया रूट पाने के लिए, आपको कम से कम एक वाहन की जानकारी देनी होगी.
globalStartTime टाइमस्टैम्प यह आपके पूरे मॉडल में किसी भी इवेंट के होने का सबसे शुरुआती समय है. यह पैरामीटर, ऑप्टिमाइज़ेशन की समस्या को समय के हिसाब से कम करता है. यह ट्रैफ़िक और रूटिंग के सटीक हिसाब के लिए ज़रूरी है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, इसे उस शुरुआती समय पर सेट करें जब ड्राइवर, वैन को चला सकता है. यह समय 13 फ़रवरी, 2024 को सुबह 7 बजे है.
globalEndTime टाइमस्टैम्प यह आपके पूरे मॉडल में किसी भी इवेंट के होने का सबसे आखिरी समय है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, इसे उस समय पर सेट करें जब वैन का काम खत्म होने की उम्मीद हो. जैसे, 13 फ़रवरी, 2024 को शाम 7 बजे.
Shipment pickups[] ऑब्जेक्ट का कलेक्शन (VisitRequest) यह शिपमेंट के लिए, पिकअप के सभी संभावित विकल्पों की सूची है. ऑप्टिमाइज़र आपकी समस्या को हल करने के लिए सबसे सही विकल्प चुनता है. कुत्तों की देखभाल करने वाली इस सेवा के लिए, पिकअप की जगहों और समयसीमाओं की सूची बनाएं. हर मालिक ने हर कुत्ते के लिए, पिकअप की जगह और समयसीमा की जानकारी दी है.
deliveries[] ऑब्जेक्ट का कलेक्शन (VisitRequest) यह शिपमेंट के लिए, ड्रॉपऑफ़ के सभी संभावित विकल्पों की सूची है. ऑप्टिमाइज़र आपकी समस्या को हल करने के लिए सबसे सही विकल्प चुनता है. कुत्तों की देखभाल करने वाली इस सुविधा के लिए, कुत्तों की देखभाल करने वाली सुविधा की जगह की जानकारी दें. साथ ही, वह समय बताएं जब ड्राइवर को हर कुत्ते के लिए, दोपहर के खाने के लिए वापस आना होगा.
label स्ट्रिंग यह आपके अनुरोध में मौजूद किसी खास शिपमेंट का आइडेंटिफ़ायर है. अपने अनुरोध में लेबल तय किए जा सकते हैं, ताकि जवाब को आसानी से पढ़ा जा सके. कुत्तों की देखभाल करने वाली इस सेवा के लिए, "चिहुआहुआ", "बर्नीज़ माउंटेन डॉग" या कुत्ते के नाम जैसी जानकारी वाली स्ट्रिंग का इस्तेमाल करें. इससे, एपीआई से मिली जानकारी मिलने पर, समाधान को आपके इनपुट से मैच किया जा सकेगा.
penaltyCost दोगुनी अगर ऑप्टिमाइज़र इस शिपमेंट को छोड़ देता है, तो यह जुर्माना लगाया जाता है. डिफ़ॉल्ट रूप से, शिपमेंट ज़रूरी होते हैं. ऑप्टिमाइज़र, ज़रूरी शिपमेंट को स्किप करने की संख्या को कम करने को प्राथमिकता देता है. वह उन्हें सिर्फ़ तब स्किप करता है, जब कोई दूसरा विकल्प न हो. जुर्माने की लागत सेट करने से, ऑप्टिमाइज़र किसी शिपमेंट को छोड़ सकता है. ऐसा तब होता है, जब शिपमेंट को पूरा करना मुमकिन न हो या उसमें बहुत ज़्यादा खर्च हो. साथ ही, इससे आपको शिपमेंट के बीच प्राथमिकताओं को तय करने में मदद मिलती है. इस मामले में, आपने अपने नियमित क्लाइंट (बर्नीज़ माउंटेन डॉग और चिहुआहुआ) के लिए ज़्यादा पेनल्टी कॉस्ट (1000) सेट की है. साथ ही, आखिरी समय में जर्मन शेफ़र्ड के लिए किए गए अनुरोध के लिए कम पेनल्टी कॉस्ट (100) सेट की है. इससे ऑप्टिमाइज़र को पता चलता है कि नियमित क्लाइंट को प्राथमिकता देनी है. इसलिए, जब वह सभी पिकअप नहीं कर पाता, तो वह सबसे पहले जर्मन शेफ़र्ड को छोड़ने के बारे में सोचता है.
VisitRequest arrivalWaypoint ऑब्जेक्ट (Waypoint) यह रास्ते में किसी खास जगह की यात्रा की जानकारी है. इसे अक्षांश और देशांतर निर्देशांक, जगह के आईडी या हेडिंग का इस्तेमाल करके तय किया जा सकता है. कुत्ते की देखभाल करने वाले इस डेकेयर सेंटर के मामले में, pickups के लिए मालिक की दी गई जगह की जानकारी और deliveries के लिए डेकेयर सेंटर का पता सेट करें.
timeWindows[] ऑब्जेक्ट का कलेक्शन (TimeWindow) यह ऑब्जेक्ट का एक कलेक्शन है, जो पिकअप या डिलीवरी के लिए समय की पाबंदियों को तय करता है. इस स्थिति के लिए, इसका इस्तेमाल करके हर कुत्ते को पिकअप करने की विंडो तय करें. साथ ही, डेकेयर सेंटर में कुत्तों को ड्रॉप करने की विंडो तय करें.
duration कुल समय इस पैरामीटर से, विज़िट की अवधि का पता चलता है. जैसे, लोड या अनलोड होने में लगने वाला समय. इस मामले में, आपने सभी पिकअप और डिलीवरी के लिए पांच मिनट का बफ़र (300s) सेट किया है. इससे ड्राइवर को कुत्तों को गाड़ी में चढ़ाने और उतारने के लिए समय मिल जाता है.
Vehicle startWaypoint ऑब्जेक्ट (Waypoint) यह वाहन के रास्ते की शुरुआती जगह है. इसे अक्षांश और देशांतर निर्देशांक या जगह के आईडी से तय किया जाता है. यह पैरामीटर, ऑप्टिमाइज़र को बताता है कि वाहन को किस जगह से रूट शुरू करना चाहिए. अगर आपने इस वेपॉइंट को तय नहीं किया है, तो ऑप्टिमाइज़र, पिकअप या डिलीवरी में से किसी एक को शुरुआती जगह के तौर पर चुनता है. कुत्तों की देखभाल करने वाली इस सुविधा के लिए, ड्राइवर अपना दिन इसी सुविधा से शुरू करता है. इसलिए, मिशन डोलोरेस पार्क के निर्देशांकों का इस्तेमाल करें.
endWaypoint ऑब्जेक्ट (Waypoint) यह वाहन के रूट की आखिरी मंज़िल होती है. इसे अक्षांश और देशांतर निर्देशांक या जगह के आईडी से तय किया जाता है. यह पैरामीटर, ऑप्टिमाइज़र को बताता है कि वाहन को रास्ता कहां खत्म करना चाहिए. अगर आपने यह वेपॉइंट तय नहीं किया है, तो ऑप्टिमाइज़र किसी पिकअप या डिलीवरी को रूट के आखिरी पॉइंट के तौर पर चुनता है. कुत्ते की देखभाल करने वाली इस सुविधा के लिए, ड्राइवर को दिन के आखिर में देखभाल करने वाली सुविधा पर पहुंचना होगा. इसके लिए, मिशन डोलोरेस पार्क के निर्देशांकों का इस्तेमाल करें.
costPerHour संख्या यह वाहन के इस्तेमाल के हर घंटे के हिसाब से लगने वाली लागत है. इससे कोई फ़र्क़ नहीं पड़ता कि वाहन चल रहा है या रुका हुआ है. कुत्तों की देखभाल करने वाली इस कंपनी के लिए, ड्राइवर की हर घंटे की कमाई का मॉडल बनाने के लिए इसका इस्तेमाल करें.
startTimeWindows[] ऑब्जेक्ट का कलेक्शन (TimeWindow) यह वह समय है जब ड्राइवर अपनी शिफ़्ट शुरू कर सकता है. कुत्तों की देखभाल करने वाले इस कारोबार के लिए, startTime को सुबह 7 बजे के तौर पर तय करें. हालांकि, endTime को शामिल न करें. इससे ऑप्टिमाइज़र को, पहली पिकअप सुबह देर से होने पर, शिफ़्ट की शुरुआत में देरी करने की अनुमति मिलती है. ध्यान दें कि अगर आपने startTimeWindows के लिए endTime नहीं दिया है, तो भी शुरू होने का समय, endTimeWindows के हिसाब से तय होता है. वाहन को रूट खत्म होने से पहले, रूट पर चलना शुरू करना होगा.
endTimeWindows[] ऑब्जेक्ट का कलेक्शन (TimeWindow) यह वह समयसीमा है जिसमें ड्राइवर को रूट पूरा करना होता है. कुत्तों की देखभाल करने वाले इस कारोबार के लिए, endTime को दोपहर के तौर पर तय करें. हालांकि, startTime को शामिल न करें. इससे ड्राइवर, आखिरी ड्रॉपऑफ़ के तुरंत बाद डेकेयर सेंटर पर वापस आ सकता है.

अगला

जवाब को समझना