¿Cuáles son los algoritmos más versátiles para resolver problemas de empaque 3D?

Ser clasificado como “NP duro” implica que no hay una solución que sea versátil para cualquier condición. De hecho, hay muchas cepas de 3DBP que no se pueden resolver de la misma manera. Por ejemplo, algunos problemas de 3DBP incluyen la rotación, la altura variable del contenedor, el equilibrio de carga o la cobertura del conjunto con múltiples contenedores.

Aun así, el problema 3DBP es un buen problema para agudizar sus habilidades, así que aquí hay algunas técnicas que he aplicado en mi investigación.

  1. Programación lineal: con un poco de investigación, puede escribir el escenario 3DBP como una mezcla de ecuaciones de álgebra lineal y booleana. Resolverlos simultáneamente produce todas las coordenadas posibles. Minimizar las coordenadas empaqueta los elementos perfectamente. Tenga en cuenta que esto a menudo se implementa de una manera computacionalmente exigente, así que elija su entorno de programación con cuidado.
  2. Para un enfoque más directo, considere cada parte del problema. Probar si un elemento está dentro de la caja por completo, si se superpone con otros elementos, si puede girar alrededor de un pivote, cómo está orientado la gravedad, etc. Resuelva cada problema de manera simple y holística y combínelo en un bucle. Este es su solucionador de fuerza bruta, por lo que desea que sea rápido a expensas de ser tonto. Cuando tenga un solucionador de fuerza bruta estable, concéntrese en incorporar estrategias y programación dinámica para evaluar decisiones y reducir operaciones redundantes.

More Interesting

¿Crees que P = NP o no? ¿Por qué?

¿Qué haría como programador (específicamente un ingeniero de software) que implicaría un conocimiento matemático sólido?

¿Cuáles son los problemas en informática para los cuales se conoce con certeza la mejor complejidad computacional absoluta?

¿Qué matemáticas se usan en los algoritmos?

Si no disfruto de las matemáticas / aprender sobre matemáticas, ¿debo abandonar una carrera profesional que implica codificación (programación / desarrollo web / etc.)?

¿Por qué Matlab no le permite llamar a las funciones dos veces o indexarlas como en f (x) (y)?

¿Qué tan grande es el almacenamiento necesario para almacenar todas las combinaciones de números primos de 4096 bits como una tabla de búsqueda para descifrar RSA?

¿Qué tan probable es que las computadoras alienígenas se basen en algo equivalente a un UTM?

Si las computadoras no pueden calcular números flotantes con precisión, ¿cómo funcionan las calculadoras y las computadoras científicas?

¿Cuáles son las ventajas del costeo variable?

¿Cuál es el propósito del software matemático computacional?

¿Cómo funciona el proceso de eliminación en una lista vinculada? ¿Es solo eliminando la referencia del nodo? ¿Qué mecanismo se utiliza para disponer un nodo?

¿Por qué soy bueno en cursos intensivos de programación, pero sigo reprobando en cursos de teoría de informática? ¿Estoy en condiciones de ser ingeniero de software?

¿Cómo explicaría la devolución a un público en general?

Programación competitiva: ¿cómo se soluciona este problema en el Quora Haqathon?