Masalahnya adalah sebagai berikut:
Kami memiliki array dua dimensi / kisi angka, masing-masing mewakili beberapa "manfaat" atau "keuntungan." Kami juga memiliki dua bilangan bulat tetap dan (untuk "lebar" dan "tinggi".) Dan bilangan bulat tetap .h n
Kami sekarang ingin melampui segi empat dimensi pada kisi sedemikian sehingga jumlah total nilai sel dalam segi empat ini dimaksimalkan.w × h
Gambar berikut adalah contoh dari grid dua dimensi dengan dua persegi panjang seperti itu overlay di atasnya (gambar tidak menunjukkan solusi optimal, hanya satu kemungkinan overlay di mana dan )n = 2
Persegi panjang tidak dapat berpotongan (jika tidak kita hanya perlu menemukan posisi optimal untuk satu persegi panjang dan kemudian meletakkan semua persegi panjang di posisi itu.)
Dalam contoh di atas, jumlah total nilai dalam sel adalah
Apakah ini mirip dengan masalah yang diketahui dalam optimasi kombinatorial? sehingga saya dapat mulai membaca dan mencoba menemukan cara untuk menyelesaikannya.
Beberapa latar belakang untuk mereka yang tertarik:
Sejauh ini satu-satunya ide yang saya miliki adalah algoritma serakah (yang akan menemukan lokasi terbaik untuk persegi panjang pertama, kemudian menemukan lokasi non-tumpang tindih untuk persegi panjang kedua dll) atau beberapa metaheuristik seperti algoritma genetika.
Pada kenyataannya saya ingin menyelesaikan masalah ini dengan grid yang memiliki sekitar satu juta sel dan puluhan ribu (atau bahkan ratusan ribu) persegi panjang, meskipun tidak perlu untuk menyelesaikannya dalam waktu singkat (yaitu akan diterima untuk algoritma untuk mengambil jam atau bahkan berhari-hari.) Saya tidak mengharapkan solusi yang tepat tetapi saya ingin mendapatkan yang sebaik mungkin mengingat kendala-kendala ini.
Bersulang!