昨晚我正在开发一个应用程序,遇到了一个特定的问题,我确信它可能有一个有效的算法来解决它。有人可以建议吗?
问题:
TL;DR:也许一张图片会有所帮助:http ://www.custom-foam-inserts.com/ 。我有很多物品可以放在不同的隔间里:我想尽量减少需要携带的箱子数量。
.
我有一套 N 件昂贵的电子设备,我想将它们装入专门设计的保护盒中。这些盒子每个都有许多隔间,每个隔间都可以容纳单个物品:其中一些专门设计用于容纳特定物品(即,相机形状的孔),而另一些则是通用的(矩形孔)。我事先知道有 C 种不同尺寸的隔间以及它们的尺寸。
这些盒子有 L 种不同的布局,每个都至少有一个隔间。布局可能是“两个大矩形隔间和 4 个小圆形隔间”。
每个隔间尺寸至少存在一个布局,但我有不适合任何隔间尺寸的物品。每件物品至少适合一个隔间,并且可能适合多个不同的隔间:例如,我的数码单反相机可能适合“中号矩形”隔间,宽松适合“大矩形”,完美适合“单反相机隔间”,但不适合“小圆圈”。为此,我列出了适合每个项目的隔间。
这些项目是中度异构的——例如,可能有 50 个相同尺寸的项目和 20 个另一种尺寸的项目。
每个盒子有两个成本 Volume 和 Dollars(但是 D ~与 V 成正比)。我需要尽量减少其中一项或两项费用,同时将我所有的物品都装进盒子里。由于盒子的布局,最佳解决方案可能包含未使用的隔间。如果两种溶液的体积相同,则选择未使用的隔间最多的一种。因为每个隔间都存在于至少一个布局中,并且每个项目至少适合一个隔间,所以总是有一个适合所有项目的解决方案。
项目数:<=2000,平均箱数 150。隔间数:<= 1000。布局数:<= 1000。
关于这个有什么想法吗?我看过一些背包和装箱算法,但我不确定它们是否适合。非常感谢帮助。