我昨晚正在处理一个应用程序并遇到了一个特殊的问题,我肯定可能有一个有效的算法来解决它.谁有人建议?
问题:
TL; DR:也许图片会有所帮助:http://www.custom-foam-inserts.com/.我有很多适合各种隔间的物品:我想尽量减少需要采取的箱子数量.
.
我有一套N件昂贵的电子设备,我想装入专门设计的保护盒中.这些盒子每个都有许多隔间,每个隔间可以装配一个物品:其中一些专门设计用于适合特定物品(即相机形孔),其中一些是通用的(矩形孔).我事先知道有不同尺寸的C隔间和尺寸.
这些盒子有两种不同的布局,每个布局至少有一个隔间.布局可能是“两个大矩形隔间和4个小圆形隔间”.
每个隔间尺寸至少存在于一个布局中,但是我的物品不适合任何隔间尺寸.每个项目至少适合一个隔间,可以放入多个不同的隔间:例如,我的DSLR相机可能紧密贴合在“中矩形”隔间中,宽松贴合在“大矩形”中,完美贴合在”单反相机隔间’,但不适合’小圆圈’.为此,我列出了哪些隔间适合每个项目.
这些物品是中度异质的 – 例如,可能有50个一个尺寸的物品和20个另一个尺寸的物品.
每个盒子有两个成本Volume和Dollars(但是D~与V成比例).我需要尽量减少这些费用中的一个或两个,同时将我的所有物品放入包装盒中.由于盒子的布局,最佳解决方案可能包含未使用的隔间.如果两个溶液具有相同的体积,请选择具有最多未使用的隔室的溶液.因为每个隔间存在于至少一个布局上并且每个物品适合于至少一个隔间,所以始终存在适合所有物品的解决方案.
项目数:< = 2000,平均情况150.
隔间数:< = 1000.
布局数:< = 1000. 关于这个的任何想法?我看了一下Knapsack和Bin Packing算法,我不确定它们是不是可行的方法.非常感谢.