খরচের মডেল

ShipmentModel.shipments.Shipment এবং ShipmentModel.vehicles.Vehicle-এর অধীনে খরচ সংক্রান্ত প্রপার্টি নির্দিষ্ট করা আছে

Route Optimization API-এর মূল লক্ষ্য হল সবচেয়ে কম খরচে রুট খুঁজে বের করা। তাই, রুট অপ্টিমাইজেশনের জন্য খরচ মডেল হল প্রধান চালক।

কস্ট মডেল হল প্রপার্টির একটি সেট যা গ্লোবাল, যানবাহন ও শিপমেন্ট খরচ নির্দিষ্ট করে।

খরচের মডেলের প্রপার্টি নিম্নলিখিত ধরনের অপ্টিমাইজেশন অবজেক্টিভকে সাপোর্ট করে:

  • দক্ষতার সাথে গাড়ি অ্যাসাইন করা ও রুট বেছে নেওয়া
  • সাশ্রয়ী পিক-আপ ও ডেলিভারির সময়
  • গুরুত্বপূর্ণ শিপমেন্টকে অগ্রাধিকার দেওয়া

স্ট্রাকচার

ডায়াগ্রামে যেমন দেখানো হয়েছে, খরচ মডেলের প্রপার্টি এইভাবে সাজানো থাকে:

এই ডকুমেন্ট শুধু প্রয়োজনীয় খরচ মডেল প্যারামিটার হাইলাইট করে। খরচের প্যারামিটারের সম্পূর্ণ সেট দেখতে রেফারেন্স ডকুমেন্টেশন দেখুন।

প্রয়োজনীয় চেকলিস্ট

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

প্রপার্টি

নিচের সারণীতে কস্ট মডেলের প্রপার্টি তালিকাভুক্ত ও বর্ণনা করা হয়েছে।

মা বাবা প্রপার্টির নাম প্রপার্টির ধরন প্রতি প্রপার্টির বিবরণ
Shipment penaltyCost নম্বর শিপিংয়ের সুবিধা বাদ দেওয়া হয়েছে শিপমেন্ট বাদ দেওয়ার জন্য যে খরচ হয়েছে।
API কোনও শিপমেন্ট এড়িয়ে যায় যখন সেটি সম্পূর্ণ করার খরচ তার পেনাল্টি খরচকে ছাড়িয়ে যায়।
  • penaltyCost সেটিং বেশি খরচের শিপমেন্ট ডেলিভারিকে অগ্রাধিকার দেয়।
  • শিপমেন্ট সেট না করলে penaltyCost, শিপমেন্ট বাধ্যতামূলক হয়ে যায়।
  • শিপমেন্ট penaltyCost স্পষ্টভাবে শূন্যে সেট করলে, API সবসময় শিপমেন্ট এড়িয়ে যায়, যদি না অন্য কোনও সীমাবদ্ধতার কারণে এটি প্রয়োজন হয়।
Vehicle fixedCost নম্বর শিপমেন্ট কোনও শিপমেন্ট হ্যান্ডেল করার জন্য এই গাড়ি ব্যবহার করা হলে, নির্দিষ্ট খরচ প্রযোজ্য হবে।
costPerHour নম্বর ঘণ্টা ট্রানজিট, অপেক্ষা, ভিজিট ও বিরতির সময় সহ প্রতি ঘণ্টায় গাড়ি চালানোর খরচ।
এই খরচ বাড়লে, অপ্টিমাইজার দ্রুততম রুট খোঁজার চেষ্টা করে, যা হয়ত সবচেয়ে ছোট রুট নয়।
এই প্রপার্টিটি সরলতা এবং সম্পূর্ণতার কারণে গাড়ি প্রতি একটি কার্যকর স্বতন্ত্র খরচ হতে পারে।
costPerKilometer নম্বর কিলোমিটার গাড়ির প্রতি কিলোমিটার ভ্রমণের খরচ, যা জ্বালানির খরচ বা গাড়ির রক্ষণাবেক্ষণের খরচকে বোঝাতে পারে।
costPerTraveledHour নম্বর ঘণ্টা অপেক্ষা, ভিজিট ও বিরতির সময় বাদ দিয়ে, শুধুমাত্র ট্রানজিটে থাকাকালীন প্রতি ঘণ্টায় গাড়ি চালানোর খরচ। এটি ছোট রুটের চেয়ে দ্রুততম রুটকে অগ্রাধিকার দেয়।

উদাহরণ

এই বিভাগে তিন ধরনের উদাহরণ দেওয়া আছে:

  • কোড স্যাম্পেল যা কস্ট মডেলের গঠনতন্ত্রের প্রপার্টিকে ব্যাখ্যা করে।
  • একটি উদাহরণ যা ব্যবসার উদ্দেশ্য পূরণ করার জন্য খরচ মডেল প্রপার্টি ব্যবহার করার একটি উপায় দেখায়।
  • উদাহরণমূলক পরিস্থিতিতে সেট করা ভ্যালু সহ অনুরোধের উদাহরণ।

কোডের নমুনা

নিচে দেওয়া কোড স্যাম্পেল থেকে Shipment-এ কস্ট মডেল প্রপার্টির স্ট্রাকচার সম্পর্কে জানতে পারবেন:

{
  "model": {
    "shipments": [ ...
      {
        "penaltyCost": PENALTY_COST
      }
    ],
    "vehicles": [ ...
    ]
  }
}

নিচে দেওয়া কোড স্যাম্পেল থেকে Vehicle-এ কস্ট মডেল প্রপার্টির স্ট্রাকচার সম্পর্কে জানতে পারবেন:

{
  "model": {
    "shipments": [ ...
    ],
    "vehicles": [ ...
      {
        "fixedCost": FIXED_COST,
        "costPerKilometer": KILOMETER_COST,
        "costPerHour": HOUR_COST,
        "costPerTraveledHour": TRAVELED_HOUR_COST
      }
    ]
  }
}

পরিস্থিতির উদাহরণ

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

এই উদাহরণের জন্য, একটি খরচ ইউনিট ১ ডলারকে দেখায়। এর অর্থ হল আপনার অনুরোধে কস্ট মডেল প্রপার্টির ভ্যালু নিম্নলিখিত:

প্রপার্টি ভ্যালু পরিস্থিতি
penaltyCost 10 শিডিউল করা দিনে গ্রাহক তার কুকুরকে নিয়ে না গেলে আপনি যে জরিমানা নেন তা এখানে উল্লেখ করা হয়। আপনি শিডিউল করা দিনে কুকুরটিকে না তুললে, গ্রাহক তার পরিষেবার মোট খরচ থেকে ৪০ ডলার ছাড় পান।
fixedCost ৩০ আপনার গাড়ি লোনের পেমেন্টের দৈনিক খরচ দেখায়, যা প্রতিদিন ৩০ ডলার।
costPerKilometer ০.০৮ আপনার গাড়ি প্রতি কিলোমিটারে কতটা গ্যাসোলিন খরচ করে তা দেখায়। আপনার গাড়ি চালাতে প্রতি কিলোমিটারে ০.০৪ গ্যালন জ্বালানি লাগে এবং আপনার অঞ্চলে প্রতি গ্যালন জ্বালানির দাম ২ ডলার।
costPerHour ২৭ আপনার গাড়ি চালানোর জন্য ড্রাইভারকে কত পেমেন্ট করেন তা দেখায়। আপনি ড্রাইভারকে প্রতি ঘণ্টার জন্য ২৭ ডলার পেমেন্ট করেন।
costPerTraveledHour ২.৫ রাস্তায় থাকাকালীন কুকুরের জন্য গাড়ির এয়ার কন্ডিশনিং বাবদ প্রতি ঘণ্টায় আপনাকে কত পেমেন্ট করতে হবে তা বোঝায়। গাড়ি না চললে, চালক পিছনের দরজা খুলে দিতে এবং এয়ার কন্ডিশনিং বন্ধ করে দিতে পারেন।

খরচের প্যারামিটারের উপর ভিত্তি করে, অপ্টিমাইজার এমন ট্রেড-অফ করতে পারে যা ব্যবহারকারীর কাছে স্পষ্ট নয়, তবে অপ্টিমাইজেশনের মাধ্যমে খুঁজে পাওয়া যেতে পারে।

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

গাড়ির জন্য দুটি সম্ভাব্য রুট আছে, একটি সবুজ ড্যাশ লাইন দিয়ে দেখানো হয়েছে, যেটি দীর্ঘতর কিন্তু কোনও দুর্ঘটনা নেই এবং অন্যটি লাল ডট লাইন দিয়ে দেখানো হয়েছে, যেটি ছোট কিন্তু মাঝখানে একটি গাড়ি দুর্ঘটনা ঘটেছে।

এই পরিস্থিতিতে, দুটি রুটের খরচ সংক্রান্ত ব্যালেন্স হল:

  • সবুজ ড্যাশ করা লাইনের costPerHour কম এবং costPerTraveledHour কম, কারণ এটি ট্রাফিক এড়িয়ে যাওয়া একটি দ্রুত রুট, যা costPerKilometer বেশি হলেও আরও সাশ্রয়ী।

  • লাল ডট দেওয়া লাইনে costPerKilometer কম, কারণ এটি সরাসরি রুট, কিন্তু ট্রাফিকে অপেক্ষা করার কারণে costPerHour এবং costPerTraveledHour অনেক বেশি, তাই এটি সবচেয়ে ব্যয়বহুল রুট।

খরচ-সাশ্রয়ী রুট প্রদান করা ছাড়াও, অপ্টিমাইজার রেসপন্স প্রপার্টিতে ডেলিভারি রুটের মোট খরচের সামারি প্রদান করে।

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

নিম্নলিখিত উদাহরণে, উদাহরণ হিসেবে দেখানো পরিস্থিতিতে সেট করা ভ্যালু সহ একটি সাধারণ optimizeTours অনুরোধের গঠন দেখানো হয়েছে:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.8024,
              "longitude": -122.4058
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
        "penaltyCost": 40
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "endLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "fixedCost": 30,
        "costPerKilometer": 0.08,
        "costPerHour": 27,
        "costPerTraveledHour": 2.5
      }
    ]
  }
}

উত্তরের প্রপার্টি

OptimizeToursResponse মেসেজে খরচের প্রপার্টি আছে যা কোনও রুট সম্পূর্ণ করার প্রসেসে হওয়া খরচ বর্ণনা করে:

  • metrics.costs: খরচ-সম্পর্কিত অনুরোধ ফিল্ড অনুযায়ী সব রুটের মোট খরচ।
  • metrics.totalCost: সব রুটের মোট খরচ যোগ করে দেখানো হয়েছে।