【发布时间】:2011-03-04 17:22:57
【问题描述】:
我有一个网格(不一定是正方形,但我将其画成正方形以简化它)以及与每个较小正方形相关的某些值。给定一个半径为x 的圆,我试图找到值之和为最大值的区域。下面这张图就清楚了:
我的猜测是,如果使用大量小正方形将平面划分为网格,将圆近似为正方形只会导致一些过度近似,这对我来说最初是可以的,因为我还没有最终确定如何解决圆与部分正方形重叠的情况(它的值是多少?)。
我能想到的最简单的方法是蛮力:也许从左下角开始,然后开始以之字形路径移动,直到我们到达右上角并输出总和最大的区域。我对这种方法很好,但是对于大平面区域,会有大量的正方形,并且在某些情况下这种方法可能会被证明是昂贵的。我不确定是否有更好的方法来解决这个问题,但如果有人对如何解决这个问题有其他想法,我将不胜感激。
【问题讨论】:
-
圆心允许的位置有哪些?沿着边缘?在顶点?任何地方?
-
空间数据库有可能吗? R-Tree 怎么样?
-
@belisarius:到目前为止,我到处都在思考(因为我的区域是离散的,它主要是整数或者可能是 0.5 的增量),但是问题在当前状态下确实是开放的,并且可以改变只要我能够获得感兴趣的区域(总和更高),我就可以构建场景。
-
@rlb.usa:很有趣。你能详细说明一下吗?我没有想到空间数据库,想确定你的意思。
-
您是否正在寻找一种方法来优化您的搜索以优化更大的总和区域大小或更大的网格进行搜索?
标签: algorithm optimization search artificial-intelligence max