খরচের মডেল

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: সব রুটের মোট খরচ যোগ করা হয়েছে।