El problema es el siguiente:
Tenemos una matriz / cuadrícula bidimensional de números, cada uno representa algún "beneficio" o "beneficio". También tenemos dos enteros fijos y (para "ancho" y "altura"). Y un entero fijo .
Ahora deseamos superponer rectángulos de dimensiones en la cuadrícula de modo que se maximice la suma total de los valores de las celdas en estos rectángulos.
La siguiente imagen es un ejemplo de una rejilla bidimensional con dos de tales rectángulos superpuestos en él (la imagen no demuestra la solución óptima, sólo una posible superposición donde y )
Los rectángulos no pueden cruzarse (de lo contrario, solo tendríamos que encontrar la posición óptima para un rectángulo y luego colocar todos los rectángulos en esa posición).
En el ejemplo anterior, la suma total de valores en las celdas sería
¿Es esto similar a algún problema conocido en la optimización combinatoria? para que pueda comenzar a leer un poco e intentar encontrar formas de resolverlo.
Algunos antecedentes más para los interesados:
Hasta ahora, las únicas ideas que tenía son un algoritmo codicioso (que encontraría la mejor ubicación para el primer rectángulo, luego encontraría la loctaión no superpuesta para el segundo rectángulo, etc.) o algunos metaheurísticos como los algoritmos genéticos.
En realidad, deseo resolver este problema con una cuadrícula que tiene alrededor de un millón de celdas y decenas de miles (o incluso cientos de miles) de rectángulos, aunque no es necesario resolverlo en poco tiempo (es decir, sería aceptable para el algoritmo puede llevar horas o incluso días.) No espero una solución exacta, pero quiero obtener una que sea lo mejor posible, dadas estas limitaciones.
¡Salud!