Il problema è il seguente:
Abbiamo una matrice / griglia di numeri bidimensionali, ognuno dei quali rappresenta qualche "vantaggio" o "profitto". Abbiamo anche due numeri interi fissi e (per "larghezza" e "altezza".) E un numero intero fisso .h n
Vogliamo ora sovrapporre rettangoli di dimensioni sulla griglia in modo tale che la somma totale dei valori delle celle in questi rettangoli sia massimizzata.w × h
L'immagine seguente è un esempio di una griglia bidimensionale con due di questi rettangoli sovrapposti su di essa (l'immagine non mostra la soluzione ottimale, ma solo una possibile sovrapposizione dove e )n = 2
I rettangoli non possono intersecarsi (altrimenti dovremmo solo trovare la posizione ottimale per un rettangolo e quindi mettere tutti i rettangoli in quella posizione.)
Nell'esempio sopra la somma totale dei valori nelle celle sarebbe
È simile a qualche problema noto nell'ottimizzazione combinatoria? in modo che io possa iniziare a leggere e provare a trovare il modo di risolverlo.
Qualche altro background per chi è interessato:
Finora le uniche idee che avevo erano o un algoritmo avido (che avrebbe trovato la posizione migliore per il primo rettangolo, quindi avrebbe trovato la loctaion non sovrapposta per il secondo rettangolo ecc.) O alcuni metauristici come algoritmi genetici.
In realtà desidero risolvere questo problema con una griglia che ha circa un milione di celle e decine di migliaia (o addirittura centinaia di migliaia) di rettangoli, anche se non è necessario risolverlo in breve tempo (cioè sarebbe accettabile per l'algoritmo impiegherà ore o addirittura giorni.) Non mi aspetto una soluzione esatta, ma voglio ottenerne una che sia il più buona possibile alla luce di questi vincoli.
Saluti!