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

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

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

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

পরিস্থিতি

সান ফ্রান্সিসকোর একটি ম্যাপ যেখানে কোয়েট টাওয়ার, মিশন ডলোরেস পার্ক ও সাউথ সানসেট প্লেগ্রাউন্ড পার্কের জন্য পিন রয়েছে

আপনি সান ফ্রান্সিসকোতে সকাল ৭টা থেকে সন্ধ্যা ৭টা পর্যন্ত কুকুরের ডে-কেয়ার পরিষেবা চালান। আজ সকালে, আপনি শহরের বিভিন্ন লোকেশন থেকে তিনটি কুকুরকে নিয়ে আপনার ডে-কেয়ার সেন্টারে আনতে চান।

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

আপনার কাছে কাজের জন্য একটি ভ্যান আছে এবং আপনি ড্রাইভারকে প্রতি ঘন্টায় $২৭ দেন। ড্রাইভার ও ভ্যান সকাল ৭টায় আপনার ডে-কেয়ার সেন্টার থেকে কাজ শুরু করে এবং দুপুরের খাবারের বিরতির জন্য সকালের পিক-আপ শেষ করে দুপুর নাগাদ ফিরে আসতে হবে।

আজ ১৩ ফেব্রুয়ারি, ২০২৪। এই পরিস্থিতিতে সব সময় সান ফ্রান্সিসকোর স্থানীয় সময় অনুযায়ী দেখানো হয়েছে, যা ফেব্রুয়ারি মাসে প্যাসিফিক স্ট্যান্ডার্ড টাইম (UTC-৮) হিসেবে ধরা হয়। ড্রাইভারকে নিম্নলিখিত টাস্কগুলি করতে হবে:

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

কুকুরকে গাড়িতে তোলা বা নামানোর জন্য প্রতিবার পিক-আপ ও ড্রপ-অফ করতে ৫ মিনিট সময় লাগে।

যেহেতু ল্যান্ডস এন্ড, কোইট টাওয়ার থেকে অনেক দূরে এবং তাদের পিক-আপ উইন্ডো একে অপরের সাথে কনফ্লিক্ট করে, তাই ড্রাইভার তিনটি পিক-আপই করতে পারবেন না। অপ্টিমাইজারকে বেছে নিতে হবে যে মোট খরচ (ড্রাইভারের মজুরি এবং কোনও স্কিপ পেনাল্টি) কমাতে কোন কুকুরকে স্কিপ করতে হবে।

শুরু করার আগে

এই উদাহরণে দেখানো পরিস্থিতিতে কোড রান করতে, আপনাকে প্রথমে Route Optimization API সেট-আপ করুন লিঙ্কে দেওয়া নির্দেশাবলী সম্পূর্ণ করতে হবে।

১. আপনার রুট অপ্টিমাইজেশন অ্যাপ্রোচ বেছে নিন

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

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

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

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

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

  • timeout প্যারামিটার ২ সেকেন্ডে সেট করুন।
  • ডেডলাইন সেটিংস ডিফল্ট হিসেবেই রাখুন, যা REST অনুরোধের জন্য ৬০ সেকেন্ড।

২. অনুরোধ মেসেজের বডি তৈরি করা

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

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

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

  1. প্রাথমিক অনুরোধের স্ট্রাকচার দিয়ে শুরু করুন, যা নিচে দেখানো হয়েছে:

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

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

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

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

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

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

      • সব পিক-আপ ও ডেলিভারির জন্য, duration ৫ মিনিট (300s) হিসেবে সেট করুন যাতে কুকুরদের গাড়িতে তোলা ও নামানোর জন্য সময় পাওয়া যায়।

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

    2. নিয়মিত ক্লায়েন্টদের অগ্রাধিকার দিতে, আপনি বার্নিজ মাউন্টেন ডগ ও চিহুয়াহুয়ার জন্য penaltyCost 1000 এবং জার্মান শেফার্ডের জন্য 100 সেট করেছেন। পেনাল্টি খরচ সেট করা থাকলে, অপ্টিমাইজার যেকোনও কুকুরকে বাদ দিতে পারে, তবে সীমাবদ্ধতার কারণে সব কুকুরকে পিক-আপ করা অসম্ভব হলে, এটি প্রথমে জার্মান শেফার্ডকে (যার পেনাল্টি কম) বাদ দেওয়ার কথা বিবেচনা করে।

    3. আপনি প্রতিটি শিপমেন্টের জন্য একটি শনাক্তকারী যোগ করতে label ফিল্ড ব্যবহার করতে পারেন, যেমন "বার্নিজ মাউন্টেন ডগ", "চিহুয়াহুয়া" এবং "জার্মান শেফার্ড"। এটি আপনাকে উত্তরে শিপমেন্ট শনাক্ত করতে সাহায্য করতে পারে।

    শিপমেন্টের সংজ্ঞা সম্পর্কে আরও জানতে, শিপমেন্ট দেখুন।

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

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

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

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

      • startTimeWindows-এ startTime সকাল ৭টায় সেট করার অর্থ হল ড্রাইভার সকাল ৭টা থেকে তার শিফ্ট শুরু করতে পারবেন। সকাল সকাল কোনও পিক-আপ না থাকলে তিনি পরেও শুরু করতে পারেন।

      • endTimeWindows-এ endTime দুপুর পর্যন্ত সেট করার অর্থ হল ড্রাইভারকে দুপুর পর্যন্ত তার শিফ্ট শেষ করতে হবে। এছাড়াও, শেষ ডেলিভারি সম্পূর্ণ করার সাথে সাথেই তারা শিফ্ট শেষ করতে পারবেন।

      উইন্ডোর অন্য অর্ধেক বাদ দিলে ড্রাইভারের অপেক্ষা করার সময় এবং ঘুরে যাওয়ার সময় কমে যায়। টাইম উইন্ডো সম্পর্কে আরও তথ্য পেতে, টাইম উইন্ডো দেখুন।

    গাড়ির সংজ্ঞা সম্পর্কে আরও তথ্যের জন্য, গাড়ি দেখুন।

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

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

নিম্নলিখিতটি হল কুকুরের ডে-কেয়ারের পরিস্থিতির উপর ভিত্তি করে একটি সাধারণ curl অনুরোধ এবং ব্লকিং optimizeTours পদ্ধতি ব্যবহার করে।

অনুরোধ পাঠানোর আগে, স্যাম্পেল কোডে PROJECT_NUMBER_OR_ID-এর জায়গায় আপনার Google Cloud প্রোজেক্ট আইডি লিখুন।

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-13T08:00:00-08:00",
                "endTime": "2024-02-13T08:20:00-08:00"
              }
            ],
            "duration": "300s"
          }
        ],
        "deliveries": [
          {
            "arrivalWaypoint": {
              "location": {
                "latLng": {
                  "latitude": 37.759719,
                  "longitude": -122.42798
                }
              }
            },
            "timeWindows": [
              {
                "startTime": "2024-02-13T09:30:00-08:00",
                "endTime": "2024-02-13T11:30:00-08:00"
              }
            ],
            "duration": "300s"
          }
        ],
        "label": "Bernese mountain dog",
        "penaltyCost": 1000
      },
      {
        "pickups": [
          {
            "arrivalWaypoint": {
              "location": {
                "latLng": {
                  "latitude": 37.738067,
                  "longitude": -122.498593
                }
              }
            },
            "timeWindows": [
              {
                "startTime": "2024-02-13T07:30:00-08:00",
                "endTime": "2024-02-13T09:30:00-08:00"
              }
            ],
            "duration": "300s"
          }
        ],
        "deliveries": [
          {
            "arrivalWaypoint": {
              "location": {
                "latLng": {
                  "latitude": 37.759719,
                  "longitude": -122.42798
                }
              }
            },
            "timeWindows": [
              {
                "startTime": "2024-02-13T09:30:00-08:00",
                "endTime": "2024-02-13T11:30:00-08:00"
              }
            ],
            "duration": "300s"
          }
        ],
        "label": "Chihuahua",
        "penaltyCost": 1000
      },
      {
        "pickups": [
          {
            "arrivalWaypoint": {
              "location": {
                "latLng": {
                  "latitude": 37.78018,
                  "longitude": -122.51194
                }
              }
            },
            "timeWindows": [
              {
                "startTime": "2024-02-13T08:00:00-08:00",
                "endTime": "2024-02-13T08:20:00-08:00"
              }
            ],
            "duration": "300s"
          }
        ],
        "deliveries": [
          {
            "arrivalWaypoint": {
              "location": {
                "latLng": {
                  "latitude": 37.759719,
                  "longitude": -122.42798
                }
              }
            },
            "timeWindows": [
              {
                "startTime": "2024-02-13T09:30:00-08:00",
                "endTime": "2024-02-13T11:30:00-08:00"
              }
            ],
            "duration": "300s"
          }
        ],
        "label": "German shepherd",
        "penaltyCost": 100
      }
    ],
    "vehicles": [
      {
        "startWaypoint": {
          "location": {
            "latLng": {
              "latitude": 37.759719,
              "longitude": -122.42798
            }
          }
        },
        "endWaypoint": {
          "location": {
            "latLng": {
              "latitude": 37.759719,
              "longitude": -122.42798
            }
          }
        },
        "costPerHour": 27,
        "startTimeWindows": [
          {
            "startTime": "2024-02-13T07:00:00-08:00"
          }
        ],
        "endTimeWindows": [
          {
            "endTime": "2024-02-13T12:00:00-08:00"
          }
        ]
      }
    ],
    "globalStartTime": "2024-02-13T07:00:00-08:00",
    "globalEndTime": "2024-02-13T19:00:00-08:00"
  }
}
EOM

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

নিম্নলিখিত সারণীতে উদাহরণ দৃশ্যের অনুরোধের বডিতে ব্যবহৃত অনুরোধের প্যারামিটারগুলি বর্ণনা করা হয়েছে। আপনি পেরেন্ট বা টেক্সট সার্চের মাধ্যমে কন্টেন্ট ফিল্টার করতে পারবেন।

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

পরবর্তী

উত্তর ব্যাখ্যা করা