3d bin packing algorithm

孤街浪徒 提交于 2019-11-27 12:03:09

问题


I am looking for a deterministic implementation for any 3d bin packing algorithm, i.e. for packing many small and different cuboids inside one or many bigger ones. The solution could vary from the optimal one.

It should be written in C, C++, Java, C#, IronPython, IronRuby or any other language an can bin to from .Net code.

I found this C algorithm http://www.diku.dk/hjemmesider/ansatte/pisinger/3dbpp.c , but it doesn’t rotate the cuboids to find the best fit. I am ok with not rotating them upside down, but horizontal rotation should be possible.


回答1:


I have written an approximate algorithm for the case you describe i.e. 3D rectangular boxes, with orthogonal rotation, in C++. You can find the results and algorithm in the published paper: http://www.cs.ukzn.ac.za/publications/erick_dube_507-034.pdf




回答2:


I converted wknechtel/3d-bin-pack C code to javascript. Can be easily port to C#.

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

You can run example calculations from index.html file and review the generated report. pack1.js file contains the app and algorithm. I'm not sure how the algorithm works but the results are satisfying for packaging calculations.




回答3:


This problem is NP-hard. Your best bet is an approximation algorithm (until a genius person solves any NP problem, or a very lucky fellow stumbles across a solution.) I do not know of any well know approximation algorithms for this problem unfortunately.




回答4:


Open source Java project with support for Largest Area Fit First: 3d-bin-container-packing

Rotates in 2D or 3D.




回答5:


The general version of the problem is considered in "Algorithms for General and Robot-packable Variants of the Three-Dimensional Bin Packing Problem: http://www.3dbinbox.com/Public/home/




回答6:


You can have a look at my approximation for this algorithm.

It is a intelligent first fit algorithm based on maximal area coverage.

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

It is written in Java



来源:https://stackoverflow.com/questions/1563271/3d-bin-packing-algorithm

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!