Vấn đề như sau:
Chúng tôi có một mảng hai chiều / lưới số, mỗi số đại diện cho một số "lợi ích" hoặc "lợi nhuận". Chúng tôi cũng có hai số nguyên cố định và (cho "chiều rộng" và "chiều cao".) Và một số nguyên cố định .h n
Bây giờ chúng tôi muốn phủ lên hình chữ nhật có kích thước trên lưới sao cho tổng tổng giá trị của các ô trong các hình chữ nhật này được tối đa hóa.w × h
Hình ảnh sau đây là một ví dụ về lưới hai chiều với hai hình chữ nhật như vậy được phủ lên trên nó (hình ảnh không thể hiện giải pháp tối ưu, chỉ là một lớp phủ có thể có trong đó và )n = 2
Các hình chữ nhật không thể giao nhau (nếu không chúng ta chỉ cần tìm vị trí tối ưu cho một hình chữ nhật và sau đó đặt tất cả các hình chữ nhật vào vị trí đó.)
Trong ví dụ trên, tổng giá trị trong các ô sẽ là
Điều này có giống với bất kỳ vấn đề đã biết nào trong tối ưu hóa tổ hợp không? để tôi có thể bắt đầu đọc và cố gắng tìm cách giải quyết nó.
Một số nền tảng cho những người quan tâm:
Cho đến nay, những ý tưởng duy nhất tôi có là thuật toán tham lam (sẽ tìm vị trí tốt nhất cho hình chữ nhật đầu tiên, sau đó tìm vị trí không chồng lấp cho hình chữ nhật thứ hai, v.v.) hoặc một số siêu dữ liệu như thuật toán di truyền.
Trong thực tế, tôi muốn giải quyết vấn đề này bằng một lưới có khoảng một triệu ô và hàng chục nghìn (thậm chí hàng trăm nghìn) hình chữ nhật, mặc dù không cần thiết phải giải quyết trong một thời gian ngắn (nghĩa là có thể chấp nhận được thuật toán mất hàng giờ hoặc thậm chí vài ngày.) Tôi không mong đợi một giải pháp chính xác nhưng tôi muốn có được một giải pháp tốt nhất có thể với những ràng buộc này.
Chúc mừng!