ShipmentModel সহ OptimizeToursRequest পাঠায় এবং ShipmentRoute সহ OptimizeToursResponse ফেরত দেয়, যা হল সামগ্রিক খরচ কমানোর জন্য গাড়ির মাধ্যমে পারফর্ম করা রুটের সেট।
ShipmentModel মডেলে প্রধানত Shipment থাকে যা বহন করতে হয় এবং Vehicle থাকে যা Shipment পরিবহনের জন্য ব্যবহার করা যেতে পারে। ShipmentRoute Shipmentকে Vehicleতে অ্যাসাইন করে। আরও নির্দিষ্টভাবে বলতে গেলে, তারা প্রতিটি গাড়ির জন্য একাধিক Visit অ্যাসাইন করে, যেখানে একটি Visit একটি VisitRequest-এর সাথে সম্পর্কিত, যা একটি Shipment-এর জন্য পিকআপ বা ডেলিভারি।
লক্ষ্য হল Vehicle-এ ShipmentRoute-এর অ্যাসাইনমেন্ট প্রদান করা যা মোট খরচ কম করে যেখানে খরচের অনেক কম্পোনেন্ট 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 |
সত্য হলে, Google Maps দূরত্বের পরিবর্তে জিওডেসিক দূরত্ব ব্যবহার করে ভ্রমণের দূরত্ব গণনা করা হবে এবং |
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
IAM সংক্রান্ত অনুমতি
parent রিসোর্সে নিম্নলিখিত IAM অনুমতি প্রয়োজন:
routeoptimization.locations.use
আরও তথ্যের জন্য, IAM ডকুমেন্টেশন দেখুন।