লোড চাহিদা এবং সীমা

The loadDemands property is defined under ShipmentModel.shipments.Shipment and the loadLimits property under ShipmentModel.vehicles.Vehicle.

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

লোড চাহিদা এবং সীমা নিম্নলিখিত উদ্দেশ্যগুলিকে সমর্থন করতে পারে:

  • যানবাহনগুলিকে অতিরিক্ত বোঝাই করা থেকে বিরত রাখুন।
  • চালান তোলা এবং বিতরণের সময় যানবাহনের লোড কীভাবে পরিবর্তিত হয় তা পর্যবেক্ষণ করুন।
  • ভারী যানবাহনের সাথে ভারী পণ্য পরিবহনের ক্ষেত্রে অগ্রাধিকার দিন।

লোড চাহিদা এবং সীমা এই বৈশিষ্ট্যগুলিতে নির্দিষ্ট করা হয়েছে:

  • loadDemands একটি নির্দিষ্ট চালানের জন্য প্রয়োজনীয় ধারণক্ষমতার পরিমাণ নির্দিষ্ট করে।
  • loadLimits একটি নির্দিষ্ট গাড়ির সর্বোচ্চ ধারণক্ষমতা নির্দিষ্ট করে।

গঠন

চিত্রে দেখানো হয়েছে, লোড চাহিদা এবং সীমা নিম্নরূপে গঠন করা হয়েছে:

  • loadDemands হল Shipment এর একটি সম্পত্তি। একটি Shipment একাধিক লোড চাহিদা থাকতে পারে।
  • loadLimits হলো Vehicle একটি বৈশিষ্ট্য। একটি Vehicle একাধিক লোড সীমা থাকতে পারে।

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

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

বৈশিষ্ট্য

এই বিভাগটি লোড চাহিদা এবং সীমার বৈশিষ্ট্য বর্ণনা করে, যা নিম্নলিখিত:

  • লোডের ধরণ: লোডের চাহিদা এবং সীমার মধ্যে একটি ভাগ করা সম্পত্তি।
  • Load এবং LoadLimit : লোড চাহিদা এবং লোড সীমাতে যথাক্রমে অনন্য বৈশিষ্ট্য উপস্থিত থাকে।

লোড টাইপ

লোড টাইপ হলো একটি স্ট্রিং কী যা আপনি শিপমেন্ট এবং যানবাহনের ক্ষেত্রে সমানভাবে প্রয়োগ করেন। একটি একক লোড টাইপ একটি শিপমেন্টের লোড চাহিদার পাশাপাশি একটি গাড়ির লোড সীমার ক্ষেত্রেও প্রযোজ্য।

লোড টাইপ প্রোটোকল বাফার ম্যাপ টাইপ সিনট্যাক্স ব্যবহার করে। লোড টাইপের নামকরণ করার সময়, লোডের ধরণ এবং তার একক বর্ণনা করে এমন শনাক্তকারী ব্যবহার করুন। উদাহরণস্বরূপ: weightKg , volume_gallons , palletcount , অথবা frequencyDaily

Load এবং LoadLimit

Load এবং LoadLimit অবজেক্টগুলিতে শিপমেন্ট এবং যানবাহনের জন্য ক্ষমতার প্রয়োজনীয়তা নির্ধারণের জন্য নির্দিষ্ট বৈশিষ্ট্য রয়েছে, নিম্নলিখিত সারণীতে এই বৈশিষ্ট্যগুলি বর্ণনা করা হয়েছে:

বস্তু অভিভাবক সম্পত্তি সম্পত্তির ধরণ সম্পত্তির বর্ণনা
Load loadDemands amount স্ট্রিং (int64 ফর্ম্যাট) নির্দিষ্ট ধরণের চালানের ক্ষমতার প্রয়োজনীয়তা নির্ধারণ করে।
LoadLimit loadLimits maxLoad স্ট্রিং (int64 ফর্ম্যাট) নির্দিষ্ট ধরণের গাড়ির সর্বোচ্চ লোড ক্ষমতা নির্ধারণ করে।

উদাহরণ

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

কোড নমুনা

নিচের উদাহরণটি একটি লোড ডিমান্ডের কাঠামো দেখায় যেখানে আপনি loadDemands টাইপকে স্ট্রিং হিসেবে এবং amount প্রোপার্টিটিকে স্ট্রিং হিসেবে int64 ফর্ম্যাটে সেট করতে পারেন:

{
  "model": {
    "shipments": [ ...
      {
        "loadDemands": {
          "MATCHING_LOAD_TYPE": {
            "amount": "YOUR_LOAD_AMOUNT"
          }
        }
      }
    ],
    "vehicles": [ ...
    ]
  }
}

নিচের উদাহরণটি লোড লিমিটের সবচেয়ে মৌলিক কাঠামো দেখায়, যেখানে আপনি loadLimits টাইপকে স্ট্রিং হিসেবে এবং maxLoad প্রোপার্টিটিকে স্ট্রিং হিসেবে int64 ফর্ম্যাটে সেট করতে পারেন:

{
  "model": {
    "shipments": [ ...
    ],
    "vehicles": [ ...
      {
        "loadLimits": {
          "MATCHING_LOAD_TYPE": {
            "maxLoad": "YOUR_MAX_LOAD"
          }
        }
      }
    ]
  }
}

উদাহরণ দৃশ্যকল্প

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

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

এই উদাহরণের জন্য, আপনার অনুরোধের সম্পত্তির মানগুলি নিম্নরূপ:

অভিভাবক সম্পত্তি আদর্শ মূল্য দৃশ্যকল্প
loadDemands লোড টাইপ স্ট্রিং dogUnit চালানের জন্য লোডের ধরণ নির্ধারণ করে। এই উদাহরণে dogUnit ব্যবহার করা হয়েছে, যেখানে প্রতিটি dogUnit একটি করে কুকুরকে প্রতিনিধিত্ব করে।
loadDemands amount সংখ্যা ১ম চালান: 1
দ্বিতীয় চালান: 3
সংজ্ঞায়িত লোড ধরণের পরিমাণ নির্দিষ্ট করে। এই উদাহরণে, আপনি দুটি চালান সংজ্ঞায়িত করছেন, প্রথমটিতে আপনি একটি কুকুর তুলছেন, দ্বিতীয়টিতে আপনি 3টি কুকুর তুলছেন।
loadLimits লোড টাইপ স্ট্রিং dogUnit গাড়িতে প্রযোজ্য লোড লিমিটের ধরণ নির্ধারণ করে। সীমাটি প্রাসঙ্গিক হওয়ার জন্য এটি চালানের লোড লিমিটের সাথে মিলতে হবে
loadLimits maxLoad সংখ্যা 6 গাড়িটি সর্বোচ্চ কত ধরণের লোড বহন করতে পারে তা নির্দিষ্ট করে। এই উদাহরণে, আপনার কাছে সর্বাধিক 6 dogUnit ধারণক্ষমতা সম্পন্ন একটি মাত্র গাড়ি আছে, যেখানে প্রতিটি dogUnit একটি করে কুকুরের বাক্সকে প্রতিনিধিত্ব করে।

নিম্নলিখিত চিত্রটি গাড়ির লোড সীমা, প্রতিটি চালানের লোড চাহিদা এবং প্রতিটি চালান কীভাবে গাড়ির লোড সীমা ব্যবহার করে তা চিত্রিত করে:

The vehicle begins the route with 6 empty spaces representing the load limits of the vehicle. The first shipment demands space for one dog, the second shipment demands space for three dogs. The end state of the vehicle is having 4 of the 6 spaces now occupied, with two empty spaces remaining.

এই উদাহরণে, প্রতিটি চালানের লোড চাহিদা এবং গাড়ির লোড সীমা নিম্নলিখিত প্রভাব ফেলে:

  • অপ্টিমাইজারটির কুকুর পরিবহনের জন্য গাড়ির রুট তৈরি করতে কোনও সমস্যা হবে না , কারণ গাড়িটি 6টি পর্যন্ত কুকুর বহন করতে পারে এবং আপনি কেবল 4টি কুকুর তুলছেন।

  • গাড়িতে ৬ dogUnit লোড লিমিট থাকার অর্থ হল আপনি এই নির্দিষ্ট গাড়িতে আরও দুটি কুকুর বহন করতে পারবেন।

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

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

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

নিচের উদাহরণটি একটি মৌলিক optimizeTours অনুরোধের কাঠামো দেখায় যেখানে উদাহরণ দৃশ্যকল্পের মানগুলি অন্তর্ভুক্ত করা হয়েছে:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.8024,
              "longitude": -122.4058
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ],
        "label": "One bernese mountain dog",
        "loadDemands": {
          "dogUnit": {
            "amount": "1"
          }
        }
      },
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.7359,
              "longitude": -122.5011
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ],
        "label": "Three chihuahuas",
        "loadDemands": {
          "dogUnit": {
            "amount": "3"
          }
        }
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "endLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "loadLimits": {
          "dogUnit": {
            "maxLoad": "6"
          }
        },
        "costPerKilometer": 1.0
      }
    ]
  }
}

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

নরম লোড সীমা

আপনি একটি গাড়ির loadLimitssoftMaxLoad এবং costPerUnitAboveSoftMax যোগ করে লোড সীমাকে নরম সীমাবদ্ধতা হিসেবে সেট করতে পারেন। এটি অপ্টিমাইজারকে খরচের বিনিময়ে গাড়ির সর্বোচ্চ লোড অতিক্রম করতে দেয়, লোড সীমা কঠোরভাবে মেনে চলার চেয়ে রুট সমাপ্তিকে অগ্রাধিকার দেয়।

আপনি maxLoad এবং softMaxLoad একসাথে ব্যবহার করে হার্ড এবং সফট লোড লিমিট সেট করতে পারেন। এই ক্ষেত্রে, softMaxLoad এমন লোড সেট করে যা অতিক্রম করা যায় এবং maxLoad এমন হার্ড লিমিট সেট করে যা অতিক্রম করা যায় না। যখন উভয়ই ব্যবহার করা হয়, তখন maxLoad অবশ্যই softMaxLoad এর চেয়ে বড় হতে হবে।

বৈশিষ্ট্য

নিচের সারণিতে লোড চাহিদা এবং সীমার জন্য নরম সীমাবদ্ধতার বৈশিষ্ট্য বর্ণনা করা হয়েছে।

অভিভাবক সম্পত্তির নাম সম্পত্তির ধরণ সম্পত্তির বর্ণনা
loadLimits softMaxLoad স্ট্রিং (int64 ফর্ম্যাট) একটি গাড়ির জন্য পছন্দসই সর্বোচ্চ লোড। যদি গাড়ির লোড এই মান অতিক্রম করে, তাহলে একটি খরচ হয়।
loadLimits costPerUnitAboveSoftMax সংখ্যা softMaxLoad এর উপরে প্রতি ইউনিট লোডের খরচ। softMaxLoad ব্যবহার করার সময় এই ক্ষেত্রটি প্রয়োজন। খরচ সম্পর্কে আরও জানতে খরচ মডেল কী ধারণাটি দেখুন।

কোড নমুনা

নিচের উদাহরণটি loadLimits এর নরম সীমাবদ্ধতা বৈশিষ্ট্যের গঠন দেখায়:

{
   "loadLimits": {
        "LOAD_TYPE": {
          "softMaxLoad": "LOAD_AMOUNT",
          "costPerUnitAboveSoftMax": COST_PER_UNIT
        }
      }
}