अनुरोध वाला मैसेज बनाएं

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

  • मॉडल पूरे अनुरोध की सेटिंग और कंस्ट्रेंट को कैप्चर करता है. इसमें Shipments और Vehicles, दोनों शामिल हैं.
  • शिपमेंट, ऐसे टास्क या असल शिपमेंट होते हैं जिनमें पिकअप और डिलीवरी VisitRequest शामिल हों. शिपमेंट की स्थानीय सेटिंग और सीमाएं होती हैं.
  • वाहन, वाहनों, ड्राइवर या कर्मचारियों के बारे में बताते हैं. वाहनों के लिए, लोकल सेटिंग और कंस्ट्रेंट भी होते हैं.

हर इकाई की प्रॉपर्टी, जानकारी के किसी खास लेवल पर, ऑप्टिमाइज़ेशन की समस्या के हिस्से के बारे में बताती हैं. पूरे मॉडल के कंस्ट्रेंट सभी शिपमेंट और वाहनों पर लागू होते हैं, जबकि शिपमेंट या वाहनों पर तय कंस्ट्रेंट और प्रॉपर्टी, एक ही शिपमेंट या वाहन के लिए होते हैं.

हर तरह के मैसेज के बारे में पूरी जानकारी पाने के लिए, ShipmentModel (REST, gRPC), Shipment (REST, gRPC), और Vehicle (REST, gRPC) मैसेज के रेफ़रंस दस्तावेज़ देखें.

OptimizeToursRequest प्रॉपर्टी

टॉप-लेवल OptimizeToursRequest मैसेज (REST, gRPC) की कुछ आम तौर पर इस्तेमाल की जाने वाली प्रॉपर्टी में ये शामिल हैं:

  • searchMode से पता चलता है कि क्या पहले समाधान को लौटाना है जो तय शर्तों को पूरा करता हो या तय समयसीमा में सबसे अच्छा समाधान खोजना हो.
  • considerRoadTraffic तय करता है कि रूटिंग और ईटीए का अनुमान लगाने के लिए, लाइव ट्रैफ़िक का इस्तेमाल किया जाए या नहीं.
  • populateTransitionPolylines तय करता है कि रिस्पॉन्स में पॉलीलाइन को रूट किया जाए या नहीं.

मॉडल के गुण

ShipmentModel मैसेज (REST, gRPC) की कुछ आम तौर पर इस्तेमाल की जाने वाली प्रॉपर्टी में ये शामिल हैं:

  • globalStartTime सभी वाहनों और शिपमेंट के लिए, रास्तों के शुरू होने का सबसे कम समय दिखाता है. कोई भी वाहन इस समय से पहले अपना पहला ट्रांज़िशन और शिपमेंट शुरू नहीं कर सकता.
  • globalEndTime सभी वाहनों और शिपमेंट के लिए, रास्तों के खत्म होने का सबसे हाल का समय दिखाता है. असाइन किए गए सभी शिपमेंट और ट्रांज़िशन, इस समय से पहले पूरे हो जाने चाहिए.

शिपमेंट प्रॉपर्टी

Shipment मैसेज (REST, gRPC) की कुछ आम तौर पर इस्तेमाल की जाने वाली प्रॉपर्टी में ये शामिल हैं:

  • pickups[] और deliveries[] से पता चलता है कि शिपमेंट को कहां से पिक अप या ड्रॉप किया जा सकता है. pickups[] और deliveries[] प्रॉपर्टी, दोनों VisitRequest मैसेज (REST, gRPC) का इस्तेमाल करती हैं.
  • loadDemands वह लोड है जो किसी वाहन को शिपमेंट पूरा करने के लिए ज़रूरी होता है. वाहनों की load_limits (REST, gRPC) प्रॉपर्टी से पता चलता है कि वाहन एक बार में कितना लोड कर सकता है. लोड करने की शर्तों के बारे में ज़्यादा जानने के लिए, लोड की मांग और सीमाएं लेख पढ़ें.
  • penalty_cost से, शिपमेंट को स्किप करने पर होने वाले खर्च का पता चलता है. लागत के बारे में ज़्यादा जानने के लिए, लागत मॉडल के पैरामीटर लेख पढ़ें.

वाहन से जुड़ी प्रॉपर्टी

Vehicle मैसेज (REST, gRPC) की कुछ आम तौर पर इस्तेमाल की जाने वाली प्रॉपर्टी में ये शामिल हैं:

  • startLocation से पता चलता है कि वाहन को अपना रास्ता कहां से शुरू करना चाहिए. यह प्रॉपर्टी ज़रूरी नहीं है. अगर इसके बारे में नहीं बताया जाता है, तो वाहन का रूट उस जगह से शुरू होता है जहां से इसे पहले शिपमेंट के लिए भेजा गया था.
  • endLocation से पता चलता है कि वाहन को अपना रास्ता कहां खत्म करना चाहिए. इस प्रॉपर्टी का इस्तेमाल करना ज़रूरी नहीं है. अगर इसके बारे में नहीं बताया गया है, तो वाहन का रास्ता उस जगह पर खत्म हो जाता है जहां इसे आखिरी बार शिपमेंट के लिए भेजा गया था.
  • startTimeWindows[] से पता चलता है कि कोई वाहन कब अपना रास्ता शुरू कर सकता है. यह प्रॉपर्टी ज़रूरी नहीं है.
  • endTimeWindows[] से पता चलता है कि कोई वाहन कब अपना रास्ता शुरू और खत्म कर सकता है. दोनों प्रॉपर्टी ज़रूरी नहीं हैं.
  • loadLimits से पता चलता है कि वाहन में कितनी क्षमता है, ताकि वह शिपमेंट की लोड से जुड़ी ज़रूरतों को पूरा कर सके. लोड करने से जुड़ी ज़रूरतों और सीमाओं के बारे में ज़्यादा जानने के लिए, लोड की मांग और सीमाएं लेख पढ़ें.

JSON फ़ॉर्मैट में अनुरोध का पूरा उदाहरण इस तरह दिखता है:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "costPerKilometer": 1.0
      }
    ],
   "globalStartTime": "2024-02-13T00:00:00.000Z",
   "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}

OptimizeTours और BatchOptimizeTours दोनों, अनुरोध वाले मैसेज का इस्तेमाल करते हैं, जैसा कि ऊपर दिए गए उदाहरण में बताया गया है. हालांकि, ये दोनों अलग-अलग तरीकों से इस्तेमाल किए जाते हैं. रूट ऑप्टिमाइज़ेशन के लिए अनुरोध करने से पहले, दोनों तरीकों के बीच के अंतर को समझना ज़रूरी है:

OptimizeTours और BatchOptimizeTours की तुलना करना