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

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

  • मॉडल, पूरे अनुरोध के लिए सेटिंग और पाबंदियों को कैप्चर करता है. इसमें 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 की तुलना करना