我有一些的宽度和高度,其中每个单元可以是三种可能值的网格(呈现为白色,绿色和红色在该图示):网格算法的益智
illustration http://corexii.com/grid-algorithm-problem-2.png
您可以选择任何数量的绿色细胞(标记在下面的图示蓝色),其覆盖所述选择的细胞周围的预定平方半径(这里)所有红细胞(标记为黄色):
illustration http://corexii.com/grid-algorithm-problem-3.png
的目标是:
- 涵盖尽可能多的红细胞尽可能
- 使用尽可能少的蓝色细胞尽可能
- 做它尽可能快地
任何人有任何一个算法的想法?
我在看很多的理论,但我最感兴趣的是近似做这个快速而不是准确。快速,合理的结果比整天计算最佳结果要好。
(上面的图示可以呈现这些细胞的最正态分布,但不应当被假定为像的所有可能的分布。)
你的目标很模糊。是否有优先顺序或效用函数? – 2012-03-20 23:09:22
要求#3可能很难,因为它要求您证明没有算法比找到的算法更快。 – Kaz 2012-03-20 23:11:36
我会使用边界矩形的概念:包含所有红色单元格的最小矩形区域。我怀疑该解决方案将具有覆盖方块在该边界矩形内的属性(前提是'n'能够适合该矩形)。因为没有红细胞可以覆盖,所以在矩形外面横行并没有达到任何效果。你只会减少该广场的潜在覆盖面。 – Kaz 2012-03-20 23:14:18