রুট অপ্টিমাইজেশন ওভারভিউতে সংক্ষেপে বর্ণিত হিসাবে, একটি মৌলিক অনুরোধে প্রয়োজনীয় সত্তা হিসাবে মডেল , শিপমেন্ট এবং যানবাহন থাকে:
- মডেলটি সম্পূর্ণ অনুরোধের জন্য সেটিংস এবং সীমাবদ্ধতা ক্যাপচার করে, যার মধ্যে
ShipmentsএবংVehiclesউভয়ই অন্তর্ভুক্ত। - চালানগুলি এমন কাজ বা প্রকৃত চালানকে প্রতিনিধিত্ব করে যার মধ্যে পিকআপ এবং ডেলিভারি অন্তর্ভুক্ত থাকে
VisitRequestগুলি। চালানের স্থানীয় সেটিংস এবং সীমাবদ্ধতা রয়েছে। - যানবাহন বলতে যানবাহন, চালক বা কর্মীদের বোঝায়। যানবাহনেরও স্থানীয় পরিবেশ এবং সীমাবদ্ধতা রয়েছে।
প্রতিটি সত্তার বৈশিষ্ট্যগুলি একটি নির্দিষ্ট স্তরের গ্রানুলারিটিতে একটি অপ্টিমাইজেশন সমস্যার অংশ বর্ণনা করে। মডেল-ব্যাপী সীমাবদ্ধতাগুলি সমস্ত চালান এবং যানবাহনের ক্ষেত্রে প্রযোজ্য, যখন চালান বা যানবাহনের ক্ষেত্রে নির্দিষ্ট সীমাবদ্ধতা এবং বৈশিষ্ট্যগুলি একটি একক চালান বা যানবাহনের জন্য নির্দিষ্ট।
প্রতিটি বার্তার ধরণের সম্পূর্ণ ডকুমেন্টেশনের জন্য, 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 এর তুলনা করা