例如,有一个容器,其体积为“v”。容器需要填充各种类型的框,其中每种类型都有一个唯一的大小(体积),例如
A型箱-容量为K
B型箱-容量为L
现在的问题是,有必要找出两种类型的箱子的最大数量,这两个箱子可以装进集装箱(两个箱子的组合)。
为了简化,假设“w”和“r”是数量,那么我们得到
(K*W)+(L*R)=V
以及纸箱(箱)应如何堆放在集装箱中。
例如,容器中的第一行(按行,我的意思是当盒子放在x坐标方向上时)盒子应该包含4个“A型盒子”的堆叠(从容器的地板开始),最上面的两个堆叠(靠近容器的顶部天花板)和“B型盒子”(按堆叠,我的意思是当盒子相互叠放时[z之后,在前一行完成后铺设一个新行,直到整个容器装满为止。
问题是什么是最好的方式来布置这些箱子在容器中,以利用容器中的所有(或大部分)空间,并包装在最大可能数量的盒子中,这些盒子可以是1个或更多的组合(最大大约5个类型的盒子在一个容器中)。
程序只需输入盒子的类型和细节,容器和视图,就可以得到完整的详细分析。
问题是我没有触及机器学习或解决这类问题的领域如果能给我一些建议,比如使用什么样的算法,从哪里开始学习解决这个问题,什么是解决这个问题的最佳方法,使用任何有用的机器学习库等等,我将不胜感激。

最佳答案

这个问题是线性优化的一个变种,称为整数线性优化link at wikipedia。这个问题通常是NP难的,所以大多数解都是迭代的有关进一步的讨论,请参阅文章中的参考资料
编辑:我建议查看LPSOLVE它已经提供了一个lgpl解算器库

07-24 09:54
查看更多