سؤال

أنا أبحث عن تنفيذ حاسم لأي خوارزمية تعبئة صندوق ثلاثي الأبعاد ، أي لتعبئة العديد من المكعبات الصغيرة والمختلفة داخل واحد أو العديد من أكبرها. يمكن أن يختلف الحل من الحل الأمثل.

يجب أن تتم كتابتها في C ، C ++ ، Java ، C#، IronPython ، IronRuby أو أي لغة أخرى يمكن أن تكون من كود .NET.

لقد وجدت هذه الخوارزمية C http://www.diku.dk/hjemmesider/ansatte/pisinger/3dbpp.c ، لكنه لا يدور Cuboids للعثور على أفضل ملاءمة. أنا موافق على عدم تدويرها رأسًا على عقب ، ولكن يجب أن يكون الدوران الأفقي ممكنًا.

هل كانت مفيدة؟

المحلول

لقد كتبت خوارزمية تقريبية للحالة التي تصفها أي صناديق مستطيلة ثلاثية الأبعاد ، مع دوران متعامد ، في C ++. يمكنك العثور على النتائج والخوارزمية في الورقة المنشورة:http://www.cs.ukzn.ac.za/publications/erick_dube_507-034.pdf

نصائح أخرى

لقد تحولت Wknechtel/3d-bin-pack C رمز إلى JavaScript. يمكن أن يكون الميناء بسهولة إلى C#.

https://github.com/keremdemirer/3dbinpackingjs

يمكنك تشغيل مثال الحسابات من index.html ملف ومراجعة التقرير الذي تم إنشاؤه. pack1.js يحتوي الملف على التطبيق والخوارزمية. لست متأكدًا من كيفية عمل الخوارزمية ولكن النتائج مرضية لحسابات التغليف.

هذه المشكلة هي np-hard. أفضل رهان لك هو خوارزمية التقريب (حتى يحل الشخص العبقري أي مشكلة NP ، أو عثرات زميل محظوظ جدًا في حل ما.) لا أعرف أي خوارزميات تقريبية معروفة لهذه المشكلة لسوء الحظ.

مشروع Java مفتوح المصدر مع دعم لأكبر مساحة ملائمة أولاً: 3D-bin-container

يدور في 2D أو 3D.

يتم النظر في النسخة العامة للمشكلة في "خوارزميات للمتغيرات العامة والقابلة للارتداد لمشكلة تعبئة بن ثلاثية الأبعاد: http://www.3dbinbox.com/public/home/

يمكنك إلقاء نظرة على تقريبي لهذه الخوارزمية.

إنها خوارزمية ذكية أول ملائمة تستند إلى تغطية المساحة القصوى.

https://github.com/mohitesh07/3d-bin-packing

إنه مكتوب في جافا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top