例如,有一个容器,体积为“V”。容器需要装满各种类型的盒子,其中每种类型都有唯一的尺寸(体积),例如让我们说
盒子类型 A - 体积为 K B 型盒子 - 体积为 L
现在的问题是需要找出可以装入容器的两种类型盒子的最大数量(两种盒子的组合)
为简化起见,假设“W”和“R”是数量,那么我们得到 (K * W) + (L * R) = V
以及纸箱(盒子)在容器中应该如何堆叠。
例如,容器中的第一行(按行我的意思是当盒子按 x 坐标放置时)盒子应该包含 4 堆(从容器底部开始)“盒子类型 A”和最上面的两个堆叠(靠近容器的顶部天花板)带有“B 型盒子”(堆叠我的意思是当盒子彼此叠放时 [z 坐标明智])。此后在前一个是完整的,直到整个容器都满了。
问题是在容器中布置这些箱子的最佳方式是什么,以利用容器中的所有(或大部分)空间,并装入尽可能多的箱子,这些箱子可以是 1 或更多(一个容器中最多约 5 种类型的盒子)。
该程序应该简单地输入箱子、容器的类型和详细信息,瞧,您将获得完整的详分割析。
问题是我没有接触过机器学习或解决这类问题的领域。如果我能得到关于使用什么算法、从哪里开始学习解决这个问题、解决这个问题的最佳方法是什么、使用任何有用的机器学习库等方面的建议,我将不胜感激。
最佳答案
这个问题是线性优化的一个变体,称为整数线性优化 link at wikipedia .众所周知,这个问题通常是 NP-hard 问题,因此大多数解决方案都是迭代的。进一步讨论参见文章中的引用资料
编辑:我建议查看 LPSOLVE它已经提供了一个 lgpl 求解器库
关于algorithm - 如何解决机器学习挑战?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3457158/