Cómo secuenciar n Trabajos en una Máquina para minimizar Setup

El orden o secuencia en el cual se programan n trabajos en una máquina es significativo a la hora de estimar los tiempos de setup para pasar de un determinado trabajo a otro o incluso comenzar con cualquiera de ellos al inicio de la planificación.

En este contexto se reconoce formalmente como tiempo de setup la cantidad de tiempo necesario para preparar una máquina para realizar una operación diferente y cumplir con las especificaciones del cliente (estos tiempos de setup pueden representar por ejemplo calibración de la máquina, cambio de formatos, limpieza, mantención preventiva, etc).

En el siguiente artículo formularemos y resolveremos un modelo de Programación Entera que permita encontrar una secuenciación óptima de n trabajos en una máquina, lo cual será contrastado con la solución que se puede obtener por simple enumeración de secuencias, naturalmente para un número de trabajos “pequeño” (para fines académicos).

En general si se deben programar n trabajos en una máquina, la cantidad de secuencias posibles son n!.

Por ejemplo si tenemos 3 trabajos (n=3) que debemos asignar a una máquina la cantidad de secuencias posibles son 6 (3!=3*2*1). Lo anterior implica que aún para centros de trabajos pequeños es útil contar con un procedimiento que permita identificar aquella secuencia que minimice el makespan sin tener la necesidad de hacer una evaluación exhaustiva de cada una de ellas.

Consideremos un conjunto de trabajos que necesitan ser asignados a una cierta máquina, todos los cuales están disponibles al inicio de la programación y se conoce los tiempos de proceso y fechas de entrega como muestra la siguiente tabla:

tabla-tiempos-procesos-y-en

Sin embargo, el tiempo de setup, correspondiente al tiempo requerido para preparar la máquina antes de cada trabajo, depende del trabajo que le precede. A continuación se indica los tiempos de setup aij cuando al trabajo j le precede el trabajo i:

tabla-tiempos-de-setup

Adicionalmente hay un tiempo de setup a0j asociado al primer trabajo a programar de acuerdo a los siguientes valores:

tiempos-de-setup-inicial

El objetivo entonces es programar las actividades de modo de minimizar el tiempo de utilización de la máquina (makespan) como resultado de la asignación propuesta. Notar que según lo descrito anteriormente el problema admite 6 secuencias posibles las cuales se enumeran a continuación para poder obtener el makespan de la programación.

  • Secuencia 1-2-3: 1+9+1+13+3+10=37[t]
  • Secuencia 1-3-2: 1+9+0+10+1+13=34[t]
  • Secuencia 2-1-3: 3+13+2+9+0+10=37[t]
  • Secuencia 2-3-1: 3+13+3+10+3+9=41[t]
  • Secuencia 3-1-2: 4+10+3+9+1+13=40[t]
  • Secuencia 3-2-1: 4+10+1+13+2+9=39[t]

Naturalmente la secuencia óptima es 1-3-2 con un makespan de 34[t]. Como el trabajo 1 es el que inicia la secuencia tiene un setup inicial de a01=1 y requiere de 9[t] para ser completado. A continuación sigue el trabajo 3 que dura 10[t] y como es el trabajo 1 el que le precede no se requiere tiempo de setup (a13=0). Finalmente se realiza el trabajo 2 con duración de 13[t], necesitándose 1[t] para pasar del trabajo 3 al trabajo 2 (a32=1).

Para abordar el problema anterior a través de un modelo de optimización definiremos el siguiente problema de Programación Entera que claramente permite extender su aplicación a problemas de mayor tamaño (número de trabajos):

Variables de Decisión:

variables-de-decision-probl

Para i=1,2,3j=0,1,2,3 con i≠j. Por ejemplo si X10=1 esto indica que el trabajo 1 es el que se realiza inmediatamente después del trabajo 0, es decir, el trabajo 1 es el que inicia la secuencia.

Función Objetivo:

En la implementación computacional con Solver de Excel la función objetivo se representa a través de la siguiente fórmula:

formula-funcion-objetivo-pr

Para mayor claridad a continuación un extracto de la pantalla del modelo computacional:

formula-funcion-objetivo-se

Se busca minimizar el makespan de la secuencia. Notar que se suman las constantes asociadas al tiempo de proceso de cada trabajo (las cuales son independientes de la secuencia y justifican que inicialmente el valor de la celda que representa la función objetivo sea igual a 32[t]) y que eventualmente se pueden omitir de la función objetivo (en dicho caso el valor óptimo representaría la sumatoria de los tiempos de setup de la secuencia y no el makespan de la programación).

Restricciones:

Se deben realizar los 3 trabajos:

se-deben-realizar-los-traba

A lo más una tarea sigue a la j-ésima al menos que sea la última de la secuencia:

a-lo-mas-una-tarea-sigue-a-

Alternativas infactibles: (celdas color rojo en la planilla de cálculo)

alternativas-infactibles-se

Debe existir un trabajo inicial en la secuencia:

trabajo-inicial-setup

Luego de resolver con Solver el problema anterior se alcanza la siguiente solución óptima y valor óptimo:

solucion-optima-problema-se

Donde se corrobora que la secuencia óptima es 1-3-2 con un makespan de 34[t]. A continuación puedes descargar el archivo Excel con la resolución del problema anterior en el siguiente enlace: Minimizar Tiempos de Setup.

Rating: 5.0. From 1 vote.
Please wait...

, , , , , , ,

3 Comentarios para Cómo secuenciar n Trabajos en una Máquina para minimizar Setup

  1. Julia Fernández Castillo 20/02/2014 en 8:02 #

    Muchas gracias.
    Lo que no comprendo es que la fecha de entrega del primer producto sea el día 37, los meses tienen como máximo 31 días.

    ¿Se considera que esta empresa tiene Lean Manufacturing ( TPS) ?

    • GEO Tutoriales 21/02/2014 en 6:45 #

      @Julia. El ejemplo considera días de corrido y por tanto no es necesario asumir que un mes tiene 30 0 31 días. Tampoco es estrictamente necesario asumir que se está utilizando Lean Manufacturing.

  2. Jose 10/04/2015 en 2:18 #

    Julia por algo hablan de días y no de mes…si dices que sobran días para hablar de un mes, es como decir que faltan días para el año… No implica reglas para agrupar días dentro de una denominación de conjuntos.

Deja un comentario