1

有一个容器,例如可以说容量为“V”。该容器需要填充各种类型的盒子,其中每种盒子具有独特的大小(体积),例如可以说如何解决机器学习的挑战?

盒子类型A-具有K的容积 盒子类型B-具有L

现在的问题是,有找出最新的可能被放入容器(包括盒的组合)

为了简化这两种类型的盒的最大数量可以说一个要求,即“W”和“R”是数量,那么我们得到 (K * W)+(L * R)= V

以及纸箱(箱)如何堆放在容器中。

例如,第一行(我的意思是盒子放置x坐标时)应该包含4个“盒子类型A”的盒子(从容器的底部开始)和最上面的两个堆栈(靠近集装箱的顶部天花板)和“B型箱子”(通过堆栈我的意思是当箱子彼此叠置时[Z坐标明智])。此后,新的一排放置在前一个是完整的,直到整个容器已满。

问题是什么是在容器中布置这些箱子的最佳方式,以便利用容器中的所有(或大部分)空间,并打包最大可能数量的箱子,箱子可以是1或更多(最多在一个容器中约5种类型的盒子)。

该程序应该只是输入框的类型和细节的输入,容器和voilà你会得到一个完整的详细分析。

问题是我没有触及机器学习领域或解决这类问题。我将不胜感激,如果我给出了有关使用什么算法的建议,从哪里开始学习解决这个问题等,最好的办法是什么来解决这个问题,使用任何有用的机器学习库等。

+0

我要说的是,你需要的容器和盒子的尺寸。如果你只有量,解决方案是微不足道的:使地板1×1和堆叠箱。尝试填充一种类型,然后通过替换另一种进行优化。 – 2010-08-11 13:09:51

回答

2

此问题是线性优化的一种变体,称为整数线性优化link at wikipedia。这个问题通常被称为NP-hard,所以大多数解决方案都是迭代的。看到这篇文章的参考文献进行进一步讨论

编辑:我建议看看LPSOLVE其已经提供了LGPL求解库

+0

谢谢,我认为这是我在寻找什么,但是你知道任何好的书或类似于一个不是数学密集的学生学习线性编程吗? 我在想这本书吗? http://www.amazon.com/Introduction-Linear-Optimization-Scientific-Computation/dp/1886529191/ref=sr_1_3?ie=UTF8&s=books&qid=1281600302&sr=8-3 – MilindaD 2010-08-12 08:07:08

+0

我不会建议你阅读因为它可能需要你多年的时间来获得所有细节来实现解决方案。我将首先看看lp解决方案,这个解决方案已经有了一些整数编程的例程(不幸的是在文献中被称为) http://lpsolve.sourceforge.net/5.5/ – lurscher 2010-08-12 15:05:59

0

你可能想看看这个问题的答案:

Box stacking problem

+0

我没有看到任何机器学习在参考 – djna 2010-08-11 10:19:12

+0

@djna - 没有,但它是可以解决你的问题,而机器学习算法。对不起,如果我误解了你的问题。 – Paddy 2010-08-11 11:06:42

+0

上的机器语言的事情,我认为有可能不是这个解决方案的任何预编程的算法,认为机器语言是唯一的解决方案,但其所有的更好,如果我能解决这个问题,而无需使用任何机器语言概念我会发现它更容易=) – MilindaD 2010-08-12 03:53:31

0

如果你真的是机器学习,而不是预先编程的算法,然后我觉得真的很难。当盒子数量变大时,简单的试验和错误方法将会非常糟糕。

我想知道是否值得一看编程电脑玩Go的方法。在最终游戏中特别应用蒙特卡洛方法已经取得了很多进展,这与组装问题相似。见This reference.

0

纯粹用机器学习来解决这个问题是一个坏主意。原因是这是一个确定性的问题,其他形式的AI更适合这一点。但是,如果您唯一的选择是机器学习,我会考虑使用最小平方误差梯度来进行优化的强化学习。这是理解机器学习的更简单方法之一,适用于您的问题,因为它是确定性的。如果可能的话,使用其他算法来补充机器学习。