C. Desivo
Caso

Optimización: carga de contenedores y programación de la producción

§← Todos los casos

Casos recientes

Estos dos corren sobre datos de ejemplo generados, así que puedo mostrar cada número. Desarrollé herramientas como estas para clientes, en carga de contenedores, job-shop scheduling, programación de la producción y planificación de circulación de trenes, y esos datos son privados.

Carga de contenedores: 2 contenedores en lugar de 3

Un envío de 204 bultos, desde cajas sueltas hasta cajones de máquinas de más de una tonelada, tiene que viajar en contenedores high cube de 40 pies. Cargado en el orden de su packing list, necesita tres contenedores, y el último sale lleno apenas al 28%. Con el plan de carga que calculó mi optimizador, entra todo en dos.

Los dos contenedores del plan optimizado, en corte para mostrar la carga: 89% y 82% de ocupación
Cargado según la lista3 contenedores
85%
58%
28%
Con mi optimizador2 contenedores
89%
82%
no hace falta
Fig. 1Ocupación de cada contenedor, por volumen. Los mismos 204 bultos, el mismo límite de peso de 28,6 t, las mismas reglas de apilado.

Cada plan respeta la carga útil de cada contenedor, mantiene derechos los cajones marcados "este lado hacia arriba", apoya al menos el 80% de la base de cada bulto apilado sobre la carga de abajo y viene con un orden de carga que el depósito puede seguir desde las puertas. Funciona a partir de una planilla con medidas, pesos y cantidades.

Un contenedor cargado en cuatro pasos, desde la pared del fondo hasta las puertas, junto a las seis reglas verificadas en el plan final
Fig. 2La secuencia de carga de un contenedor y las reglas verificadas en la disposición final.

Programación de la producción: pedidos atrasados de 10 a 3

Un taller fabrica 34 máquinas a medida, 746 tareas en total, en 8 bahías de montaje, con 26 operarios que tienen uno o dos oficios cada uno. Cada máquina es una red de tareas que dependen unas de otras y de entregas de piezas. Si se trabaja en el orden en que llegaron los pedidos, 10 se entregan tarde. Mi planificador decide qué pedido va a qué bahía y quién hace cada tarea, hora por hora.

Vista 3D de las ocho bahías de montaje en un momento del plan, con cada máquina armada según las tareas terminadas hasta ese momento
En el orden de llegadaCon mi planificador
Pedidos atrasados103
Atraso total31 días hábiles4 días
Última entregadía 75día 70
Fig. 3Mismos pedidos, misma gente, mismas bahías. Los dos planes respetan las dependencias entre tareas, los oficios y la cantidad de personas que necesita cada tarea, una máquina por bahía y las fechas de entrega de piezas.

El resultado es un plan de entregas por pedido y una hoja de trabajo diaria para cada operario, con sus tareas, bahías, horarios y compañeros.

Seis hojas de trabajo impresas de un día del plan, junto a las reglas verificadas en la programación completa
Fig. 4Hojas de trabajo de un día y las reglas verificadas en el plan completo.

Otros trabajos de optimización

Además de estos dos, modelé y resolví muchos otros problemas de optimización: problemas combinatorios sobre grafos, conjuntos y permutaciones, con metaheurísticas como recocido simulado, búsqueda tabú y algoritmos genéticos (DEAP, PyGAD); job-shop scheduling formulado en Pyomo y PuLP; problemas multiobjetivo con pymoo; y modelos de programación entera mixta resueltos con OR-Tools, CPLEX y Gurobi. Para las instancias más difíciles combiné solvers exactos con heurísticas, y usé procesamiento en paralelo para escalar.

Relacionado: Optimizar la carga de contenedores: tu embarque en menos contenedores · ¿Tu modelo de optimización da infactible o es demasiado lento? Te ayudo a que resuelva · ¿Pedidos siempre atrasados? Armá el plan de producción según tu capacidad real