如何根据一些约束优化网格分配

时间:2011-06-07 12:51:51

标签: optimization grid

问题:

给定一个网格和高度为1且宽度为2,3或4的元素,确定是否可以分配给定宽度(w)和位置((x1,y),(x2,y))的新元素,以便网格在现有元素和未来元素之间具有(并且将具有)尽可能少的空单元格。

Constaints:

  • 您无法移动元素,您只能确定是否可以分配具有给定位置和宽度的元素
  • 宽度为j的元素具有将来分配的k概率,宽度2(高),宽度3(中),宽度4(低)
  • 使用相同的x1或x2
  • 不能超过3个元素
  • 最小化沿x轴的元素之间的空单元数

网格示例:

Example

棘手的部分是我不知道将分配哪些元素,我只能根据上面定义的概率逻辑来预测网格的填充方式。

我正在寻找一种算法来解决这个问题,任何提示都会受到赞赏。

非常感谢!

1 个答案:

答案 0 :(得分:0)

假设Grid是一个2-dim-array,用Empty初始化 - 值。 Python中的解决方案可能是:

def fitsInGrid(x1,y,w): 
  return all([Grid[x1+x,y] is Empty for x in range(w)])