11

我正在寻找任何 3d bin 打包算法的确定性实现,即将许多不同的小方体打包到一个或多个更大的长方体中。解决方案可能与最佳解决方案不同。

它应该用 C、C++、Java、C#、IronPython、IronRuby 或任何其他可以从 .Net 代码中提取的语言编写。

我找到了这个 C 算法http://www.diku.dk/hjemmesider/ansatte/pisinger/3dbpp.c,但它不会旋转长方体来找到最合适的。我可以不将它们倒置旋转,但水平旋转应该是可能的。

4

3 回答 3

8

我已经为您描述的情况编写了一个近似算法,即在 C++ 中具有正交旋转的 3D 矩形框。您可以在已发表的论文中找到结果和算法: http ://www.cs.ukzn.ac.za/publications/erick_dube_507-034.pdf

于 2010-04-19T14:55:29.007 回答
4

我将wknechtel/3d-bin-pack C 代码转换为 javascript。可以很容易地移植到 C#。

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

您可以从文件运行示例计算index.html并查看生成的报告。pack1.js文件包含应用程序和算法。我不确定该算法是如何工作的,但结果对于包装计算来说是令人满意的。

于 2016-02-27T23:10:46.267 回答
1

这个问题是 NP 难的。你最好的选择是一个近似算法(直到一个天才解决了任何 NP 问题,或者一个非常幸运的人偶然发现了一个解决方案。)不幸的是,我不知道这个问题的任何众所周知的近似算法。

于 2009-10-16T22:51:16.780 回答