উদ্দেশ্য

Objective properties include `objectives` in `ShipmentModel` and `type` and `weight` in `objectives`

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

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

আপনার রুট পরিকল্পনার উপর নিম্নলিখিত প্রভাবগুলো নিয়ন্ত্রণ করতে আপনি উদ্দেশ্যসমূহ ব্যবহার করতে পারেন:

  • আপনার ভ্রমণ পথগুলোর মোট সময় বা দূরত্ব।
  • সকল যানবাহন মিলিয়ে মোট কার্যকাল।
  • ব্যবহৃত যানবাহনের মোট সংখ্যা।

বৈশিষ্ট্য

objectives প্রপার্টিটি হলো ShipmentModel অন্তর্গত Objective মেসেজ টাইপগুলোর একটি অ্যারে। প্রতিটি Objective একটি নির্দিষ্ট অপটিমাইজেশন লক্ষ্য নির্ধারণ করে এবং এতে নিম্নলিখিত সারণিতে তালিকাভুক্ত ফিল্ডগুলো থাকে:

মাঠ প্রকার বর্ণনা
type এনাম পূর্বনির্ধারিত অপ্টিমাইজেশন লক্ষ্যমাত্রা নির্দিষ্ট করে। গ্রহণযোগ্য মানগুলো হলো নিম্নরূপ:
  • DEFAULT ): একটি বেসলাইন সমাধান নিশ্চিত করতে খরচের একটি ডিফল্ট সেট ব্যবহার করে, যার অর্থ হলো এটি কোনো উদ্দেশ্য সাধনের জন্য সমাধানটিকে চরম মান ব্যবহার করা থেকে বিরত রাখে। যে অনুরোধগুলিতে কোনো উদ্দেশ্য থাকে, সেগুলিতে DEFAULT স্বয়ংক্রিয়ভাবে যুক্ত হয় এবং এটি 1.0 weight ) সহ যুক্ত করা হয়। আপনি যদি আপনার অনুরোধে সক্রিয়ভাবে এই উদ্দেশ্যটি অন্তর্ভুক্ত করেন, তাহলে সমাধানটি আপনার নির্দিষ্ট করা weight ব্যবহার করবে।
  • MIN_DISTANCE : মোট অতিক্রান্ত দূরত্ব সর্বনিম্ন করে।
  • MIN_WORKING_TIME : সমস্ত যানবাহনের মোট কাজের সময় সর্বনিম্ন করে।
  • MIN_TRAVEL_TIME : সকল যানবাহনের মোট ভ্রমণ সময় সর্বনিম্ন করে।
  • MIN_NUM_VEHICLES : ব্যবহৃত যানবাহনের সংখ্যা সর্বনিম্ন করে।
weight দ্বিগুণ এই উদ্দেশ্যটির আপেক্ষিক গুরুত্ব নির্ধারণ করে। একাধিক উদ্দেশ্য ব্যবহার করার সময়, weight ভ্যালুটি নিয়ন্ত্রণ করে যে এই নির্দিষ্ট উদ্দেশ্যটি অন্যগুলোর তুলনায় সামগ্রিক রুট অপটিমাইজেশনকে কতটা জোরালোভাবে প্রভাবিত করে। এটি যেকোনো অঋণাত্মক সংখ্যা হতে পারে এবং এদের যোগফল ১ হওয়ার প্রয়োজন নেই। এর ডিফল্ট মান হলো 1.0 ।

উদাহরণ

এই অংশে দুই ধরনের উদাহরণ আলোচনা করা হয়েছে:

  • একটি কোড নমুনা যা objectives অ্যারের গঠন ব্যাখ্যা করে।
  • একটি অনুরোধের উদাহরণ, যাতে objectives অ্যারেটি অন্তর্ভুক্ত রয়েছে।

কোডের নমুনা

নিম্নলিখিত উদাহরণটি objectives কাঠামো দেখায়:

"objectives": [
  {
    "type": "OBJECTIVE_TYPE",
    "weight": WEIGHT
  }
]

অনুরোধের উদাহরণ

নিম্নলিখিত উদাহরণটি একাধিক উদ্দেশ্য অন্তর্ভুক্ত একটি মৌলিক optimizeTours অনুরোধের কাঠামো দেখায়, যেখানে MIN_TRAVEL_TIME , MIN_WORKING_TIME চেয়ে ৩ গুণ বেশি গুরুত্বপূর্ণ।

{
  "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",
        "weight": 3.0
      },
      {
        "type": "MIN_WORKING_TIME"
      }
    ]
  }
}

একটি ব্যয় মডেল তৈরি করুন

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

আপনি আপনার অনুরোধে উদ্দেশ্যসমূহ যোগ করে এবং তারপর TRANSFORM_AND_RETURN_REQUEST সলভিং মোড ব্যবহার করে সেই উদ্দেশ্যগুলোকে কস্ট মডেল প্যারামিটারে রূপান্তর করার মাধ্যমে আপনার নিজস্ব কস্ট মডেলের উন্নয়ন শুরু করতে পারেন।

আপনি যখন এই সমাধান মোড ব্যবহার করে একটি অনুরোধ পাঠান, তখন নিম্নলিখিত ঘটনাগুলো ঘটে:

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

উদাহরণ অনুরোধ

নিম্নলিখিত উদাহরণটি MIN_TRAVEL_TIME অবজেক্টিভ এবং TRANSFORM_AND_RETURN_REQUEST সলভিং মোড ব্যবহার করে একটি অনুরোধ প্রদর্শন করে:

{
  "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"
}

উদাহরণ প্রতিক্রিয়া

নিম্নলিখিতটি পূর্ববর্তী অনুরোধের প্রতিক্রিয়া। এই প্রতিক্রিয়ায় রেফারেন্সের জন্য তৈরি করা কস্ট মডেলের প্যারামিটার এবং মূল উদ্দেশ্য উভয়ই অন্তর্ভুক্ত রয়েছে।

{
  "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"
  }
}