Progreso del curso: 0%
Tema 1.8

Asignación y secuenciación de cargas de trabajo

1.8 Asignación y secuenciación de cargas de trabajo

Después de planificar la producción estratégica, definir volúmenes agregados, desagregar en productos concretos, calcular requerimientos de materiales, y verificar que la capacidad es suficiente, llega el paso final y quizás más crítico operativamente: decidir exactamente en qué orden y a qué máquinas se procesa cada tarea. La asignación de cargas responde la pregunta: ¿cuál de las máquinas disponibles procesará cada pieza o lote? La secuenciación determina: ¿en qué orden exacto se procesarán las tareas en cada máquina? Estas dos decisiones conjuntas (asignación + secuenciación) tienen impacto directo en tiempos de entrega, costes de producción, utilización de máquinas, y cumplimiento de plazos.

En la práctica operativa, la asignación y secuenciación son responsabilidad del programador de producción o scheduler, quien frecuentemente toma estas decisiones bajo presión: un cliente urgente solicita adelantar una orden, una máquina se daña reduciendo capacidad, un proveedor retrasa materias primas. La experiencia y el conocimiento de técnicas de optimización determinan si estas decisiones son casuales (y frecuentemente subóptimas) o estratégicas. Herramientas de programación avanzada, desde simples reglas hasta sistemas de Finite Capacity Scheduling integrados en ERP, permiten tomar estas decisiones de forma más sistemática y óptima.

Problema de asignación: determinación de máquina

En plantas con máquinas redundantes o polivalentes (varias máquinas pueden hacer el mismo trabajo), la asignación no es obvia. Si dos tornos pueden procesar una pieza, ¿cuál elegir? Los criterios pueden ser: menor tiempo de setup (si una máquina está equipada para pieza similar), menor tiempo total esperado (considerando que la otra máquina tiene cola), menor coste (una máquina es más eficiente), o mejor calidad (una máquina produce tolerancias más ajustadas). En plantas complejas con máquinas especializadas, la asignación está condicionada: solo dos máquinas pueden hacer la pieza, forzando la elección. Pero en plantas más generales, hay flexibilidad que se debe explotar.

El problema de asignación se formaliza como un problema de optimización: asignar n tareas a m máquinas minimizando coste total o tiempo total. En casos pequeños (decenas de tareas, pocas máquinas), esto es resoluble por algoritmos exactos. En casos grandes (centenares de tareas), se usan heurísticas. La regla simple más común es asignar cada tarea a la máquina que minimice su tiempo de finalización (tiempo de inicio + tiempo de procesamiento), considerando la cola actual de cada máquina. Esto tiende a balancear cargas y reducir tiempos totales.

Problema de secuenciación: orden de procesamiento

Una vez decidida qué máquina procesará cada tarea, surge la pregunta: en qué orden. Si una máquina debe procesar las órdenes A, B, C, el orden A→B→C tiene un tiempo total de finalización diferente al orden B→C→A, especialmente considerando tiempos de setup entre órdenes. En casos simples (una máquina, múltiples tareas idénticas), el orden no importa. Pero en fabricación real, los tiempos de setup son significativos: cambiar de herramienta en CNC tarda 15 minutos, limpiar horno de tratamiento térmico tarda 20 minutos. El orden que minimiza setups totales puede no ser la secuencia por fecha de entrega.

Existen reglas heurísticas comprobadas para secuenciación. La regla FIFO (First In First Out) es simple: procesar en el orden que llegaron las órdenes. Es justa pero no optimiza nada. La regla SPT (Shortest Processing Time) procesa primero las tareas más cortas, minimizando tiempo promedio de espera. La regla DDATE (Due Date) ordena por fecha de entrega, minimizando tardanzas. La regla COST minimiza cambios de tipo (setup cost) agrupando tareas similares. En muchos casos, la solución óptima requiere balancear estos criterios: por ejemplo, usar SPT para los productos de corta entrega, y DDATE para los comprometidos hace tiempo.

Problema combinado: asignación y secuenciación simultánea

El desafío real es que asignación y secuenciación no son independientes. La mejor secuencia en máquina A puede ser completamente diferente si después ejecutamos en máquina B. Considérese una pieza que requiere: torneado (6 minutos), fresado (8 minutos), inspección (2 minutos). Si no hay cola en tornos pero hay dos órdenes esperando en fresadora, la pieza espera en fresadora incluso si torneado fue rápido. El problema combinado es NP-hard (computacionalmente intratable en caso general para instancias grandes), por lo que se usan heurísticas. Una aproximación común es el algoritmo de Johnson para dos máquinas: ordena tareas de modo a minimizar tiempo total en ambas máquinas. Para más máquinas o restricciones complejas, se usa simulación o solvers de programación lineal.

Sistemas dinámicos y reacción a perturbaciones

La planificación previa siempre enfrenta cambios: un cliente urgente con nuevo pedido, una máquina que se avería, un material que llega retrasado. Un programador puede replantear asignación y secuenciación completa (replanning completo), caro en tiempo, o hacer ajustes locales (adelantar una tarea, retrasar otra). Los sistemas de rescheduling buscan cambios mínimos que resuelvan la perturbación. Si la CNC se dañó durante 4 horas, quizás solo hay que reasignar 4 tareas que estaban planificadas en esa máquina a máquinas alternas, dejando el resto intacto. Esto minimiza la disruption del resto del cronograma.

Ejemplo práctico: Asignación y secuenciación en taller de manufactura celular

Un taller tiene 6 máquinas CNC organizadas en 3 células de 2 máquinas cada una. Célula 1 (máquinas CNC-A, CNC-B) especializada en piezas de aluminio, Célula 2 (CNC-C, CNC-D) en acero, Célula 3 (CNC-E, CNC-F) en aceros especiales. Se han aprobado 18 órdenes para la semana próxima: 8 de aluminio, 6 de acero, 4 de acero especial. Cada orden requiere diferentes tiempos de procesamiento y tienen diferentes fechas de entrega. El programador utiliza el siguiente proceso: (1) Asigna órdenes por célula según material: órdenes de aluminio → Célula 1, acero → Célula 2, etc. (2) Dentro de Célula 1, asigna 4 órdenes a CNC-A (la máquina más rápida para pequeñas piezas) y 4 a CNC-B (mejor para piezas grandes). (3) En cada máquina, aplica regla de secuenciación: ordena por fecha de entrega primero (asegurando cumplimiento), pero dentro de grupos con similar fecha, agrupa por tipo de herramienta (minimizando setup). El resultado: CNC-A procesa en orden: Orden-2 (entrega jueves, herramienta tipo-1), Orden-5 (entrega jueves, herramienta tipo-1), Orden-8 (entrega viernes, herramienta tipo-2), etc., manteniendo setups al mínimo mientras respeta fechas críticas. Si una orden urgente llega miércoles, el programador solo reasigna 1-2 órdenes que aún no iniciaron, minimizando disruption.

Ideas clave

  • La asignación determina qué máquina procesa cada tarea; en máquinas polivalentes, minimizar setup y balancear cargas son objetivos clave
  • La secuenciación determina el orden de tareas en cada máquina; reglas como SPT, DDATE, o COST optimizan diferentes criterios
  • El problema combinado de asignación + secuenciación es computacionalmente complejo; requiere heurísticas o solvers para soluciones prácticas
  • Tiempos de setup entre tareas pueden dominar tiempos de procesamiento, haciendo crucial agrupar tareas similares para minimizar cambios
  • Sistemas de rescheduling dinámico responden a perturbaciones (averías, cambios de demanda) con ajustes mínimos preservando viabilidad
  • Herramientas de Finite Capacity Scheduling en ERP automatizan asignación y secuenciación considerando múltiples restricciones simultáneamente
¿Has terminado este apartado? Tu progreso se guarda en este navegador. Regístrate para conservarlo en tu cuenta.