অনুরোধে সমাধান অন্তর্ভুক্ত করা হয়েছে, যার মধ্যে কোন পরিদর্শন সীমাবদ্ধ করতে হবে এবং কীভাবে সেগুলি সীমাবদ্ধ করতে হবে সে সম্পর্কে তথ্য অন্তর্ভুক্ত রয়েছে।
| JSON উপস্থাপনা |
|---|
{ "routes": [ { object ( |
| ক্ষেত্র | |
|---|---|
routes[] | ইনজেকশনের জন্য দ্রবণের রুট। মূল দ্রবণ থেকে কিছু রুট বাদ দেওয়া হতে পারে। রুট এবং বাদ দেওয়া শিপমেন্টগুলিকে |
skippedShipments[] | ইনজেকশনের জন্য দ্রবণের শিপমেন্ট বাদ দেওয়া হয়েছে। মূল দ্রবণ থেকে কিছু বাদ দেওয়া হতে পারে। |
constraintRelaxations[] | শূন্য বা তার বেশি যানবাহনের জন্য, কখন এবং কতটা সীমাবদ্ধতা শিথিল করতে হবে তা নির্দিষ্ট করে। যদি এই ক্ষেত্রটি খালি থাকে, তাহলে সমস্ত অ-খালি যানবাহনের রুট সম্পূর্ণরূপে সীমাবদ্ধ। |
সীমাবদ্ধতা শিথিলকরণ
একদল যানবাহনের জন্য, পরিদর্শনের ক্ষেত্রে কোন সীমা (সীমা) শিথিল করা হবে এবং কোন স্তরে তা নির্দিষ্ট করে। skipped_shipment ক্ষেত্রে তালিকাভুক্ত চালানগুলি এড়িয়ে যেতে বাধ্য; অর্থাৎ, সেগুলি সম্পাদন করা যাবে না।
| JSON উপস্থাপনা |
|---|
{
"relaxations": [
{
object ( |
| ক্ষেত্র | |
|---|---|
relaxations[] | |
vehicleIndices[] | যেসব যানবাহনের সূচকে ভিজিট সীমাবদ্ধতা যদি |
শিথিলতা
যদি relaxations খালি থাকে, তাহলে routes সমস্ত ভিজিটের শুরুর সময় এবং ক্রম সম্পূর্ণরূপে সীমাবদ্ধ থাকে এবং সেই রুটে কোনও নতুন ভিজিট সন্নিবেশ বা যোগ করা যাবে না। এছাড়াও, routes কোনও গাড়ির শুরু এবং শেষের সময় সম্পূর্ণরূপে সীমাবদ্ধ থাকে, যদি না গাড়িটি খালি থাকে (অর্থাৎ, কোনও ভিজিট নেই এবং মডেলে usedIfRouteIsEmpty মিথ্যাতে সেট করা থাকে)।
relaxations(i).level একটি ভিজিট #j-এ প্রয়োগ করা সীমাবদ্ধতা শিথিলকরণ স্তর নির্দিষ্ট করে যা সন্তুষ্ট করে:
-
route.visits(j).start_time >= relaxations(i).threshold_timeএবং -
j + 1 >= relaxations(i).threshold_visit_count
একইভাবে, গাড়ির স্টার্টটি relaxations(i).level লেভেলে রিল্যাক্সেশন করা হয় যদি এটি পূরণ করে:
-
vehicleStartTime >= relaxations(i).threshold_timeএবং -
relaxations(i).threshold_visit_count == 0এবং গাড়ির প্রান্তrelaxations(i).levelএ relaxed হয় যদি এটি পূরণ করে: -
vehicleEndTime >= relaxations(i).threshold_timeএবং -
route.visits_size() + 1 >= relaxations(i).threshold_visit_count
যদি কোনও ভিজিট thresholdVisitCount বা thresholdTime পূরণ করে তবে একটি রিল্যাক্সেশন লেভেল প্রয়োগ করতে একই level দুটি relaxations যোগ করুন: একটিতে শুধুমাত্র thresholdVisitCount সেট এবং অন্যটিতে শুধুমাত্র thresholdTime সেট। যদি কোনও ভিজিট একাধিক relaxations শর্ত পূরণ করে, তাহলে সবচেয়ে রিল্যাক্সেশন লেভেল প্রযোজ্য। ফলস্বরূপ, গাড়ির শুরু থেকে রুট ভিজিট থেকে গাড়ির শেষ পর্যন্ত, রিল্যাক্সেশন লেভেল আরও রিল্যাক্সেশন হয়ে ওঠে: অর্থাৎ, রুট এগিয়ে যাওয়ার সাথে সাথে রিল্যাক্সেশন লেভেল কমছে না।
যেসব রুট ভিজিট কোনও relaxations সীমার শর্ত পূরণ করে না, সেগুলির সময় এবং ক্রম সম্পূর্ণরূপে সীমাবদ্ধ এবং এই ক্রমগুলিতে কোনও ভিজিট অন্তর্ভুক্ত করা যাবে না। এছাড়াও, যদি কোনও যানবাহনের শুরু বা শেষ কোনও শিথিলের শর্ত পূরণ না করে তবে সময় নির্দিষ্ট করা হয়, যদি না গাড়িটি খালি থাকে।
| JSON উপস্থাপনা |
|---|
{
"level": enum ( |
| ক্ষেত্র | |
|---|---|
level | |
thresholdTime | যে সময়ে বা তার পরে শিথিলকরণ RFC 3339 ব্যবহার করে, যেখানে উৎপন্ন আউটপুট সর্বদা Z-স্বাভাবিক হবে এবং 0, 3, 6 অথবা 9 ভগ্নাংশ সংখ্যা ব্যবহার করবে। "Z" ব্যতীত অন্যান্য অফসেটগুলিও গ্রহণযোগ্য। উদাহরণ: |
thresholdVisitCount | শিথিলকরণ যদি এটি |
স্তর
বিভিন্ন সীমাবদ্ধতা শিথিলকরণ স্তর প্রকাশ করে, যা একটি পরিদর্শনের জন্য প্রয়োগ করা হয় এবং যখন এটি থ্রেশহোল্ড শর্ত পূরণ করে তখন যেগুলি অনুসরণ করে।
নীচের গণনাটি ক্রমবর্ধমান শিথিলকরণের ক্রম অনুসারে।
| এনামস | |
|---|---|
LEVEL_UNSPECIFIED | অন্তর্নিহিত ডিফল্ট শিথিলকরণ স্তর: কোনও সীমাবদ্ধতা শিথিল করা হয়নি, অর্থাৎ, সমস্ত পরিদর্শন সম্পূর্ণরূপে সীমাবদ্ধ। এই মানটি স্পষ্টভাবে |
RELAX_VISIT_TIMES_AFTER_THRESHOLD | পরিদর্শন শুরুর সময় এবং যানবাহন শুরু/শেষের সময় শিথিল করা হবে, তবে প্রতিটি পরিদর্শন একই যানবাহনের সাথে আবদ্ধ থাকবে এবং পরিদর্শন ক্রম অবশ্যই পালন করতে হবে: তাদের মধ্যে বা তাদের আগে কোনও পরিদর্শন সন্নিবেশ করা যাবে না। |
RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD | RELAX_VISIT_TIMES_AFTER_THRESHOLD এর মতোই, কিন্তু ভিজিট ক্রমটিও শিথিল: ভিজিটগুলি কেবল এই যান দ্বারাই করা যেতে পারে, তবে সম্ভাব্যভাবে অকার্যকর হতে পারে। |
RELAX_ALL_AFTER_THRESHOLD | RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD এর মতোই, তবে গাড়িটিও শিথিল: থ্রেশহোল্ড সময়ে বা তার পরে ভিজিট সম্পূর্ণ বিনামূল্যে এবং সম্ভাব্যভাবে অকার্যকর হতে পারে। |