আমি শিপিংয়ের অনুমান তৈরির জন্য একটি কাজ পেয়েছি যা যতটা সম্ভব কম কয়েকটি বাক্সে পণ্যগুলির সর্বোত্তম আবাসনের পরামর্শ দেয়:
পরিচিত রেটাঙ্গুলার বক্স আকারের একটি সীমাবদ্ধ সেট রয়েছে is
বাক্সগুলির মধ্যে প্যাক করার জন্য অনেকগুলি নির্বিচারে রেট্যাঙ্গুলার আইটেম রয়েছে
কম বাক্সগুলি সবচেয়ে ভাল ব্যবহার করা উচিত। কারণ দুটি বক্স 1x1x1 শিপিং করা এক বক্স 1x2x1 এর চেয়ে বেশি ব্যয়বহুল। এটি এখানে অগ্রাধিকার হওয়া উচিত।
এটি দ্বিতীয় স্তরের অগ্রাধিকার হিসাবে ছোট ছোট বাক্সগুলি যথাসম্ভব ব্যবহার করার জন্যও অনুকূলিত হওয়া উচিত। (উদাহরণস্বরূপ: যদি একটি বড় বক্স এবং দুটি ছোট মধ্যে একটি বিকল্পের সাথে উপস্থাপন করা হয় তবে এটির চেয়ে বড় বাক্সটি চয়ন করা উচিত)
আইটেমগুলি বাক্সে ফিট করার জন্য ঘোরানো যেতে পারে, তবে আবর্তনটি ন্যূনতম 45 of এর ইনক্রিমেন্টের মধ্যে সীমাবদ্ধ থাকতে হবে (আমার গবেষণাগুলিতে মনে হয় যে কিছু কনফিগারেশন 45 ডিগ্রি ঘূর্ণনের জন্য আরও বড় রেট্যাঙ্গুলার বাক্সের অভ্যন্তরে আরও ভাল retangular বাক্স ফিট করতে পারে) , 90 ° ঘূর্ণন হচ্ছে মান নেওয়া উচিত।
বাক্সগুলির ওজনের সীমা থাকে এবং আইটেমগুলিতে নির্বিচারে ওজন থাকে (উদাঃ: যে আইটেমটি 1x1x1 এর আকার 2x2x2 আইটেমের চেয়ে বেশি হতে পারে)
আমি কিছুটা গবেষণা করেছি এবং বিন প্যাকিং এবং ন্যাপস্যাক সমস্যার জন্য কিছু বিমূর্ত আলগোরিদিমগুলি পেয়েছি এবং সেরা ফিটের অ্যালগরিদমের অনুরূপ নিম্নলিখিত কিছুটা ব্রুটফোর্স প্রকরণ নিয়ে এসেছি:
একটি "প্যাক করার জন্য আইটেম" তালিকায় আইটেমগুলি ডেস্রাসেন্ট ভলিউম ক্রমে (বৃহত্তর প্রথম) বাছাই করুন
এই তালিকার প্রতিটি আইটেমের জন্য:
"ব্যবহৃত বাক্সগুলি" তালিকায় থাকা ছোট বাক্সটি চয়ন করুন এবং আইটেমটি ফিট করার জন্য পর্যাপ্ত পরিমাণের পরিমাণ এবং ওজন সীমা রয়েছে (আমি মাত্রাগুলি এবং ওজনকে ফিট করার জন্য এখানে ফিট ব্যবহার করব)
যদি এই ধরণের বাক্স না থাকে তবে সম্ভাব্য বাক্স আকারগুলির জ্ঞাত সেট থেকে একটি নতুন বাক্স তৈরি করুন যা সর্বনিম্ন আকার যা আইটেমটির মাত্রা এবং ওজন ফিট করে এবং এটি "ব্যবহৃত বাক্স" তালিকায় যুক্ত করতে পারে।
যদি কোনও বাক্স আইটেমটি ফিট করে (ফিটিং ফাংশন বেলো ব্যবহার করে), এটি "এই বাক্সের আইটেমগুলির" তালিকায় যুক্ত করুন এবং বাক্সের তুলনায় এটি 3 ডি অবস্থানে চিহ্নিত করে "ফিট করার জন্য আইটেমগুলি" তালিকা থেকে সরিয়ে দিন।
"আইটেমস প্যাক করার জন্য" তালিকায় কোনও আইটেম লাগাতে না পারা পর্যন্ত 2.1 থেকে পুনরাবৃত্তি করুন।
উপরের ২ য় ধাপে ব্যবহৃত ফিটিং চেক ফাংশন:
বাক্সের বাকী আয়তন আইটেমের ভলিউম ফিট করে কিনা তা পরীক্ষা করুন। যদি না হয়, মিথ্যা ফিরে।
"বাক্সের আইটেমগুলি" ওজনের যোগফল এবং বর্তমান আইটেমের ওজনের বাক্সের ওজন সীমাতে কম বা সমান কিনা তা পরীক্ষা করুন। যদি না হয়, মিথ্যা ফিরে।
প্রথম বাক্সের স্থানাঙ্ক চয়ন করতে "বাক্সের আইটেমগুলি" তালিকাটি পরীক্ষা করে দেখুন যার মধ্যে সবচেয়ে ছোট ওয়াই উপাদান রয়েছে এবং এতে আইটেমের প্রস্থ, গভীরতা এবং উচ্চতার জন্য পর্যাপ্ত জায়গা রয়েছে, অন্য আইটেমগুলি অনুপলব্ধ স্থান হিসাবে বিবেচনা করা হয়।
যদি আইটেমটি বর্তমানের দিকনির্দেশনা অনুসারে ফিট না করে তবে rot টি সম্ভাব্য ঘূর্ণনের একটিতে এটিকে ঘোরান, সরলতার জন্য 45 ° ঘূর্ণন ধরে না। (যে ঘূর্ণনগুলির ফলাফল মাপের ফলে ইতিমধ্যে পরীক্ষা করা যায় সেগুলি এড়ানো যায় Eg উদাহরণস্বরূপ: একটি বাক্স 180 ating ঘোরানো মূল অবস্থান হিসাবে একই ধরণের পরিমাণ দেয় কারণ সমস্ত বাক্স এবং আইটেমগুলি বিপরীত মুখগুলির জন্য একই আকার থাকে এবং তাই এড়িয়ে যেতে পারে))
আইটেমটি সমস্ত সম্ভাব্য উপায়ে তার মূল দিকনির্দেশে ঘোরানো না হলে, পদক্ষেপ 3 থেকে আবার চেষ্টা করুন।
যেখানে চেষ্টা করা হয়েছে এবং কোনও ফিট নেই এমন সমস্ত ঘূর্ণন যদি পাওয়া যায়, তবে বর্তমান স্থানাঙ্ককে অনুপলব্ধ স্থান হিসাবে বিবেচনা করুন।
যদি চেক করার জন্য উপলভ্য স্থান না থাকে তবে মিথ্যা ফিরুন। অন্যথায়, পদক্ষেপ 3 থেকে আবার চেষ্টা করুন।
আমি জানতে চাই যে উপস্থাপিত প্রতিবন্ধকতাগুলি বিবেচনা করে আমার সমস্যার সর্বোত্তম সমাধান হতে পারে।
এটি তত্ত্বটিতে কাজ করে বলে মনে হচ্ছে তবে আমি কোডে চেষ্টা করে দেখিনি। আমি জানতে চাই যে আমি সঠিক দিকে যাচ্ছি বা আরও ভাল, পারফরম্যান্স করার উপায় আছে এটি করার জন্য।
উল্লেখগুলি দুর্দান্ত হবে।
সম্পাদনা:
আমি কিছু আকর্ষণীয় তৃতীয় পক্ষের এপিআই পেয়েছি যা আমি যা চাই তা করি তবে এটি সংযোগ বিচ্ছিন্ন করতে হবে, সুতরাং এগুলিতে আমার অ্যাক্সেস থাকবে না।
কয়েকটি উদাহরণ হ'ল:
সম্পাদনা 2:
সমস্যার সমাধানের প্রকৃত বিশ্বের উদাহরণ হ'ল:
- আমার 4 বাক্সের আকার WxHxD রয়েছে: 10x12x18, 12x16x24, 16x20x30, 24x32x40
- আমার কাছে 4 টি আইটেমের অর্ডার রয়েছে, আকারটি 1x 6x8x10, 2x 22x14x30 এবং 1x 22x4x20
সম্ভাব্যতম ক্ষুদ্রতম বাক্স ব্যবহার করে এবং যতটা সম্ভব কম ফাঁকা জায়গা রেখে আমি কম কম বাক্স ব্যবহার করে এক বা একাধিক আকারের বাক্সে এই আইটেমগুলি কীভাবে ফিট করব?
packing
রিলেটেড ট্যাগের প্রয়োজন নেই ;algorithms