¿Qué algoritmo puede usarse para empaquetar rectángulos de diferentes tamaños en el rectángulo más pequeño posible de una manera bastante óptima?

Tengo un montón de objetos rectangulares que necesito empacar en el espacio más pequeño posible (las dimensiones de este espacio deben ser potencias de dos).

Soy consciente de varios algoritmos de empaquetado que empaquetarán los elementos lo mejor posible en un espacio determinado, sin embargo, en este caso, necesito que el algoritmo determine cuán grande debe ser ese espacio.

Por ejemplo, digo que tengo los siguientes rectángulos

128 * 32128 * 6464 * 3264 * 32

Se pueden empaquetar en un espacio de 128 * 128

 _________________
|128*32          |
|________________|
|128*64          |
|                |
|                |
|________________|
|64*32  |64*32   |
|_______|________|

Sin embargo, si también hubiera 160 * 32 y 64 * 64, se necesitaría un espacio de 256 * 128.

 ________________________________
|128*32          |64*64  |64*32  |
|________________|       |_______|
|128*64          |       |64*32  |
|                |_______|_______|
|                |               |
|________________|___            |
|160*32              |           |
|____________________|___________|

¿Qué algoritmos hay que pueden empaquetar un montón de rectángulos y determinar el tamaño requerido para el contenedor (a una potencia de 2 y dentro de un tamaño máximo determinado para cada dimensión)?

Respuestas a la pregunta(7)

Su respuesta a la pregunta