একটি অনুরোধ বার্তা নির্মাণ

রুট অপ্টিমাইজেশান ওভারভিউতে সংক্ষিপ্তভাবে বর্ণনা করা হয়েছে, একটি মৌলিক অনুরোধের মধ্যে রয়েছে মডেল , শিপমেন্ট এবং প্রয়োজনীয় সত্তা হিসাবে যানবাহন :

  • মডেলটি Shipments এবং Vehicles উভয়ই সহ সমগ্র অনুরোধের জন্য সেটিংস এবং সীমাবদ্ধতাগুলি ক্যাপচার করে৷
  • চালানগুলি কার্য বা প্রকৃত চালানের প্রতিনিধিত্ব করে যাতে পিকআপ এবং ডেলিভারি VisitRequest s অন্তর্ভুক্ত থাকে। চালানের স্থানীয় সেটিংস এবং সীমাবদ্ধতা আছে।
  • যানবাহনগুলি যানবাহন, চালক বা কর্মীদের প্রতিনিধিত্ব করে। যানবাহনগুলিরও স্থানীয় সেটিংস এবং সীমাবদ্ধতা রয়েছে৷

প্রতিটি সত্তার বৈশিষ্ট্য গ্রানুলারিটির একটি নির্দিষ্ট স্তরে একটি অপ্টিমাইজেশন সমস্যার অংশ বর্ণনা করে। মডেল-ওয়াইড সীমাবদ্ধতা সমস্ত চালান এবং যানবাহনে প্রয়োগ করা হয়, যখন চালান বা যানবাহনে নির্দিষ্ট সীমাবদ্ধতা এবং বৈশিষ্ট্যগুলি একটি একক চালান বা যানবাহনের জন্য নির্দিষ্ট।

প্রতিটি বার্তা প্রকারের সম্পূর্ণ ডকুমেন্টেশনের জন্য, ShipmentModel ( REST , gRPC ), Shipment ( REST , gRPC ), এবং Vehicle ( REST , gRPC ) বার্তাগুলির জন্য রেফারেন্স ডকুমেন্টেশন দেখুন৷

OptimizeToursRequest বৈশিষ্ট্য

শীর্ষ-স্তরের OptimizeToursRequest বার্তার কিছু সাধারণভাবে ব্যবহৃত বৈশিষ্ট্য ( REST , gRPC ) নিম্নলিখিতগুলি অন্তর্ভুক্ত করে:

  • searchMode নির্দেশ করে যে নির্দিষ্ট সীমাবদ্ধতাগুলিকে সন্তুষ্ট করে এমন প্রথম সমাধানটি ফেরত দিতে হবে বা একটি নির্দিষ্ট সময়সীমার মধ্যে সর্বোত্তম সম্ভাব্য সমাধান খুঁজে বের করতে হবে।
  • considerRoadTraffic রাউটিং এবং ETA অনুমানের জন্য লাইভ ট্র্যাফিক ব্যবহার করা হয় কিনা তা নির্ধারণ করে।
  • 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 তুলনা করা

,

রুট অপ্টিমাইজেশান ওভারভিউতে সংক্ষিপ্তভাবে বর্ণনা করা হয়েছে, একটি মৌলিক অনুরোধের মধ্যে রয়েছে মডেল , শিপমেন্ট এবং প্রয়োজনীয় সত্তা হিসাবে যানবাহন :

  • মডেলটি Shipments এবং Vehicles উভয়ই সহ সমগ্র অনুরোধের জন্য সেটিংস এবং সীমাবদ্ধতাগুলি ক্যাপচার করে৷
  • চালানগুলি কার্য বা প্রকৃত চালানের প্রতিনিধিত্ব করে যাতে পিকআপ এবং ডেলিভারি VisitRequest s অন্তর্ভুক্ত থাকে। চালানের স্থানীয় সেটিংস এবং সীমাবদ্ধতা আছে।
  • যানবাহনগুলি যানবাহন, চালক বা কর্মীদের প্রতিনিধিত্ব করে। যানবাহনগুলিরও স্থানীয় সেটিংস এবং সীমাবদ্ধতা রয়েছে৷

প্রতিটি সত্তার বৈশিষ্ট্য গ্রানুলারিটির একটি নির্দিষ্ট স্তরে একটি অপ্টিমাইজেশন সমস্যার অংশ বর্ণনা করে। মডেল-ওয়াইড সীমাবদ্ধতা সমস্ত চালান এবং যানবাহনে প্রয়োগ করা হয়, যখন চালান বা যানবাহনে নির্দিষ্ট সীমাবদ্ধতা এবং বৈশিষ্ট্যগুলি একটি একক চালান বা যানবাহনের জন্য নির্দিষ্ট।

প্রতিটি বার্তা প্রকারের সম্পূর্ণ ডকুমেন্টেশনের জন্য, ShipmentModel ( REST , gRPC ), Shipment ( REST , gRPC ), এবং Vehicle ( REST , gRPC ) বার্তাগুলির জন্য রেফারেন্স ডকুমেন্টেশন দেখুন৷

OptimizeToursRequest বৈশিষ্ট্য

শীর্ষ-স্তরের OptimizeToursRequest বার্তার কিছু সাধারণভাবে ব্যবহৃত বৈশিষ্ট্য ( REST , gRPC ) নিম্নলিখিতগুলি অন্তর্ভুক্ত করে:

  • searchMode নির্দেশ করে যে নির্দিষ্ট সীমাবদ্ধতাগুলিকে সন্তুষ্ট করে এমন প্রথম সমাধানটি ফেরত দিতে হবে বা একটি নির্দিষ্ট সময়সীমার মধ্যে সর্বোত্তম সম্ভাব্য সমাধান খুঁজে বের করতে হবে।
  • considerRoadTraffic রাউটিং এবং ETA অনুমানের জন্য লাইভ ট্র্যাফিক ব্যবহার করা হয় কিনা তা নির্ধারণ করে।
  • 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 তুলনা করা