28

Tengo un problema con el empaquetamiento tridimensional y actualmente estoy realizando algunas investigaciones preliminares sobre qué algoritmos/heurísticas están produciendo los mejores resultados. Dado que el problema es NP difícil, no espero encontrar la solución óptima en todos los casos, pero me preguntaba:Algoritmos tridimensionales de empaquetadura de contenedores

1) ¿Cuáles son los mejores solucionadores exactos? Rama y Bound? ¿Qué tamaños de instancia de problema puedo esperar resolver con recursos informáticos razonables?
2) ¿Cuáles son los mejores solucionadores heurísticos?
3) ¿Qué soluciones listas para usar existen para realizar algunos experimentos?

+0

¿Está cajas de embalaje en contenedores en forma de caja? ¿Puedes rotar cajas para que quepan? –

+0

Karpreduction, salta pasos sin resolver ("perfecto") isomorphy seguro complicado podemos –

+0

http://stackoverflow.com/questions/1563271/3d-bin-packing-algorithm –

Respuesta

2

De wikipedia:

Aunque these simple strategies son a menudo lo suficientemente bueno, algoritmos de aproximación eficientes han demostrado que puede resolver el problema de embalaje bin dentro de cualquier porcentaje fijo de la solución óptima para suficientemente grandes entradas

Aquí están las dos fuentes que dan para esto:

+0

Tenga en cuenta que al menos el documento "1 + ε" se refiere al problema de empaque de contenedores unidimensional, mientras que la pregunta es sobre el empaque tridimensional (de cajas, supongo). Las estrategias simples se generalizan trivialmente a tres dimensiones; No estoy seguro de los más sofisticados. –

+0

"(de cajas, supongo)" - cerca pero no del todo. Estoy lidiando con armazones de madera que se unen para formar vigas y formas más grandes. Dado que el proceso de prensado es la parte de la producción más larga y más costosa, la cuestión es cómo cargar la máquina de manera óptima. – BuschnicK

6

En cuanto a soluciones ya, echa un vistazo a MAXLOADPRO para la carga de camiones. Puede configurarse para cargar cualquier volumen rectangular, pero aún no lo he intentado. En general, los problemas de empaquetamiento en 3d tienen la complicación adicional de que los objetos pueden rotarse en diferentes posiciones, por lo que para cualquier objeto con una longitud, ancho y altura dados, efectivamente debe crear tres variables que representen cada posición, pero solo use una en la solución.

En general, las formulaciones MIP independientes (o bifurcadas y encuadernadas) no funcionan bien para el problema 2d o 3d, pero la programación de restricciones ha tenido cierto éxito produciendo soluciones exactas para el problema 2d. Mira esto abstract. Sin mirar el documento, me gusta el enfoque de descomposición para el problema en el que intentas minimizar el número de contenedores del mismo tamaño. No he visto tantos resultados para el problema 3d, pero háganos saber si encuentra alguno que pueda implementarse.

¡Buena suerte!

0

Usted pregunta es similar a: 3d bin packing algorithm

Aunque, debido a que dis-permitir la rotación, usted puede obtener muy buenos resultados. Sugiero mirar más hacia una solución FIRST-FIT-DECREASING.

1

Mejor solucionador exacto: Utilice dynamic programming.

las variables

Estado:

  1. elementos que tiene envasados ​​y se desecha.
  2. Espacio lleno en el contenedor.

Si el contenedor es una cuadrícula paralelepípeda, y los elementos "encajan" en celdas exactas de la cuadrícula, puede usar una matriz tridimensional para representar la variable de estado 2.De lo contrario, tendrá que usar estructuras de datos más complejas.

mejores solucionadores de heurísticas

que no conozco. Tal vez Variable Neighborhood Search. Hay algunas similitudes entre su problema y el problema de construcción del horario (en el que estoy trabajando), por lo que la misma heurística podría ser buena para ambos.

Off-the-shelf soluciones para llevar a cabo experimentos

Lo siento, no tienen ni siquiera una pista.

+0

¿Cuáles son ejemplos de estructuras de datos más complejas? – Kasparov92

0

3dbinpacking es una solución comercial (no es un algoritmo) que expone una API para consumir con una buena visualización. Ofrece:

  • bin solo embalaje
  • bin Multi embalaje
  • Encuentra tercera dimensión
  • encontrar un bin dimensiones