将多维数据集分组为更大的多维数据集以最小化多维数据集的总数

时间:2016-01-20 02:22:54

标签: algorithm optimization 3d reduction cubes

我正试图为这类问题找到最佳解决方案。

基本上,我有一个方块网格,看起来像这样: Box Grouping Start

我想要一个可以把它变成这样的算法:

Box Grouping End

然而,这在技术上是一个3D问题,并且在一些特殊情况下不需要所有正方形(意味着我不总是需要4个正方形来形成更大的正方形,或者8个立方体以形成更大的正方形)。

以上将始终适用于3D(如果找到8个立方体,则制作更大的2x2立方体)。隐藏面部时会发生特殊情况,如下所示:

Cube Grouping Start

(隐藏区域没有立方体)

Cube Grouping End

这里有几点需要注意:

  • 3个立方体正确变成了一个更大的立方体
  • 向下扩展无关紧要,如果它意味着更少的多维数据集
  • ,则首选
  • 如果更高级别的多维数据集不存在,此解决方案将需要隐藏/空白空间中的多维数据集

更糟糕的是,还有另一个限制:立方体大小范围从1到64,并且必须是2的幂(即仅1,2,4,8,16,32和64)

我只是在寻找伪代码或外行术语的解释。我将通过代码实现这个,但我想首先使用逻辑来解决这个问题。

注意:像这样的问题可以有很多解决方案。我希望有一个最佳的解决方案,但我真的只是想尽可能减少我拥有的立方体的数量。任何有用的东西都会受到赞赏(就像一个已经做过类似事情的已知算法)。

0 个答案:

没有答案