আপনার প্রথম রুট অপ্টিমাইজেশান অনুরোধ করুন

ইউরোপীয় অর্থনৈতিক অঞ্চল (EEA) ডেভেলপাররা

এই ডকুমেন্টটি আপনাকে দেখায় কিভাবে বাস্তব-বিশ্বের ব্যবহারের ক্ষেত্রে পরিস্থিতি ব্যবহার করে রুট অপ্টিমাইজেশন API-তে আপনার প্রথম অনুরোধ করবেন।

সহজতার জন্য, উদাহরণটি REST API প্রদর্শনের জন্য HTTP এবং JSON ব্যবহার করে। তবে, আপনার উৎপাদন পরিবেশের জন্য, সামগ্রিকভাবে সুপারিশ করা হয় যে এর কর্মক্ষমতা সুবিধার জন্য gRPC ব্যবহার করা উচিত । তবে, gRPC-এর কিছু ইনস্টলেশন প্রয়োজন। আরও তথ্যের জন্য, Route Optimization API ক্লায়েন্ট লাইব্রেরি দেখুন।

দৃশ্যকল্প

কোইট টাওয়ার, মিশন ডলোরেস পার্ক এবং সাউথ সানসেট প্লেগ্রাউন্ড পার্কের জন্য পিন সহ সান ফ্রান্সিসকোর একটি মানচিত্র।

তুমি সান ফ্রান্সিসকোতে সকাল ৭:০০ টা থেকে সন্ধ্যা ৭:০০ টা পর্যন্ত একটি ডগি ডে কেয়ার সার্ভিস চালাও। আজ সকালে, তোমাকে শহরের বিভিন্ন স্থান থেকে দুটি কুকুর নিতে হবে। উভয় কুকুরের মালিকই তোমাকে সকাল ৭:৩০ থেকে ৯:৩০ টা পর্যন্ত পিকআপ উইন্ডো দিয়েছে।

এই কাজের জন্য আপনার একটি ভ্যান আছে, এবং আপনি ড্রাইভারকে প্রতি ঘন্টায় ২৭ ডলার বেতন দেন। ড্রাইভার এবং ভ্যান আপনার ডে-কেয়ার সেন্টারে সকাল ৭:০০ টায় দিন শুরু করে এবং দুপুর ১২:০০ টার মধ্যে সকালের পিকআপ থেকে দুপুরের খাবারের বিরতির জন্য ফিরে আসতে হয়।

আজ ১৩ ফেব্রুয়ারী, ২০২৪, এবং ড্রাইভারের নিম্নলিখিত কাজগুলি রয়েছে:

  • কোইট টাওয়ারের কাছে বার্নিজ পর্বত কুকুরটিকে তুলে নাও।
  • সাউথ সানসেট প্লেগ্রাউন্ড পার্ক থেকে চিহুয়াহুয়াটি সংগ্রহ করুন।
  • মিশন ডোলোরেস পার্কের ডগি ডে কেয়ার সেন্টারে দুটি কুকুরকে ছেড়ে দিন।

আপনার এমন একটি রুট দরকার যা কুকুরদের ভ্যানে কাটানো সময় কমিয়ে আনবে, একই সাথে পিকআপ এবং ড্রপঅফের প্রয়োজনীয়তা পূরণ করবে।

শুরু করার আগে

এই উদাহরণের পরিস্থিতিতে কোডটি চালানোর জন্য, আপনাকে প্রথমে Set up the Route Optimization API এর নির্দেশাবলী সম্পূর্ণ করতে হবে।

১. আপনার রুট অপ্টিমাইজেশন পদ্ধতি বেছে নিন

আপনার অপ্টিমাইজেশন সমস্যার জটিলতার উপর নির্ভর করে রুট অপ্টিমাইজেশন API-তে একাধিক পদ্ধতি রয়েছে যা থেকে আপনি বেছে নিতে পারেন।

যেহেতু এই ডগি ডে-কেয়ার দৃশ্যকল্পটি একটি ছোট এবং সহজবোধ্য অনুরোধ, তাই একটি ব্লকিং পদ্ধতি ব্যবহার করুন, যেমন optimizeTours , যা ছোট অনুরোধের জন্য দ্রুত ফলাফল প্রদান করে। রুট অপ্টিমাইজেশন API পদ্ধতি সম্পর্কে আরও তথ্যের জন্য, সিঙ্ক্রোনাস এবং অ্যাসিঙ্ক্রোনাস এন্ডপয়েন্ট দেখুন।

optimizeTours পদ্ধতিতে HTTP POST অনুরোধ করতে নিম্নলিখিত URL ব্যবহার করুন:

https://routeoptimization.googleapis.com/v1/projects/PROJECT_OR_ID:optimizeTours

অপ্রয়োজনীয় অপেক্ষার সময় কমাতে আপনাকে টাইমআউট এবং ডেডলাইন সেটিংস ছোট করতে হবে। এই ডগি ডে কেয়ারের জন্য, অপ্টিমাইজারের আপনার অনুরোধের প্রতিক্রিয়া জানাতে খুব বেশি সময় প্রয়োজন হয় না, তাই নিম্নলিখিত সেটিংস ব্যবহার করুন:

  • timeout প্যারামিটারটি 2 সেকেন্ডে সেট করুন।
  • REST অনুরোধের জন্য সময়সীমা সেটিংস ডিফল্ট অবস্থায় রেখে দিন, যা 60 সেকেন্ড।

২. অনুরোধ বার্তার মূল অংশ তৈরি করুন

ব্লকিং optimizeTours পদ্ধতিটি বেছে নেওয়ার পরে এবং টাইমআউট এবং ডেডলাইন সেটিংস নির্ধারণ করার পরে, আপনার পরবর্তী পদক্ষেপ হল অনুরোধ বার্তার মূল অংশ তৈরি করা।

এই পরিস্থিতিতে, অনুরোধটি হল একটি OptimizeToursRequest বার্তা যা REST API-তে JSON হিসাবে এনকোড করা হয়েছে।

অনুরোধ বার্তা তৈরি করতে, পরবর্তী পদক্ষেপগুলি অনুসরণ করুন:

  1. মৌলিক অনুরোধ কাঠামো দিয়ে শুরু করুন , যা নিম্নরূপ:

    {
      "timeout": ...,
      "model": {
        "shipments": [...],
        "vehicles": [...],
        "globalStartTime": "...",
        "globalEndTime": "..."
      }
    }
    

    কাঠামো সম্পর্কে আরও তথ্যের জন্য, বেস স্ট্রাকচার (শিপমেন্টমডেল, শিপমেন্ট এবং যানবাহন) এর মূল ধারণা নির্দেশিকাটি দেখুন।

  2. শিপমেন্টের সংজ্ঞা দিন। shipments ক্ষেত্রে, প্রতিটি কুকুরের জন্য একটি Shipment বার্তা যোগ করুন যা সকালে তুলে নেওয়া এবং নামিয়ে দেওয়া প্রয়োজন। এখানে আপনি প্রতিটি কুকুরের মালিকের পছন্দের পিকআপের অবস্থান এবং সময় এবং ডে কেয়ার সেন্টারের অবস্থান এবং কুকুরগুলিকে নামিয়ে দেওয়ার সময় নির্ধারণ করবেন।

    1. প্রতিটি কুকুরের জন্য, পিকআপের জন্য একটি VisitRequest এবং ডেলিভারির জন্য আরেকটি তৈরি করুন, যা এই পরিস্থিতিতে, ডে কেয়ার ড্রপঅফ হিসাবে উল্লেখ করা হয়।

      • পিকআপগুলিতে, কুকুরের পিকআপের অবস্থানে arrivalWaypoint সেট করুন (বার্নিস মাউন্টেন কুকুরের জন্য কোইট টাওয়ার বা চিহুয়াহুয়ার জন্য সাউথ সানসেট প্লেগ্রাউন্ড পার্ক) এবং timeWindows মালিকের অনুরোধকৃত পিকআপের সময় (সকাল ৭:৩০ থেকে সকাল ৯:৩০) পর্যন্ত সেট করুন।

      • ডেলিভারির ক্ষেত্রে, ডে-কেয়ার সেন্টারে arrivalWaypoint এবং প্রয়োজনীয় ড্রপঅফ সময়ের জন্য উইন্ডোজের timeWindows নির্ধারণ করুন (সকাল ৯:৩০ থেকে সকাল ১১:৩০)।

      টাইম উইন্ডো সম্পর্কে আরও তথ্যের জন্য, টাইম উইন্ডো দেখুন।

    2. আপনি প্রতিটি চালানের জন্য একটি শনাক্তকারী যোগ করতে label ক্ষেত্র ব্যবহার করতে পারেন, যেমন "Bernese mountain dog" এবং "Chihuahua"। এটি আপনাকে প্রতিক্রিয়ায় চালানগুলি সনাক্ত করতে সাহায্য করতে পারে।

    চালান সংজ্ঞায়িত করার বিষয়ে আরও তথ্যের জন্য, চালান দেখুন।

  3. যানবাহনের সংজ্ঞা দিন। vehicles ক্ষেত্রে, আপনার একটি ভ্যানের জন্য একটি Vehicle বার্তা যোগ করুন যেখানে ডে-কেয়ার সেন্টার শুরু এবং শেষ বিন্দু, চালকের বেতনের খরচ এবং ভ্যানের পরিচালনার সময় উল্লেখ করুন।

    1. ভ্যানের জন্য startWaypoint এবং endWaypoint দিনের শুরু এবং শেষের স্থানগুলিতে সেট করুন, যা মিশন ডোলোরেস পার্কের কাছে ডে কেয়ার সেন্টার।

    2. আপনার পরিচালনার খরচ কমাতে, আপনাকে অবশ্যই আপনার ব্যবসার খরচের সীমাবদ্ধতা নির্ধারণ করতে হবে। খরচের প্যারামিটার costPerHour 27 এ সেট করুন, যা হল ডগি ডে কেয়ার ভ্যান চালানোর জন্য আপনি ড্রাইভারকে কত টাকা দেন। খরচের প্যারামিটার সম্পর্কে আরও তথ্যের জন্য, খরচ মডেল দেখুন।

    3. ভ্যানের কার্যক্ষম সময়ের মধ্যে অপ্টিমাইজার একটি রুট তৈরি করে তা নিশ্চিত করার জন্য, startTimeWindows ড্রাইভারের ভ্যান চালানো শুরু করার জন্য গ্রহণযোগ্য পরিসরে এবং endTimeWindows ড্রাইভারকে ডে-কেয়ার সেন্টারে ফিরে যাওয়ার সময় গ্রহণযোগ্য পরিসরে নির্ধারণ করুন। সময় উইন্ডো সম্পর্কে আরও তথ্যের জন্য, সময় উইন্ডো দেখুন।

  4. একটি বিশ্বব্যাপী সময় নির্ধারণ করুন। বিশ্বব্যাপী সময় নির্ধারণ করুন যে ভ্যানটি সারাদিন আপনার ডে-কেয়ারের জন্য কখন পিকআপ এবং ড্রপঅফ করতে পারে তার সময়সীমা। এই পরিস্থিতিতে, ১৩ ফেব্রুয়ারী, ২০২৪ এর জন্য globalStartTime সকাল ৭:০০ টা এবং globalEndTime সন্ধ্যা ৭:০০ টা নির্ধারণ করুন, যা আপনার ডগি ডে-কেয়ারের কর্মক্ষম সময়কে প্রতিনিধিত্ব করে।

৩. অনুরোধটি পাঠান

ডগি ডে-কেয়ারের দৃশ্যপটের উপর ভিত্তি করে একটি সহজ curl অনুরোধ নিচে দেওয়া হল এবং ব্লকিং optimizeTours পদ্ধতি ব্যবহার করা হয়েছে।

অনুরোধ পাঠানোর আগে, নমুনা কোডে PROJECT_NUMBER_OR_ID লিখে আপনার Google Cloud Project ID দিন।

curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
--data @- << EOM
{
  "timeout": 2s,
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalWaypoint": {
              "location": {
                "latLng": {
                  "latitude": 37.802395,
                  "longitude": -122.405822
                }
              }
            },
            "timeWindows": [
              {
                "startTime": "2024-02-13T07:30:00Z",
                "endTime": "2024-02-13T09:30:00Z"
              }
            ]
          }
        ],
        "deliveries": [
          {
            "arrivalWaypoint": {
              "location": {
                "latLng": {
                  "latitude": 37.760202,
                  "longitude": -122.426796
                }
              }
            },
            "timeWindow": [
              {
                "startTime": "2024-02-13T09:30:00Z",
                "endTime": "2024-02-13T11:30:00Z"
              }
            ]
          }
        ],
        "label": "Bernese mountain dog"
      },
      {
        "pickups": [
          {
            "arrivalWaypoint": {
              "location": {
                "latLng": {
                  "latitude": 37.738067,
                  "longitude": -122.498593
                }
              }
            },
            "timeWindows": [
              {
                "startTime": "2024-02-13T07:30:00Z",
                "endTime": "2024-02-13T09:30:00Z"
              }
            ]
          }
        ],
        "deliveries": [
          {
            "arrivalWaypoint": {
              "location": {
                "latLng": {
                  "latitude": 37.760202,
                  "longitude": -122.426796
                }
              }
            },
            "timeWindow": [
              {
                "startTime": "2024-02-13T09:30:00Z",
                "endTime": "2024-02-13T11:30:00Z"
              }
            ]
          }
        ],
        "label": "Chihuahua"
      }
    ],
    "vehicles": [
      {
        "startWaypoint": {
          "location": {
            "latLng": {
              "latitude": 37.760202,
              "longitude": -122.426796
            }
          }
        },
        "endWaypoint": {
          "location": {
            "latLng": {
              "latitude": 37.760202,
              "longitude": -122.426796
            }
          }
        },
        "costPerHour": 27,
        "startTimeWindows": [
          {
            "startTime": "2024-02-13T07:00:00Z",
            "endTime": "2024-02-13T07:15:00Z"
          }
        ],
        "endTimeWindows": [
          {
            "startTime": "2024-02-13T11:45:00Z",
            "endTime": "2024-02-13T12:00:00Z"
          }
        ]
      }
    ],
    "globalStartTime": "2024-02-13T07:00:00Z",
    "globalEndTime": "2024-02-13T19:00:00Z"
  }
}
EOM

অনুরোধে ব্যবহৃত অনুরোধের প্যারামিটার

নিম্নলিখিত টেবিলটি উদাহরণ দৃশ্যকল্পের অনুরোধের মূল অংশে ব্যবহৃত অনুরোধের পরামিতিগুলি বর্ণনা করে। আপনি মূল বা পাঠ্য অনুসন্ধানের মাধ্যমে বিষয়বস্তু ফিল্টার করতে পারেন।

অভিভাবক প্যারামিটার সম্পত্তির ধরণ বিবরণ
OptimizeToursRequest model বস্তু ( ShipmentModel ) এটিই আপনার অনুরোধের মূল বিষয়। এটি এমন একটি একক বিষয় যেখানে আপনি আপনার সম্পূর্ণ সমস্যাটি সংজ্ঞায়িত করতে পারবেন, যার মধ্যে আপনার প্রয়োজনীয় সমস্ত কুকুর ( shipments ) এবং আপনার বহরের ভ্যান ( vehicles ) অন্তর্ভুক্ত থাকবে। এটিকে আপনার যে সমস্যার সমাধান করতে হবে তার সম্পূর্ণ নীলনকশা হিসেবে ভাবুন।
timeout সময়কাল এই প্যারামিটারটি একটি অনুরোধে সার্ভার সর্বোচ্চ কত সময় কাজ করবে এবং কোন প্রতিক্রিয়া জানাবে তা নির্দিষ্ট করে। আপনার অপেক্ষার সময় কমাতে এই প্যারামিটারটি ব্যবহার করুন। ছোট এবং দ্রুত অনুরোধের জন্য, যেমন এই ডগি ডে কেয়ার দৃশ্যকল্পের জন্য, এই মানটি 2s এ সেট করুন।
ShipmentModel shipments[] বস্তুর অ্যারে ( Shipment ) এটি এমন কিছু বস্তুর সমাহার যেখানে প্রতিটি বস্তু এমন একটি কুকুরকে প্রতিনিধিত্ব করে যাকে তুলে নিতে বা ফেলে দিতে হবে।
vehicles[] বস্তুর বিন্যাস ( Vehicle ) এটি এমন কিছু বস্তুর সমাহার যেখানে প্রতিটি বস্তু আপনার বহরের একটি যানবাহনকে সংজ্ঞায়িত করে। এখানে আপনি আপনার সম্পদের বর্ণনা দেন, যেমন পিকআপ এবং ড্রপঅফ পরিচালনাকারী ভ্যান। একটি অপ্টিমাইজড রুট পেতে আপনাকে কমপক্ষে একটি যানবাহন সংজ্ঞায়িত করতে হবে।
globalStartTime টাইমস্ট্যাম্প আপনার পুরো মডেলে যেকোনো ঘটনা ঘটার জন্য এটিই সবচেয়ে দ্রুততম সময়। এই প্যারামিটারটি অপ্টিমাইজেশন সমস্যাটিকে সময়ের সাথে সাথে সংকুচিত করে, যা সঠিক ট্র্যাফিক এবং রাউটিং গণনার জন্য অত্যন্ত গুরুত্বপূর্ণ। এই ডগি ডে কেয়ারের জন্য, ড্রাইভার দিনের জন্য ভ্যান চালানোর জন্য এটিকে সবচেয়ে দ্রুততম সময় নির্ধারণ করুন, যা ১৩ ফেব্রুয়ারী, ২০২৪ তারিখে সকাল ৭:০০ টা।
globalEndTime টাইমস্ট্যাম্প আপনার পুরো মডেলে যেকোনো ঘটনার জন্য এটিই সর্বশেষ সম্ভাব্য সময়। এই ডগি ডে-কেয়ার দৃশ্যকল্পের জন্য, ভ্যানটি কখন তার কার্যক্রম শেষ করবে বলে আশা করা হচ্ছে, তা নির্ধারণ করুন, যা ১৩ ফেব্রুয়ারী, ২০২৪ তারিখে সন্ধ্যা ৭:০০ টা।
Shipment pickups[] বস্তুর অ্যারে ( VisitRequest ) এটি চালানের জন্য সম্ভাব্য সকল পিকআপ বিকল্পের একটি তালিকা। অপ্টিমাইজার আপনার সমস্যা সমাধানের জন্য সেরাটি বেছে নেয়। এই ডগি ডে-কেয়ার দৃশ্যকল্পের জন্য, প্রতিটি মালিক প্রতিটি কুকুরের জন্য যে পিকআপ অবস্থান এবং সময়সূচী প্রদান করেছেন তা তালিকাভুক্ত করুন।
deliveries[] বস্তুর অ্যারে ( VisitRequest ) এটি শিপমেন্টের জন্য সম্ভাব্য সকল ড্রপঅফ বিকল্পের একটি তালিকা। অপ্টিমাইজার আপনার সমস্যা সমাধানের জন্য সেরাটি বেছে নেয়। এই ডগি ডে কেয়ার দৃশ্যকল্পের জন্য, ডগি ডে কেয়ার সুবিধার অবস্থান এবং প্রতিটি কুকুরের জন্য দুপুরের খাবারের জন্য ড্রাইভারকে কখন ফিরে আসতে হবে তার সময়সূচী তালিকাভুক্ত করুন।
label স্ট্রিং এটি আপনার অনুরোধে একটি নির্দিষ্ট চালানের জন্য একটি শনাক্তকারী। প্রতিক্রিয়াটি পড়া সহজ করার জন্য আপনি আপনার অনুরোধে লেবেল নির্দিষ্ট করতে পারেন। এই ডগি ডে কেয়ার দৃশ্যকল্পের জন্য, API প্রতিক্রিয়া পাওয়ার সময় আপনার ইনপুটের সাথে সমাধানের সাথে মিল রাখতে "চিহুয়াহুয়া", "বার্নিজ মাউন্টেন ডগ" বা কুকুরের নামের মতো একটি বর্ণনামূলক স্ট্রিং ব্যবহার করুন।
VisitRequest arrivalWaypoint[] অবজেক্ট ( Waypoint ) এটি রুটে একটি নির্দিষ্ট ভ্রমণের অবস্থান। আপনি অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক, একটি স্থান আইডি, অথবা একটি শিরোনাম ব্যবহার করে এটি নির্ধারণ করতে পারেন। এই ডগি ডে কেয়ার পরিস্থিতিতে, pickups জন্য মালিকের দ্বারা প্রদত্ত অবস্থান এবং deliveries জন্য ডে কেয়ার সেন্টারের ঠিকানায় এটি সেট করুন।
timeWindows[] বস্তুর অ্যারে ( TimeWindow ) এটি এমন কিছু বস্তুর সমাহার যা পিকআপ বা ডেলিভারির জন্য সময়সীমা নির্ধারণ করে। এই পরিস্থিতিতে, প্রতিটি কুকুরের জন্য পিকআপ উইন্ডো এবং ডে কেয়ার সেন্টারে কুকুর নামানোর জন্য গ্রহণযোগ্য উইন্ডো নির্ধারণ করতে এটি ব্যবহার করুন।
Vehicle startWaypoint[] অবজেক্ট ( Waypoint ) এটি গাড়ির রুটের শুরুর অবস্থান, যা অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক বা একটি স্থান আইডি দিয়ে সংজ্ঞায়িত করা হয়। এই প্যারামিটারটি অপ্টিমাইজারকে বলে যে গাড়িটি কোথায় রুট শুরু করবে। আপনি যদি এই ওয়েপয়েন্টটি সংজ্ঞায়িত না করেন, তাহলে অপ্টিমাইজার পিকআপ বা ডেলিভারিগুলির মধ্যে একটিকে শুরুর অবস্থান হিসাবে বেছে নেয়। এই ডগি ডে কেয়ার দৃশ্যকল্পের জন্য, যেহেতু ড্রাইভার ডে কেয়ার সুবিধায় দিন শুরু করে, মিশন ডোলোরেস পার্কের স্থানাঙ্কগুলি ব্যবহার করুন।
endWaypoint[] অবজেক্ট ( Waypoint ) এটি গাড়ির রুটের চূড়ান্ত গন্তব্য, যা অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক বা স্থান আইডি দিয়ে সংজ্ঞায়িত করা হয়। এই প্যারামিটারটি অপ্টিমাইজারকে বলে যে গাড়িটি কোথায় রুটটি শেষ করবে। আপনি যদি এই ওয়েপয়েন্টটি সংজ্ঞায়িত না করেন, তাহলে অপ্টিমাইজার রুটের শেষ হিসাবে পিকআপ বা ডেলিভারিগুলির মধ্যে একটি বেছে নেয়। এই ডগি ডে কেয়ার দৃশ্যকল্পের জন্য, যেহেতু ড্রাইভারকে ডে কেয়ার সুবিধায় দিন শেষ করতে হবে, মিশন ডোলোরেস পার্কের স্থানাঙ্কগুলি ব্যবহার করুন।
costPerHour সংখ্যা এটি হল একটি গাড়ি ব্যবহারের প্রতি ঘন্টার জন্য খরচ, তা সে ভ্রমণে থাকুক বা থামিয়ে থাকুক না কেন। এই ডগি ডে কেয়ারের দৃশ্যকল্পের জন্য, একজন ড্রাইভারের ঘণ্টায় মজুরি মডেল করতে এটি ব্যবহার করুন।
startTimeWindows[] বস্তুর অ্যারে ( TimeWindow ) সকালের কুকুর তোলার জন্য ভ্যান চালানো শুরু করার জন্য চালকের জন্য এটিই গ্রহণযোগ্য সময়।
endTimeWindows[] বস্তুর অ্যারে ( TimeWindow ) ড্রাইভারের ভ্যান চালানো শেষ করে ডগি ডে কেয়ার সেন্টারে ফিরে যাওয়ার জন্য এটিই গ্রহণযোগ্য সময়।

পরবর্তী

প্রতিক্রিয়া ব্যাখ্যা করুন