উদ্দেশ্য

উদ্দেশ্য হলো এমন কিছু প্যারামিটার যা সাধারণ অপটিমাইজেশনের লক্ষ্যগুলো আগে থেকেই নির্ধারণ করে দেয়, যেমন—সবচেয়ে কম ভ্রমণ দূরত্ব বা সময়কাল, সময়মতো ডেলিভারি, এবং ড্রাইভারদের মধ্যে কাজের ভারসাম্য রক্ষা করা। এর উদ্দেশ্য হলো, কস্ট প্যারামিটারগুলোর জটিলতা এবং সম্পূর্ণ কাস্টমাইজেশন শেখার আগেই ডেভেলপারদের জন্য রুট অপটিমাইজেশন এপিআই (Route Optimization API) ব্যবহার শুরু করা সহজ করে দেওয়া। (আপনার বিভিন্ন ধরনের উদ্দেশ্যগুলো কীভাবে সম্পূর্ণরূপে কাস্টমাইজ করবেন, তা জানতে " cost model " অংশটি দেখুন)।

সেট করা হলে, ShipmentModel.objectives কস্ট মডেলকে সম্পূর্ণরূপে ওভাররাইট করে দেয়, তাই এগুলি পূর্ব-বিদ্যমান খরচের সাথে বেমানান। প্রতিটি Objective যানবাহন, চালান বা ট্রানজিশন অ্যাট্রিবিউটের জন্য বেশ কিছু পূর্ব-নির্ধারিত খরচের সাথে ম্যাপ করা থাকে।

TRANSFORM_AND_RETURN_REQUEST সলভিং মোড নির্দিষ্ট করা হলে, অনুরোধটি সমাধান করা হয় না এবং এটি কেবল যাচাই করা হয় ও প্রদত্ত উদ্দেশ্যগুলির সাথে সঙ্গতিপূর্ণ খরচ দিয়ে পূরণ করা হয়। পরিবর্তিত অনুরোধটি OptimizeToursResponse.processed_request হিসাবে ফেরত দেওয়া হয়। অন্য সব সলভ মোড সমাধান করা অনুরোধটি ফেরত দেবে।

TRANSFORM_AND_RETURN_REQUEST সলভিং মোডটি শুধুমাত্র OptimizeTours রিকোয়েস্টের জন্য প্রযোজ্য এবং অন্যান্য Route Optimization API রিকোয়েস্টের জন্য উপলব্ধ নয়।

উদাহরণ: একটি ShipmentModel.objectives অনুরোধ করুন

অনুরোধ করার আগে, নিম্নলিখিত ধাপগুলো সম্পন্ন করুন:

  • OAuth ব্যবহার অংশে বর্ণিত পদ্ধতি অনুযায়ী আপনার অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল কনফিগার করা আছে কিনা, তা নিশ্চিত করুন।
  • PROJECT_NUMBER_OR_ID আপনার ক্লাউড প্রজেক্ট নম্বর বা আইডিতে সেট করুন।

    নিম্নলিখিত কমান্ডটি রাউট অপটিমাইজেশন এপিআই-তে একটি OptimizeToursRequest পাঠায়, যা একটি OptimizeToursResponse ফেরত দেয়।

    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
    {
      "model": {
        "shipments": [
          {
            "pickups": [
              {
                "arrivalLocation": {
                  "latitude": 37.42506261000996,
                  "longitude": -122.09535511930135
                }
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                }
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
          }
        ],
        "objectives": [
          {
            "type": "MIN_TRAVEL_TIME"
          }
        ],
      }
    }
    EOM

উদাহরণ: একটি TRANSFORM_AND_RETURN_REQUEST অনুরোধ করুন

অনুরোধ করার আগে, নিম্নলিখিত ধাপগুলো সম্পন্ন করুন:

  • OAuth ব্যবহার অংশে বর্ণিত পদ্ধতি অনুযায়ী আপনার অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল কনফিগার করা আছে কিনা, তা নিশ্চিত করুন।
  • PROJECT_NUMBER_OR_ID আপনার ক্লাউড প্রজেক্ট নম্বর বা আইডিতে সেট করুন।

    নিম্নলিখিত কমান্ডটি রাউট অপটিমাইজেশন এপিআই-তে একটি OptimizeToursRequest পাঠায়, যা ProcessedRequest ফিল্ডটি সেট করা একটি OptimizeToursResponse ফেরত দেয়।

    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
    {
      "model": {
        "shipments": [
          {
            "pickups": [
              {
                "arrivalLocation": {
                  "latitude": 37.42506261000996,
                  "longitude": -122.09535511930135
                }
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                }
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
          }
        ],
        "objectives": [
          {
            "type": "MIN_TRAVEL_TIME"
          }
        ]
      },
      "solvingMode": "TRANSFORM_AND_RETURN_REQUEST"
    }
    EOM
    পূর্ববর্তী কমান্ডটি নিম্নলিখিতটির অনুরূপ প্রতিক্রিয়া তৈরি করবে।
    {
      "processedRequest": {
        "model": {
          "shipments": [
            {
              "pickups": [
                {
                  "arrivalLocation": {
                    "latitude": 37.425062610009959,
                    "longitude": -122.09535511930135
                  }
                }
              ],
              "deliveries": [
                {
                  "arrivalLocation": {
                    "latitude": 37.424215032060211,
                    "longitude": -122.09526063135228
                  }
                }
              ]
            }
          ],
          "vehicles": [
            {
              "travelMode": "DRIVING",
              "costPerHour": 30,
              "costPerTraveledHour": 330,
              "costPerKilometer": 0.2
            }
          ],
          "objectives": [
            {
              "type": "MIN_TRAVEL_TIME"
            }
          ]
        },
        "solvingMode": "TRANSFORM_AND_RETURN_REQUEST"
      }
    }