ভিত্তি কাঠামো (চালনা মডেল, চালান, এবং যানবাহন)

ShipmentModel has one `shipments` object with a `Shipment` message type and one `vehicles` object with a `Vehicle` message type.

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

OptimizeToursRequest অবজেক্টটির মূল কাঠামোটি নিম্নরূপ:

  • model ফিল্ডটি একটি ShipmentModel মেসেজ ধারণ করে, যাতে দুটি কী ফিল্ড থাকে:
    • একটি shipments ফিল্ড, যেখানে এক বা একাধিক Shipment মেসেজ থাকে।
    • একটি vehicles ক্ষেত্র, যেখানে এক বা একাধিক Vehicle বার্তা থাকে।

এই নথিতে নিম্নলিখিত বার্তার প্রকারগুলি বর্ণনা করা হয়েছে:

  • ShipmentModel : এতে চালান, উপলব্ধ যানবাহন এবং তাদের পারস্পরিক সম্পর্ক বর্ণনা করে এমন অন্যান্য অবজেক্টের তালিকা থাকে।
  • Shipment : যানবাহনটি যে স্থানগুলিতে যাবে তার বর্ণনা দেয়। এগুলি সংগ্রহ ও বিতরণের জন্য প্রকৃত প্যাকেজ অথবা এমন স্থান হতে পারে যেখানে যানবাহনের চালক কোনো পরিষেবা প্রদান করেন।
  • Vehicle : পণ্য প্রেরণের স্থানগুলোর মধ্যে পরিবহনের মাধ্যমকে বোঝায়। প্রতিটি যানবাহন একটি প্রকৃত যানবাহন অথবা পায়ে হেঁটে চলাচলকারী কোনো ব্যক্তিকে নির্দেশ করে।

ShipmentModel

ShipmentModel রুট অপটিমাইজেশন সমস্যার উপাদানগুলো থাকে। এতে এমন কিছু চালানের একটি সেট থাকে যা বিভিন্ন সীমাবদ্ধতা বিবেচনা করে এবং সামগ্রিক খরচ সর্বনিম্ন করার মাধ্যমে একগুচ্ছ যানবাহন দ্বারা সম্পন্ন করা যেতে পারে।

নিচের সারণিতে ShipmentModel এর কিছু প্রাসঙ্গিক বৈশিষ্ট্য বর্ণনা করা হলো:

বৈশিষ্ট্য বর্ণনা
shipments এবং vehicles প্রয়োজনীয় অবজেক্ট, যেগুলোতে এক বা একাধিক চালান ও যানবাহনের বিবরণ থাকে।
globalStartTime এবং globalEndTime এটি সেই সময়সীমার শুরু এবং শেষ নির্দেশ করে, যার মধ্যে সমস্ত যানবাহনকে অবশ্যই সমস্ত চালান সম্পন্ন করতে হবে। যদিও এই বৈশিষ্ট্যগুলি বাধ্যতামূলক নয়, তবুও এগুলি অন্তর্ভুক্ত করার পরামর্শ দেওয়া হয়, কারণ সময়ের সীমাবদ্ধতা মেনে চললে অপটিমাইজার সবচেয়ে ভালোভাবে কাজ করে।

ShipmentModel এর প্রোপার্টিগুলোর সম্পূর্ণ তালিকার জন্য রেফারেন্স ডকুমেন্টেশন দেখুন।

ShipmentModel উদাহরণ

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

এই উদাহরণের জন্য, আপনার অনুরোধে ShipmentModel প্রপার্টির মানগুলো হলো নিম্নরূপ:

সম্পত্তি মূল্য বর্ণনা
globalStartTime ২০২৪-০২-১৩T০০:০০:০০.০০০Z ব্যবসায়িক কার্যক্রমের শুরুর তারিখ ও সময়।
globalEndTime ২০২৪-০২-১৪T০৬:০০:০০.০০০Z ব্যবসায়িক সময়ের শেষ তারিখ ও সময়।

নিম্নলিখিতটি হলো উদাহরণ সিনারিওর মানগুলি অন্তর্ভুক্ত করে তৈরি একটি ShipmentModel মেসেজের কোড নমুনা।

{
  "model": {
    "shipments": [
      ...
    ],
    "vehicles": [
      ...
    ],
   "globalStartTime": "2024-02-13T00:00:00.000Z",
   "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}

Shipment

Shipment মেসেজ টাইপটি একটি রুটে ডেলিভারিযোগ্য চালান বা সম্পাদনযোগ্য পরিষেবার বৈশিষ্ট্য কাঠামো নির্ধারণ করে।

A real life shipment equals one `Shipment` message, which is contained within a `shipments` object

চিত্রে যেমন দেখানো হয়েছে:

  • একটি Shipment মেসেজে কোনো বাস্তব চালান বা পরিষেবার সমস্ত তথ্য থাকে।
  • সমস্ত Shipment বার্তা ' shipments ফিল্ডে নির্দিষ্ট করা থাকে।
  • shipments ফিল্ডটিতে এক বা একাধিক Shipment মেসেজ থাকে।

একটি Shipment মেসেজের জন্য অন্তত একটি pickups বা deliveries অবজেক্ট প্রয়োজন। এই অবজেক্টগুলোর সংজ্ঞা নিম্নরূপ:

  • pickups একটি চালানের সংগ্রহের স্থান নির্ধারণ করে।
  • deliveries একটি চালানের ডেলিভারির স্থান নির্ধারণ করে।
  • pickups এবং deliveries উভয় ক্ষেত্রেই একটি VisitRequest মেসেজ টাইপ থাকে, যা অবস্থান এবং অন্যান্য বিবরণ নির্ধারণ করে।

নিম্নলিখিত সারণিতে একটি Shipment মেসেজে pickups এবং deliveries কনফিগারেশনের উপর ভিত্তি করে বিভিন্ন পরিস্থিতি বর্ণনা করা হয়েছে।

দৃশ্যকল্প বর্ণনা
শুধুমাত্র pickups ধরে নেওয়া হচ্ছে আপনি শুধু চালানটি সংগ্রহ করছেন
শুধুমাত্র deliveries ধরে নেওয়া হচ্ছে যে আপনি চালানটি আগে থেকেই লোড করেছেন অথবা কোনো পরিষেবা প্রদান করছেন।
pickups এবং deliveries উভয়ই নির্ধারিত যানবাহনটিকে প্রথমে মালামাল সংগ্রহ এবং তারপর ডেলিভারি সম্পন্ন করতে হবে। শুধুমাত্র যে যানবাহনটি মালামাল সংগ্রহ করেছে, সেটিই ডেলিভারি করতে পারবে।
একাধিক pickups বা deliveries যদি কোনো চালানে pickups বা deliveries জন্য একাধিক বিকল্প তালিকাভুক্ত থাকে, তাহলে অপটিমাইজার খরচ কমানো এবং সীমাবদ্ধতা পূরণের উপর ভিত্তি করে ব্যবহারের জন্য একটি পিকআপ বিকল্প এবং একটি ডেলিভারি বিকল্প বেছে নেয়

Shipment এর প্রপার্টিগুলোর সম্পূর্ণ তালিকার জন্য রেফারেন্স ডকুমেন্টেশন দেখুন।

Shipment উদাহরণ

এই উদাহরণে, আপনার একটি ডগি ডে-কেয়ার পরিষেবা আছে, যেখানে আপনি কুকুরদের তাদের বাড়ি থেকে নিয়ে এসে আপনার ডে-কেয়ারে পৌঁছে দেন। আপনি দুটি কুকুরের পিক-আপ লোকেশন এবং তাদের ডেলিভারি লোকেশন আপনার ব্যবসায় সেট করতে চান:

  • প্রথম কুকুরটির বাড়ি সান ফ্রান্সিসকোর কোয়েট টাওয়ারে অবস্থিত। এই স্থানটির স্থানাঙ্ক হলো অক্ষাংশ ৩৭.৮০২৪ এবং দ্রাঘিমাংশ -১২২.৪০৫৮।
  • দ্বিতীয় কুকুরটির বাড়ি সান ফ্রান্সিসকোর সাউথ সানসেট প্লেগ্রাউন্ড পার্কে অবস্থিত। এই স্থানটির স্থানাঙ্ক হলো অক্ষাংশ ৩৭.৭৩৫৯ এবং দ্রাঘিমাংশ -১২২.৫০১১।
  • আপনার ডগি ডে-কেয়ারটি সান ফ্রান্সিসকোর মিশন ডলোরেস পার্কে অবস্থিত। এই স্থানটির স্থানাঙ্ক হলো অক্ষাংশ ৩৭.৭৫৯৭৭৩ এবং দ্রাঘিমাংশ -১২২.৪২৭০৬৩।

নিম্নে একটি Shipment মেসেজের কোড নমুনা দেওয়া হলো, যেখানে shipments অবজেক্টটিতে উদাহরণ স্থানাঙ্কসহ দুই ধরনের Shipment মেসেজ রয়েছে।

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.8024,
              "longitude": -122.4058
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
      },
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.7359,
              "longitude": -122.5011
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
      }
    ],
    "vehicles": [
    ...
    ]
  }
}

Vehicle

Vehicle মেসেজ টাইপ এমন একটি যানবাহনের বৈশিষ্ট্য কাঠামো নির্ধারণ করে, যা একটি রুটে পণ্য পরিবহন করতে পারে।

A real life vehicle equals one `Vehicle` message, which is contained within a `vehicles` object

চিত্রে যেমন দেখানো হয়েছে:

  • একটি Vehicle বার্তায় একটি বাস্তব যানবাহনের সমস্ত তথ্য থাকে।
  • Vehicle সমস্ত বার্তা ' vehicles ফিল্ডে নির্দিষ্ট করা থাকে।
  • vehicles ফিল্ডটিতে একাধিক Vehicle বার্তা রয়েছে।

নিম্নোক্ত সারণিতে Vehicle কিছু প্রাসঙ্গিক বৈশিষ্ট্য বর্ণনা করা হয়েছে।

বৈশিষ্ট্য বর্ণনা
startLocation এবং endLocation যানবাহনগুলোর শুরু এবং শেষের অবস্থান , যা চূড়ান্ত অপ্টিমাইজ করা রুটের অংশ। যদি তা নির্ধারণ করা না থাকে, তবে এগুলি ডিফল্টভাবে প্রথম চালান পিকআপ এবং শেষ চালান ডেলিভারির অবস্থানে সেট হয়ে যায়।
costPerHour , costPerKilometer , costPerTraveledHour যানবাহন-নির্দিষ্ট খরচের প্যারামিটার । এপিআই থেকে একটি অপ্টিমাইজড রুট পাওয়ার জন্য আপনার অনুরোধে অন্তত একটি খরচের প্যারামিটার থাকা বাঞ্ছনীয়। খরচ সম্পর্কে আরও জানতে ‘কস্ট মডেল’ মূল ধারণাটি দেখুন।
startTimeWindows এবং endTimeWindows একটি যানবাহন কখন একটি রুটে চলাচল করতে পারবে, সেই সময়কাল নির্ধারণ করুন। এই সময়কাল অবশ্যই ShipmentModel এ সেট করা globalStartTime এবং globalEndTime সময়সীমার মধ্যে থাকতে হবে। যদিও এই প্রপার্টিটি আবশ্যক নয়, তবুও এটি অন্তর্ভুক্ত করার পরামর্শ দেওয়া হয়, কারণ সময়ের সীমাবদ্ধতা মেনে চললে অপটিমাইজার সবচেয়ে ভালোভাবে কাজ করে।

Vehicle উদাহরণ

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

এই উদাহরণের জন্য, আপনার অনুরোধে Vehicle প্রপার্টির মানগুলো হলো নিম্নরূপ:

সম্পত্তি মূল্য বর্ণনা
startLocation latitude : ৩৭.৭৫৯৭৭৩, longitude : -১২২.৪২৭০৬৩ আপনার গাড়ির যাত্রাপথের শুরুর স্থানাঙ্ক। এই স্থানাঙ্কগুলো আপনার ডগি ডে-কেয়ারের অবস্থানের সাথে মিলে যায়, যা সান ফ্রান্সিসকোর মিশন ডলোরেস পার্কে অবস্থিত।
endLocation latitude : ৩৭.৭৫৯৭৭৩, longitude : -১২২.৪২৭০৬৩ আপনার গাড়ির যাত্রাপথের শেষ প্রান্তের স্থানাঙ্ক। এই স্থানাঙ্কগুলো আপনার ডগি ডে-কেয়ারের অবস্থানের সাথে মিলে যায়, যা সান ফ্রান্সিসকোর মিশন ডলোরেস পার্কে অবস্থিত।
costPerHour ২৭ আপনার ডগি ডে কেয়ারের গাড়ি চালানোর জন্য আপনি একজন ড্রাইভারকে কত টাকা দেন। আপনি ড্রাইভারকে প্রতি ঘন্টায় ২৭ ডলার দেন।

নিম্নলিখিতটি হলো উদাহরণ পরিস্থিতির মানগুলি অন্তর্ভুক্ত করে তৈরি একটি Vehicle বার্তার কোড নমুনা।

{
  "model": {
    "shipments": [
    ...
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "endLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "costPerHour": 27
      }
    ]
  }
}

Vehicle এর প্রোপার্টিগুলোর সম্পূর্ণ তালিকার জন্য রেফারেন্স ডকুমেন্টেশন দেখুন।

সম্পূর্ণ অনুরোধের উদাহরণ

নিম্নলিখিত কোড নমুনাটি এই নথিতে দেখানো ShipmentModel , Shipment এবং Vehicle উদাহরণগুলিকে একত্রিত করে একটি সম্পূর্ণ অনুরোধের উদাহরণ প্রদান করে।

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.8024,
              "longitude": -122.4058
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
      },
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.7359,
              "longitude": -122.5011
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "endLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "costPerHour": 27
      }
    ],
    "globalStartTime": "2024-02-13T00:00:00.000Z",
    "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}