问题如下:
我们有一个二维的数字数组/网格,每个数字代表某种“收益”或“利润”。我们也有两个固定整数和(分别表示“宽度”和“高度”。)和一个固定整数。
现在,我们希望在网格上覆盖尺寸为矩形,以使这些矩形中的单元格值的总和最大化。
下图是一个二维网格的示例,上面覆盖了两个这样的矩形(图片未展示最佳解决方案,只是其中和一种可能的覆盖)
矩形不能相交(否则,我们只需要找到一个矩形的最佳位置,然后将所有矩形放在该位置即可。)
在上面的示例中,单元格中值的总和为
这是否类似于组合优化中的任何已知问题?这样我就可以开始阅读并尝试找到解决方法。
那些感兴趣的人还有更多背景知识:
到目前为止,我仅有的想法是贪婪算法(它将找到第一个矩形的最佳位置,然后找到第二个矩形的不重叠位置等)或某种元启发式方法,例如遗传算法。
实际上,我希望使用具有大约一百万个单元和数万(甚至数十万)个矩形的网格来解决此问题,尽管没有必要在短时间内解决它(即对于该算法需要花费数小时甚至数天的时间。)我不希望找到确切的解决方案,但是我想得到一个在这些限制条件下尽可能好的解决方案。
干杯!