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

এই পরিস্থিতিতে এবং এমন অনুরোধের জন্য যা শুধুমাত্র ঘণ্টা-প্রতি-মূল্য এবং কিলোমিটার-প্রতি-মূল্য ব্যবহার করে, অপ্টিমাইজ করা রুটে সকালে A এবং B এবং সন্ধ্যায় C পরিচালনা করা যেতে পারে এবং সমাধানের খরচ একই হবে যেন তিনটিই একই সময়ে পরিচালনা করা হয়।
থ্রেশহোল্ড সহ প্রতি কিলোমিটারের খরচ
আশেপাশে ঘুরে দেখা জায়গা গ্রুপ করতে, আপনাকে প্রথমে একটি থ্রেশহোল্ড দূরত্ব বেছে নিতে হবে। এটি হল দুটি ভিজিটের মধ্যে সর্বোচ্চ দূরত্ব যা আপনি কাছাকাছি বলে মনে করেন। এই উদাহরণে ১০০ মিটারের থ্রেশহোল্ড ব্যবহার করা হয়েছে যা মোটামুটিভাবে শহরাঞ্চলের একটি ব্লকের সমান। আপনার ব্যবসার প্রয়োজন ও ড্রাইভারদের পছন্দ অনুযায়ী আপনি থ্রেশহোল্ড বাড়াতে বা কমাতে পারবেন।
একে অপরের ১০০ মিটারের মধ্যে কাছাকাছি ভিজিট গ্রুপ করতে, আপনি প্রতিটি ট্রানজিশনের প্রথম ১০০ মিটারের জন্য বেশি খরচ এবং ট্রানজিশনের যেকোনও অতিরিক্ত মিটারের জন্য কম খরচ সেট করেন। যেহেতু প্রথম ১০০ মিটার সবচেয়ে বেশি খরচ হয়, তাই অপ্টিমাইজার ১০০ মিটারের থ্রেশহোল্ডের থেকে ছোট ট্রানজিশন ব্যবহার করে সবচেয়ে বেশি সাশ্রয় করে, এমনকি এর অর্থ যদি রুটের সামগ্রিক দৈর্ঘ্য বাড়ানোও হয়।
খরচ সেট-আপ করতে, আপনি নিম্নলিখিত প্রপার্টি সহ
ShipmentModel.transition_attributes
-এ একটি নতুন এন্ট্রি যোগ করেন:
- সব সম্ভাব্য ট্রানজিশন ম্যাচ করতে, এমন একটি ট্যাগ বেছে নিন যা মডেলের কোথাও ব্যবহার করা হয়নি, যেমন
UNUSED_TAG। এই ট্যাগেTransitionAttributes.excluded_src_tagএবংTransitionAttributes.excluded_dst_tagসেট করুন। - থ্রেশহোল্ড দূরত্ব ও খরচ সহ
TransitionAttributes.distance_limitসেট-আপ করুন:- বেছে নেওয়া থ্রেশহোল্ডে
DistanceLimit.soft_max_metersসেট করুন। DistanceLimit.cost_per_kilometer_below_soft_maxকিলোমিটার পিছু খরচ থ্রেশহোল্ডের নিচে সেট করুন।- থ্রেশহোল্ডের উপরে প্রতি কিলোমিটার খরচে
DistanceLimit.cost_per_kilometer_above_soft_maxসেট করুন।
- বেছে নেওয়া থ্রেশহোল্ডে
{
"model": {
"transitionAttributes": [
{
"excluded_dst_tag": "UNUSED_TAG",
"excluded_src_tag": "UNUSED_TAG",
"distanceLimit": {
"softMaxMeters": 100,
"costPerKilometerBelowSoftMax": 50,
"costPerKilometerAboveSoftMax": 1,
}
}
]
}
}
সম্ভাব্য সব ট্রানজিশন ম্যাচ করার জন্য কোনও শিপমেন্ট বা গাড়ি #unused_tag# ট্যাগ ব্যবহার করতে পারবে না। আরও তথ্যের জন্য, কীভাবে সব ভিজিট সংক্রান্ত অনুরোধ
ম্যাচ করতে হয় তা দেখুন।
থ্রেশহোল্ডের নিচে বেশি খরচ কীভাবে কাজ করে
এই বিভাগে দেখানো হয়েছে যে থ্রেশহোল্ডের নিচে ও উপরে খরচ হলে, উদাহরণ পরিস্থিতির বিভিন্ন সমাধানের সামগ্রিক খরচের উপর কীভাবে প্রভাব পড়ে।
সমাধান ১: যাওয়ার পথে A, B এবং ফেরার পথে C করুন
এই সমাধানে, শিপমেন্টগুলি এই রাস্তার দুটি ট্রাভার্সে বিভক্ত। প্রথম ট্রাভার্সেলে দুটি এবং দ্বিতীয় ট্রাভার্সেলে বাকি একটি ডেলিভার করা হয়। ৫টি ট্রানজিশন আছে:
| পরিবর্তন | দূরত্ব | থ্রেশহোল্ডের নিচে | থ্রেশহোল্ডের উপরে | ||
|---|---|---|---|---|---|
| দূরত্ব | খরচ | দূরত্ব | খরচ | ||
| depot →A | ১০০০ মিটার | ১০০ মিটার | 5 | ৯০০ মিটার | ০.৯ |
| A→B | ৫০ মিটার | ৫০ মিটার | ২.৫ | ০ মিটার | 0 |
| B→অন্য | ১০৩০ মিটার | ১০০ মিটার | 5 | ৯৩০ মিটার | 0.93 |
| অন্যান্য→C | ১০০০ মিটার | ১০০ মিটার | 5 | ৯০০ মিটার | ০.৯ |
| C→ডিপো | ১০৮০ মিটার | ১০০ মিটার | 5 | ৯৮০ মিটার | ০.৯৮ |
| মোট | ৪৫০ মিটার | 22.5 | ৩৭১০ মিটার | মার্কিন ডলার (USD) | |
কিলোমিটার প্রতি দুটি খরচের যোগফল হিসেবে সামগ্রিক খরচ গণনা করা হয়:
- থ্রেশহোল্ডের (৫০) নিচে প্রতি কিলোমিটারের খরচকে থ্রেশহোল্ডের নিচে মোট ভ্রমণ করা দূরত্ব (৪৫০ মিটার = ০.৪৫ কিলোমিটার) দিয়ে গুণ করতে হবে,
- থ্রেশহোল্ডের উপরে প্রতি কিলোমিটারের খরচ (১) থ্রেশহোল্ডের উপরে মোট ভ্রমণ করা দূরত্বের (৩৭১০ মি = ৩.৭১ কিমি) সাথে গুণ করা হয়।
তাই, মোট খরচ হল ০.৪৫ * ৫০ + ৩.৭১ * ১ = ২২.৫ + ৩.৭১ = ২৬.২১।
সমাধান ২: যাওয়ার পথে A, B, C করুন, ফেরার পথে কিছু করার দরকার নেই
এই সমাধানে, ১ নম্বর সমাধানের মতো নয়, রাস্তার একটি ট্রাভার্সালের সময় তিনটি শিপমেন্টই "একসাথে গ্রুপ" হিসেবে ডেলিভার করা হয়। অন্য ট্রাভার্সে, গাড়িটি একদমই থামে না। আবার, ৫টি ট্রানজিশন আছে, কিন্তু তাদের দৈর্ঘ্য এবং কম্পোজিশন আলাদা:
| পরিবর্তন | দূরত্ব | থ্রেশহোল্ডের নিচে | থ্রেশহোল্ডের উপরে | ||
|---|---|---|---|---|---|
| দূরত্ব | খরচ | দূরত্ব | খরচ | ||
| depot →A | ১০০০ মিটার | ১০০ মিটার | 5 | ৯০০ মিটার | ০.৯ |
| A→B | ৫০ মিটার | ৫০ মিটার | ২.৫ | ০ মিটার | 0 |
| B→C | ৩০ মিটার | ৩০ মিটার | 1.5 | ০ মিটার | 0 |
| C→অন্যান্য | ১০০০ মিটার | ১০০ মিটার | 5 | ৯০০ মিটার | ০.৯ |
| other→depot | ২০৮০ মিটার | ১০০ মিটার | 5 | ১৯৮০ মিটার | ১.৯৮ |
| মোট | ৩৮০ মিটার | ১৯ | ৩৭৮০ মিটার | ৩.৭৮ | |
সমাধান ১-এর মতো একই গণনা ব্যবহার করে, সামগ্রিক খরচ হল ০.৩৮ * ৫০ +
৩.৭৮ * ১ = ১৯ + ৩.৭৮ = ২২.৭৮ এবং একটি টাইম ব্লকে সব ভিজিট করলে
দুটি গ্রুপে ভিজিট করার চেয়ে কম খরচ হয়। আপনি
DistanceLimit.cost_per_kilometer_below_soft_max
বাড়িয়ে এই এফেক্ট আরও জোরদার করতে পারেন।
থ্রেশহোল্ডের নিচে প্রতি কিলোমিটারে কম খরচ কেন কাজ করে না
যেহেতু আপনি দীর্ঘ ট্রানজিশনের চেয়ে ছোট ট্রানজিশনকে বেশি গুরুত্ব দিতে চান, তাই আপনি দীর্ঘ ট্রানজিশনের জন্য কিলোমিটার পিছু বেশি খরচ এবং ছোট ট্রানজিশনের জন্য কিলোমিটার পিছু কম খরচ রাখতে চাইতে পারেন। কিন্তু এর ফলে বিপরীত প্রভাব পড়ে: যেহেতু ট্রানজিশনের প্রথম ১০০ মিটার সবচেয়ে সস্তা, তাই অপ্টিমাইজার এই "সস্তা" মিটারগুলিকে সবচেয়ে বেশি ব্যবহার করে এবং ১০০ মিটারের কাছাকাছি বা তার বেশি ট্রানজিশনগুলিকে অগ্রাধিকার দেয়।
আপনি এই এফেক্ট দুটি উদাহরণ সমাধানে দেখতে পাবেন। আপনি যদি থ্রেশহোল্ডের নিচে ও উপরে কিলোমিটার প্রতি খরচ অদল-বদল করেন, তাহলে রুটের খরচ পরিবর্তিত হয়:
| থ্রেশহোল্ডের উপরে বেশি খরচ | থ্রেশহোল্ডের নিচে বেশি খরচ | |||
|---|---|---|---|---|
| সমাধান ১ | সমাধান ২ | সমাধান ১ | সমাধান ২ | |
| থ্রেশহোল্ডের নিচে কিমি | ০.৪৫ | ০.৩৮ | ০.৪৫ | ০.৩৮ |
| প্রতি কিমি খরচ থ্রেশহোল্ডের নিচে | ১.০০ | ১.০০ | ৫০.০০ | ৫০.০০ |
| থ্রেশহোল্ডের উপরে কিমি | ৩.৭১ | ৩.৭৮ | মার্কিন ডলার (USD) | ৩.৭৮ |
| থ্রেশহোল্ডের উপরে প্রতি কিমি খরচ | ৫০.০০ | ৫০.০০ | ১.০০ | ১.০০ |
| মোট মূল্য | ১৮৫.৯৫ | ১৮৯.৩৮ | ২৬.২১ | ২২.৭৮ |
প্রতিটি ভার্সনের জন্য, দুটি সমাধানের মোট খরচের মধ্যে যেটি কম সেটি বোল্ড করে হাইলাইট করা হয়েছে। আপনি দেখতে পাবেন যে থ্রেশহোল্ডের উপরে বেশি খরচ ব্যবহার করলে, যে রুটে ভিজিট গ্রুপ করা হয়েছে, সেই রুটের মোট খরচ এখন বেশি, যা আপনি যা অর্জন করতে চেয়েছিলেন তার বিপরীত।