এই উদাহরণটি দেখায় যে রুটগুলিকে অগ্রাধিকার দিতে রূপান্তর বৈশিষ্ট্যগুলি কীভাবে ব্যবহার করতে হয় যেখানে কাছাকাছি পিকআপ এবং ডেলিভারি একই গাড়ি দ্বারা এক সময়ের ব্লকে সঞ্চালিত হয়। ট্রানজিশন অ্যাট্রিবিউটস সম্পর্কে আরও জানতে, ট্রানজিশন অ্যাট্রিবিউট সহ মডেল বিজনেস লজিক দেখুন।
এই উদাহরণে:
- শিপমেন্ট A, B, এবং C এর ডেলিভারি একই রাস্তায় একে অপরের কাছাকাছি।
- অতিরিক্ত ডেলিভারি রাস্তার নিচে আরো আছে.
- ডেলিভারির কোনো নির্দিষ্ট ডেলিভারি সময় নেই।
- পরিদর্শনের সময়সূচী নির্বিশেষে, যানবাহনটিকে এই রাস্তাটি দুবার চালাতে হবে: একবার সকালে ডিপো থেকে যাওয়ার পথে এবং সন্ধ্যায় একবার ফেরার পথে।
- A, B, এবং C যখনই সঞ্চালিত হোক না কেন, রুটের সামগ্রিক ভ্রমণ দূরত্ব এবং সময়কাল সবসময় একই থাকে।
এই পরিস্থিতিতে, এবং একটি অনুরোধের জন্য যা শুধুমাত্র প্রতি ঘন্টা খরচ এবং প্রতি কিলোমিটার খরচ ব্যবহার করে, অপ্টিমাইজ করা রুটে A এবং B সকালে এবং C সন্ধ্যায় পরিচালনা করা যেতে পারে এবং সমাধানের খরচ একই হবে যদি সব তিনটি একই সময়ে পরিচালনা করা হয়।
থ্রেশহোল্ড সহ কিলোমিটার প্রতি খরচ
কাছাকাছি ভিজিটগুলিকে গোষ্ঠীভুক্ত করতে, আপনাকে প্রথমে একটি থ্রেশহোল্ড দূরত্ব নির্বাচন করতে হবে৷ এটি হল দুটি দর্শনের মধ্যে সর্বাধিক দূরত্ব যা আপনি কাছাকাছি বলে মনে করেন। এই উদাহরণটি 100 মিটারের একটি থ্রেশহোল্ড ব্যবহার করে যা মোটামুটিভাবে একটি শহুরে এলাকার একটি ব্লকের সাথে মিলে যায়। আপনার ব্যবসার চাহিদা এবং আপনার ড্রাইভারদের পছন্দের সাথে মেলে আপনি থ্রেশহোল্ড বাড়াতে বা কমাতে পারেন।
একে অপরের 100 মিটারের মধ্যে কাছাকাছি পরিদর্শনগুলিকে গোষ্ঠীভুক্ত করতে, আপনি প্রতিটি ট্রানজিশনের প্রথম 100 মিটারের জন্য একটি উচ্চ খরচ এবং পরিবর্তনের যে কোনও অতিরিক্ত মিটারের জন্য একটি কম খরচ সেট করেন৷ যেহেতু প্রথম 100 মিটার সবচেয়ে ব্যয়বহুল, তাই অপ্টিমাইজার 100-মিটার থ্রেশহোল্ডের চেয়ে ছোট ট্রানজিশন ব্যবহার করে সবচেয়ে বেশি সঞ্চয় করে, এমনকি যদি এর অর্থ রুটের সামগ্রিক দৈর্ঘ্য প্রসারিত করা হয়।
খরচ সেট আপ করতে, আপনি নিম্নলিখিত বৈশিষ্ট্য সহ 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#
ট্যাগটি সমস্ত সম্ভাব্য ট্রানজিশনের সাথে মেলে কোনো চালান বা যানবাহন দ্বারা ব্যবহার করা উচিত নয়। আরও তথ্যের জন্য, দেখুন কিভাবে সমস্ত ভিজিট রিকোয়েস্টের সাথে মেলে ।
কিভাবে থ্রেশহোল্ডের নিচে একটি উচ্চ খরচ কাজ করে
এই বিভাগটি দেখায় কিভাবে থ্রেশহোল্ডের নীচের এবং তার উপরে খরচ উদাহরণের পরিস্থিতির বিভিন্ন সমাধানের সামগ্রিক খরচকে প্রভাবিত করে।
সমাধান 1: সেখানে যাওয়ার পথে A, B, ফেরার পথে C সম্পাদন করুন
এই সমাধানে, চালানগুলি এই রাস্তার দুটি ট্রাভার্সালে বিভক্ত হয়। তাদের মধ্যে দুটি প্রথম ট্রাভার্সালে বিতরণ করা হয়, এবং অবশিষ্ট একটি দ্বিতীয়টিতে বিতরণ করা হয়। 5টি রূপান্তর রয়েছে:
উত্তরণ | দূরত্ব | থ্রেশহোল্ডের নিচে | থ্রেশহোল্ডের উপরে | ||
---|---|---|---|---|---|
দূরত্ব | খরচ | দূরত্ব | খরচ | ||
ডিপো → ক | 1000 মি | 100 মি | 5 | 900 মি | 0.9 |
A→B | 50 মি | 50 মি | 2.5 | 0 মি | 0 |
B→অন্য | 1030 মি | 100 মি | 5 | 930 মি | 0.93 |
অন্যান্য→C | 1000 মি | 100 মি | 5 | 900 মি | 0.9 |
সি→ডিপো | 1080 মি | 100 মি | 5 | 980 মি | 0.98 |
মোট | 450 মি | 22.5 | 3710 মি | 3.71 |
সামগ্রিক খরচ প্রতি কিলোমিটারে দুটি খরচের যোগফল গণনা করা হয়:
- থ্রেশহোল্ডের নীচের কিলোমিটার প্রতি খরচ (50) থ্রেশহোল্ডের নীচে মোট ভ্রমণ দূরত্বের গুণ (450 m = 0.45 কিমি),
- থ্রেশহোল্ডের উপরে কিলোমিটার প্রতি খরচ (1) থ্রেশহোল্ডের উপরে মোট ভ্রমণ দূরত্বের গুণ (3710 m = 3.71 কিমি)।
সামগ্রিক খরচ এইভাবে 0.45 * 50 + 3.71 * 1 = 22.5 + 3.71 = 26.21।
সমাধান 2: সেখানে যাওয়ার পথে A, B, C সম্পাদন করুন, ফেরার পথে কিছুই নেই
এই সমাধানে, সমাধান 1 এর বিপরীতে, তিনটি চালানই রাস্তার একটি ট্রাভার্সালের সময় "একটি গ্রুপ হিসাবে" বিতরণ করা হয়। অন্য ট্রাভার্সালে, যানবাহন কিছুতেই থামে না। আবার, 5টি রূপান্তর রয়েছে, তবে তাদের দৈর্ঘ্য এবং রচনাগুলি আলাদা:
উত্তরণ | দূরত্ব | থ্রেশহোল্ডের নিচে | থ্রেশহোল্ডের উপরে | ||
---|---|---|---|---|---|
দূরত্ব | খরচ | দূরত্ব | খরচ | ||
ডিপো → ক | 1000 মি | 100 মি | 5 | 900 মি | 0.9 |
A→B | 50 মি | 50 মি | 2.5 | 0 মি | 0 |
B→C | 30 মি | 30 মি | 1.5 | 0 মি | 0 |
C→অন্য | 1000 মি | 100 মি | 5 | 900 মি | 0.9 |
অন্যান্য→ডিপো | 2080 মি | 100 মি | 5 | 1980 মি | 1.98 |
মোট | 380 মি | 19 | 3780 মি | ৩.৭৮ |
সমাধান 1-এর মতো একই গণনা ব্যবহার করে, সামগ্রিক খরচ হল 0.38 * 50 + 3.78 * 1 = 19 + 3.78 = 22.78, এবং একটি টাইম ব্লকে সমস্ত ভিজিট সম্পাদন করার জন্য দুটি গ্রুপে পারফর্ম করার চেয়ে কম খরচ হয়। আপনি DistanceLimit.cost_per_kilometer_below_soft_max
বাড়িয়ে এই প্রভাবকে শক্তিশালী করতে পারেন।
থ্রেশহোল্ডের নিচে কিলোমিটার প্রতি কম খরচ কেন কাজ করে না
যেহেতু আপনি দীর্ঘ ট্রানজিশনের চেয়ে সংক্ষিপ্ত রূপান্তর পছন্দ করতে চান, তাই আপনি দীর্ঘ ট্রানজিশনের জন্য প্রতি কিলোমিটারে একটি উচ্চ মূল্য দিতে প্রলুব্ধ হতে পারেন এবং সংক্ষিপ্ত রূপান্তরের জন্য কিলোমিটার প্রতি কম খরচ রাখতে পারেন। কিন্তু বাস্তবে এর একটি বিপরীত প্রভাব রয়েছে: যেহেতু ট্রানজিশনের প্রথম 100 মিটার সবচেয়ে সস্তা, তাই অপ্টিমাইজার 100 মিটারের কাছাকাছি বা তার বেশি ট্রানজিশন পছন্দ করে এই "সস্তা" মিটারগুলিকে সর্বাধিক প্রভাবের জন্য ব্যবহার করে।
আপনি দুটি উদাহরণ সমাধানে এই প্রভাব দেখতে পারেন। আপনি যদি থ্রেশহোল্ডের নীচে এবং উপরে কিলোমিটার প্রতি খরচ অদলবদল করেন, তাহলে রুট খরচ পরিবর্তন হবে:
থ্রেশহোল্ডের উপরে উচ্চ খরচ | থ্রেশহোল্ডের নিচে উচ্চ খরচ | |||
---|---|---|---|---|
সমাধান 1 | সমাধান 2 | সমাধান 1 | সমাধান 2 | |
থ্রেশহোল্ডের নিচে কিমি | 0.45 | 0.38 | 0.45 | 0.38 |
থ্রেশহোল্ডের নিচে প্রতি কিমি খরচ | 1.00 | 1.00 | 50.00 | 50.00 |
থ্রেশহোল্ডের উপরে কিমি | 3.71 | ৩.৭৮ | 3.71 | ৩.৭৮ |
থ্রেশহোল্ডের উপরে কিমি প্রতি খরচ | 50.00 | 50.00 | 1.00 | 1.00 |
মোট খরচ | 185.95 | 189.38 | 26.21 | 22.78 |
প্রতিটি সংস্করণের জন্য, দুটি সমাধানের মোট খরচের কমটি গাঢ়ভাবে হাইলাইট করা হয়েছে। আপনি দেখতে পাচ্ছেন যে আপনি যখন থ্রেশহোল্ডের উপরে একটি উচ্চ খরচ ব্যবহার করেন, তখন রুটের মোট খরচ এখন সেই রুটের জন্য বেশি হয় যেখানে ভিজিটগুলিকে গোষ্ঠীভুক্ত করা হয়েছে, যা আপনি যা অর্জন করতে চেয়েছিলেন তার বিপরীত।