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

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

রুট অপ্টিমাইজেশন API-এর উদ্দেশ্য হল যানবাহনের একটি বহরকে নির্দিষ্ট স্থানে পরিদর্শনের জন্য রুট পরিকল্পনা করা। 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 যানবাহনের নির্দিষ্ট খরচের প্যারামিটার । API-এর জন্য আপনার অনুরোধে কমপক্ষে একটি খরচের প্যারামিটার থাকা বাঞ্ছনীয়, যাতে একটি অপ্টিমাইজড রুট ফেরত দেওয়া যায়। খরচ সম্পর্কে আরও জানতে খরচ মডেল কী ধারণাটি দেখুন।
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"
  }
}