【发布时间】:2020-10-30 18:40:48
【问题描述】:
我有产品和盒子。我想使用最少的包装箱数进行包装。请忽略产品和包装箱尺寸 (WxHxD)。只关注数量。
我需要一种算法来将这些产品放入盒子中。算法必须使用最小数量的盒子和它可以使用的最小盒子。算法可以使用多个相同的框。每个产品只能使用一次。
我试过这个算法
- 按数量递增订购产品
- 将最小的产品放入最大的盒子中,然后将下一个产品添加到盒子中。直到没有下一个的空间。重复直到产品完成。
根据这个算法
- E 产品到 Z-1 盒(可用空间:2900 cm3)
- B 产品到 Z-1 盒(可用空间:2700 cm3)
- F 产品到 Z-1 盒(可用空间:2300 cm3)
- D 产品到 Z-1 盒子(可用空间:1700 cm3)
- Z-1 Box 的产品(可用空间:700 cm3)
- B 产品到 Z-2 盒子(可用空间:1500 cm3)
所以算法使用 2 个 Z Box。但是人脑可以适应 (C+A+F+E)= 3000 cm3 (Z box) 和 (B+D) = 800 cm3 (X Box) 感谢所有 cmets 和回复。
【问题讨论】:
-
总共有多少箱/产品?
-
无限制。例如产品数量可以是100,盒子类型只能是一个。
-
请更好地说明问题。例如,一个盒子里可以装多个产品吗?您想要打包的每种产品有多少?
-
如果您忽略尺寸,那么这只是一个普通的背包问题,afaict。 en.wikipedia.org/wiki/Knapsack_problem#Solving
-
“算法必须使用最少的盒子数量和它可以使用的最小盒子”你的意思是在考虑盒子大小之前盒子的数量必须是最小的吗?因为您需要指定其中一个标准比另一个更重要。如果没有,请考虑您有 1 个项目 A (1000) 和 1 个项目 E (100) 的情况,这些可以将 A 放入 X 并将 E 放入 T 中,用于 2 个总体积为 1100 的盒子,或者将它们都放入一个盒 V,用于 1 个容量为 2000 的盒。
标签: algorithm