我想知道这个问题是否有一个“最优”的解决方案:
我有一个n×m(像素)大小的空间,上面有p个预先存在的矩形物体。现在,我想在这个空间中放置q(相同大小的)新对象,而不需要任何重叠。
我想出的算法:
[(n)/(size_of_object_from_q)]x[(n)/(size_of_object_from_q)]的数组Amark all fields in A[][] as occupied, where the element "lies"(孩子,我希望我能让你理解.)
有什么更好的方法吗?任何帮助都是非常感谢的!
发布于 2009-11-25 20:31:40
从互联网上的简单搜索来看,最优矩形包装似乎是一个NP-硬问题。我猜学术界的聪明人找到了一些近似算法,所以这是谷歌搜索的一种选择。
但是我试着让这个简单的方法先起作用:
我的猜测是,在许多情况下,这种天真的解决方案会奏效。
发布于 2009-11-25 20:24:58
如果我理解这个问题,听起来你在寻找一种“最优”的垃圾桶包装算法(也就是背包问题)。这是一个NP完全的问题,尽管你的描述听起来像是你可以用暴力强迫你的方式找到一个最优的解决方案。
发布于 2009-11-25 20:19:26
我知道这不是您问题的具体答案,但是研究和/或深入研究图文源代码可能是有用的。graphviz提供了许多布局模型,包括试图最小化全局能量函数的neato。
维基百科有一些用于力基算法的伪代码。
https://stackoverflow.com/questions/1799662
复制相似问题