我想写,生成用于条块面板绘制的应用程序。
我有N个隔间(二维矩形)(N < = 40)。对于每个隔间,都有一个最小高度(minHeight [i])和最小宽度(minWidth [i])关联。面板本身也有一个MAXIMUM_HEIGHT约束。
这些N个柜子必须按照列方式排列,以便每个柜子满足上述限制条件。
此外,每列的宽度由该列中每个隔间的最大宽度决定。
此外,每列的高度应该是相同的。这决定了面板的高度
我们可以在任何列中留下的空白处添加备用隔间,或者我们可以将任何隔间的高度/宽度增加到指定的最小值以外。但是我们不能旋转任何隔间。
OBJECTIVE: TO MINIMIZE TOTAL PANEL WIDTH.
目前我已经通过忽略优化中的隔间宽度来实现它。我只是选择最大的minHeight隔间,并尝试将其安装在我的面板中。但是,它不保证最佳解决方案。
我能比这更好吗?
EDIT 1:问题目的:面板=2100毫米,minwidth范围(350毫米至800mm),范围了minHeight(225毫米到2100毫米)
编辑2的MAXIMUM_HEIGHT TO MINIMIZE面板的宽度(未面板区域)。
我试图围绕问题的高度部分包围我的想法。你堆积隔间?您是否必须在顶部的隔间上提供楼梯或梯子? –
是的,柜子一个叠在另一个上面,做一个'柱子'。可以有一个或多个并排放置的这种列。每列应具有相同的高度(即<= MAXIMUM_HEIGHT)。 MAXIMUM_HEIGHT是2100mm,因此不需要楼梯或梯子。对不起,我不明白你的查询的这一部分。 –
这是一个2D问题,不涉及3D元素。 –