这是什么算法?箱子包装/背包



我昨晚正在开发一个应用程序,遇到了一个特定的问题,我相信可能有一个有效的算法来解决它。谁能建议?

问题:

TL;DR:也许一张图片会有所帮助:http://www.custom-foam-inserts.com/。我有很多适合各种隔间的物品:我想尽量减少我需要处理的病例数量。

.

我有一套N件昂贵的电子设备,我想把它们装进专门设计的保护盒里。这些盒子每个都有许多隔间,每个隔间可以容纳一个物品:其中一些是专门为适合特定物品而设计的(即,相机形状的孔(,其中一些是通用的(矩形孔(。我事先知道有C不同尺寸的隔间以及这些尺寸。

这些盒子有L不同的布局,每个盒子至少有一个隔间。布局可能是"两个大的矩形隔间和 4 个小圆形隔间"。

每个隔间尺寸都至少存在于一种布局上,但我有不适合任何隔间尺寸的物品。每件物品至少适合一个隔间,并且可以放入多个不同的隔间:例如,我的数码单反相机可能紧贴在"中矩形"隔间中,宽松适合"大矩形",完美适合"数码单反相机隔间",但不适合"小圆圈"。为此,我列出了哪些隔间适合每个项目。

这些项目具有中等异质性 - 例如,可能有 50 个一种尺寸的项目和 20 个另一种尺寸的项目。

每个盒子有两个成本体积和美元(但D~与V成正比(。我需要尽量减少其中一项或两项成本,同时将所有物品放入盒子中。由于盒子的布局,最佳解决方案可能包含未使用的隔间。如果两个解决方案的体积相等,请选择未使用隔间最多的一个。由于每个隔间至少存在于一个布局中,并且每个项目至少适合一个隔间,因此总有一个适合所有项目的解决方案。

项目数:<=2000,平均案例150。隔间数量:<= 1000。布局数量:<= 1000。

对此有什么想法吗?我看过背包和垃圾箱包装算法,我不确定它们是要走的路。非常感谢帮助。

从问题描述来看,这确实似乎是背包问题,因为您必须最大限度地利用可用空间,同时牢记选项的权重

根据您所追求的内容,您还可以考虑使用遗传算法。由于这个问题是NP Complete,如果您需要添加更多项目,运行时间最终会爆炸,因此,如果我需要与所需时间无关的最佳解决方案,我会主要选择这个问题。

另一方面,遗传算法应该能够在相对较短的时间内提供一些解决方案,但是,它提供的解决方案可能不如背包算法提供的解决方案,因此如果我对我需要提供一些解决方案的时间有限制,我会选择 GA,我不在乎它是否不是绝对最好的。

最新更新