এটি একটি ShipmentModel সম্বলিত একটি OptimizeToursRequest পাঠায় এবং একটি OptimizeToursResponse ফেরত দেয়, যাতে ShipmentRoute গুলো হলো যানবাহন দ্বারা সম্পাদিতব্য রুটগুলোর একটি সেট যা সামগ্রিক খরচ সর্বনিম্ন করে।
একটি ShipmentModel মডেল মূলত সম্পন্ন করার জন্য প্রয়োজনীয় Shipment এবং সেই Shipment পরিবহনের জন্য ব্যবহৃত হতে পারে এমন Vehicle নিয়ে গঠিত। ShipmentRoute Vehicle সাথে Shipment সংযুক্ত করে। আরও নির্দিষ্টভাবে বললে, এগুলো প্রতিটি যানবাহনের সাথে একাধিক Visit সংযুক্ত করে, যেখানে একটি Visit একটি VisitRequest সাথে সঙ্গতিপূর্ণ, যা হলো একটি Shipment জন্য পিকআপ বা ডেলিভারি।
লক্ষ্য হলো Vehicle ShipmentRoute ) বরাদ্দ করা, যা মোট খরচ সর্বনিম্ন করে, যেখানে খরচের বিভিন্ন উপাদান ShipmentModel মডেলে (ShipmentModel) সংজ্ঞায়িত থাকে।
HTTP অনুরোধ
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*/locations/*}:optimizeTours
URL-টিতে gRPC ট্রান্সকোডিং সিনট্যাক্স ব্যবহার করা হয়েছে।
পথের পরামিতি
| প্যারামিটার | |
|---|---|
parent | প্রয়োজনীয়। কল করার জন্য নির্দিষ্ট প্রকল্প বা স্থান। বিন্যাস:
অবস্থান নির্দিষ্ট না করা হলে, একটি অঞ্চল স্বয়ংক্রিয়ভাবে নির্বাচিত হবে। |
অনুরোধকারী শরীর
অনুরোধের মূল অংশে নিম্নলিখিত কাঠামোসহ ডেটা থাকে:
| JSON উপস্থাপনা |
|---|
{ "timeout": string, "model": { object ( |
| ক্ষেত্র | |
|---|---|
timeout | যদি এই টাইমআউট সেট করা থাকে, তাহলে সার্ভার টাইমআউটের সময়সীমা শেষ হওয়ার আগেই অথবা সিনক্রোনাস অনুরোধের জন্য সার্ভারের নির্ধারিত সময়সীমা শেষ হওয়ার আগেই একটি প্রতিক্রিয়া ফেরত দেয়, দুটির মধ্যে যেটি আগে ঘটে। অ্যাসিঙ্ক্রোনাস অনুরোধের ক্ষেত্রে, সার্ভার টাইমআউট শেষ হওয়ার আগেই (সম্ভব হলে) একটি সমাধান তৈরি করবে। |
model | চালান মডেল সমাধান করতে হবে। |
solvingMode | ডিফল্টরূপে, সমাধানের মোড হল |
searchMode | অনুরোধটি সমাধান করতে সার্চ মোড ব্যবহার করা হয়েছে। |
injectedFirstSolutionRoutes[] | পূর্ববর্তী কোনো সমাধানের অনুরূপ একটি প্রথম সমাধান খুঁজে বের করতে অপ্টিমাইজেশন অ্যালগরিদমকে নির্দেশনা দিন। প্রথম সমাধানটি তৈরি করার সময় মডেলটি সীমাবদ্ধ থাকে। কোনো রুটে সম্পাদিত না হওয়া চালানগুলো প্রথম সমাধানে অন্তর্নিহিতভাবে বাদ পড়ে যায়, কিন্তু সেগুলো পরবর্তী সমাধানগুলোতে সম্পাদিত হতে পারে। সমাধানটিকে অবশ্যই বৈধতার কিছু মৌলিক পূর্বশর্ত পূরণ করতে হবে:
যদি প্রবেশ করানো সমাধানটি বাস্তবসম্মত না হয়, তবে আবশ্যিকভাবে কোনো যাচাইকরণ ত্রুটি ফেরত দেওয়া হয় না এবং এর পরিবর্তে অবাস্তবতা নির্দেশক একটি ত্রুটি ফেরত দেওয়া হতে পারে। |
injectedSolutionConstraint | অপ্টিমাইজেশন অ্যালগরিদমকে এমন একটি চূড়ান্ত সমাধান খুঁজে বের করতে বাধ্য করুন যা পূর্ববর্তী কোনো সমাধানের অনুরূপ। উদাহরণস্বরূপ, এটি রুটের সেই অংশগুলিকে স্থির করতে ব্যবহার করা যেতে পারে যেগুলি ইতিমধ্যে সম্পন্ন হয়েছে অথবা যেগুলি সম্পন্ন করা হবে কিন্তু কোনোভাবেই পরিবর্তন করা যাবে না। যদি প্রবেশ করানো সমাধানটি বাস্তবসম্মত না হয়, তবে আবশ্যিকভাবে কোনো যাচাইকরণ ত্রুটি ফেরত দেওয়া হয় না এবং এর পরিবর্তে অবাস্তবতা নির্দেশক একটি ত্রুটি ফেরত দেওয়া হতে পারে। |
refreshDetailsRoutes[] | যদি খালি না থাকে, তবে প্রদত্ত রুটগুলো রিফ্রেশ করা হবে, কিন্তু সেগুলোর পরিদর্শনের ক্রম বা ভ্রমণের সময় অপরিবর্তিত থাকবে; শুধু অন্যান্য বিবরণ আপডেট করা হবে। এটি মডেলটির সমাধান করে না। ২০২০ সালের নভেম্বর মাস থেকে, এটি শুধুমাত্র অ-খালি রুটগুলির পলিলাইনগুলিকে পূরণ করে এবং এর জন্য প্রদত্ত রুটগুলির এই ফিল্ডটি |
interpretInjectedSolutionsUsingLabels | যদি সত্য হয়:
এই ব্যাখ্যাটি যদি সত্য হয়, তাহলে নিম্নলিখিত বিভাগগুলির লেবেলগুলি তাদের নিজ নিজ বিভাগে সর্বাধিক একবার উপস্থিত থাকতে হবে:
ইনজেক্টেড সলিউশনে থাকা কোনো ইনজেক্ট করা সলিউশন থেকে রুট ভিজিট বা সম্পূর্ণ রুট অপসারণ করলে অন্তর্নিহিত সীমাবদ্ধতাগুলোর উপর প্রভাব পড়তে পারে, যার ফলে সলিউশনে পরিবর্তন, ভ্যালিডেশন ত্রুটি বা অসাধ্যতা দেখা দিতে পারে। দ্রষ্টব্য: কলারকে অবশ্যই নিশ্চিত করতে হবে যে প্রতিটি |
considerRoadTraffic | |
populatePolylines | যদি সত্য হয়, তাহলে রেসপন্স |
populateTransitionPolylines | যদি সত্য হয়, তাহলে রেসপন্স |
allowLargeDeadlineDespiteInterruptionRisk | এটি সেট করা থাকলে, অনুরোধটির সর্বোচ্চ ৬০ মিনিটের একটি ডেডলাইন থাকতে পারে (দেখুন https://grpc.io/blog/deadlines )। অন্যথায়, সর্বোচ্চ ডেডলাইন মাত্র ৩০ মিনিট। মনে রাখবেন যে, দীর্ঘস্থায়ী অনুরোধগুলির বাধাগ্রস্ত হওয়ার ঝুঁকি উল্লেখযোগ্যভাবে বেশি (তবে এখনও সামান্য)। |
useGeodesicDistances | যদি সত্য হয়, তাহলে গুগল ম্যাপসের দূরত্বের পরিবর্তে জিওডেসিক দূরত্ব ব্যবহার করে ভ্রমণের দূরত্ব গণনা করা হবে, এবং |
label | এই অনুরোধটি শনাক্ত করতে ব্যবহৃত হতে পারে এমন লেবেল, যা |
geodesicMetersPerSecond | যখন |
maxValidationErrors | ফেরত আসা ভ্যালিডেশন ত্রুটির সংখ্যা সীমিত করে। এই ত্রুটিগুলি সাধারণত একটি INVALID_ARGUMENT ত্রুটি পেলোডের সাথে BadRequest ত্রুটির বিবরণ হিসাবে সংযুক্ত থাকে ( https://cloud.google.com/apis/design/errors#error_details) , যদি না solvingMode=VALIDATE_ONLY হয়: |
প্রতিক্রিয়া সংস্থা
সফল হলে, রেসপন্স বডিতে OptimizeToursResponse এর একটি ইনস্ট্যান্স থাকে।
অনুমোদনের পরিধি
নিম্নলিখিত OAuth স্কোপ প্রয়োজন:
-
https://www.googleapis.com/auth/cloud-platform
আইএএম অনুমতি
parent রিসোর্সে নিম্নলিখিত IAM পারমিশন প্রয়োজন:
-
routeoptimization.locations.use
আরও তথ্যের জন্য, IAM ডকুমেন্টেশন দেখুন।