Menú Cerrar

Ejemplo asignación de personal a una operación programación lineal

Esta aplicación de la programación lineal busca asignar personal —operadores, abogados, médicos, ingenieros, etc.— a una tarea, actividad, proyecto, etc. En la solución cada persona debe estar asignada a alguna actividad y cada actividad debe estar asignada a una persona.

Consideremos el siguiente ejemplo:

Un pequeño taller realiza 3 operaciones. El supervisor desea asignar a un operador a cada operación de tal manera que se aproveche mejor el tiempo.

Las operaciones son fresado, rectificado y ensamble, el tiempo en minutos que tarda cada operador en realizar dichas operaciones son:

  • Operador 1: 32, 19 y 29, respectivamente
  • Operador 2: 26, 25 y 20, respectivamente
  • Operador 3: 36, 28 y 26, respectivamente

Paso 1. Ordenar la información

La información relevante se puede ordenar en una tabla.

Paso 2. Identificar el objetivo y las restricciones

El objetivo es asignar operaciones a los operadores de tal manera que se aproveche mejor el tiempo. El objetivo es minimizar el tiempo total de la asignación.

Se identifican 2 grupos de 3 restricciones cada uno. El primer grupo de restricciones establece que cada operador debe asignarse a una operación:

  • El operador 1 debe ser asignado a una operación
  • El operador 2 debe ser asignado a una operación
  • El operador 3 debe ser asignado a una operación

El segundo grupo de restricciones establece que cada operación debe asignarse a un operador:

  • La operación fresado debe ser asignada a un operador
  • La operación rectificado debe ser asignada a un operador
  • La operación ensamble debe ser asignada a un operador

Paso 3. Definir variables de decisión

Lo que se desea determinar es qué operador se asigna a cada operación. Las variables de decisión se definen como:

Sean X_{ij} las variables de decisión tal que X_{ij}=1 si el operador i se asigna a la operación j y X_{ij}=0 en otro caso, para i=1, 2 y 3 y j=1, 2 y 3. Podemos usar la siguiente notación:

X_{ij}=\left\lbrace\begin{array}{c} 1~si~el~operador~i~se~ asigna~a~la~operaci\acute{o}n~j \\ 0~otro~caso \end{array}\right.

Paso 4. Definir la función objetivo

Ahora podemos definir la función objetivo en función de las variables de decisión que se han adoptado:

Min~T=32X_{11}+19X_{12}+29X_{13}+26X_{21}+25X_{22}+20X_{23}+36X_{31}+28X_{32}+26X_{33}

Los coeficientes de la función objetivo son los tiempos que cada operador requiere para completar cada una de las tres operaciones. Por ejemplo, el primer término nos dice que el operador 1 (i=1) tarda 32 minutos en realizar la operación de fresado (j=1), el quinto término nos dice que el operador 2 (i=2) tarda 25 minutos en completar la operación de rectificado (j=2) y el noveno término significa que el operador 3 (i=3) requiere de 26 minutos para finalizar la operación de ensamble (j=3).

Paso 5. Definir las restricciones

El primer grupo de restricciones determina que cada operador debe ser asignado a una operación. Dicho de otro modo, cada operador puede realizar solamente una de las operaciones.

El operador 1 (i=1) debe ser asignado a una de las tres operaciones (j=1, 2 y 3):

X_{11}+X_{12}+X_{13}=1

El operador 2 (i=2) debe ser asignado a una de las tres operaciones (j=1, 2 y 3):

X_{21}+X_{22}+X_{23}=1

El operador 3 (i=3) debe ser asignado a una de las tres operaciones (j=1, 2 y 3):

X_{31}+X_{32}+X_{33}=1

Para escribir el segundo grupo de tres restricciones utilizamos un razonamiento semejante: cada operación debe asignarse a un único operador.

La operación fresado (j=1) debe ser asignada a un único operador (i=1, 2 y 3):

X_{11}+X_{21}+X_{31}=1

La operación rectificado (j=2) debe ser asignada a un único operador (i=1, 2 y 3):

X_{12}+X_{22}+X_{32}=1

La operación ensamblado (j=3) debe ser asignada a un único operador (i=1, 2 y 3):

X_{13}+X_{23}+X_{33}=1

Paso 6. Establecer la no negatividad

Este paso es ineludible en los problemas de programación lineal:

X_{ij}\geq0

Pero es importante señalar que las variables de decisión son mayores o iguales a cero por definición debido a que son binarias:

X_{ij}=\left\lbrace\begin{array}{c} 1~si~el~operador~i~se~ asigna~a~la~operaci\acute{o}n~j \\ 0~otro~caso \end{array}\right.

Es decir, solamente pueden tomar dos valores: 0 o 1.

Paso 7. Presentar el modelo completo

Sean las variables de decisión:

X_{ij}=\left\lbrace\begin{array}{c} 1~si~el~operador~i~se~ asigna~a~la~operaci\acute{o}n~j \\ 0~otro~caso \end{array}\right.

Min~T=32X_{11}+19X_{12}+29X_{13}+26X_{21}+25X_{22}+20X_{23}+36X_{31}+28X_{32}+26X_{33}

Sujeto a:

X_{11}+X_{12}+X_{13}=1

X_{21}+X_{22}+X_{23}=1

X_{31}+X_{32}+X_{33}=1

X_{11}+X_{21}+X_{31}=1

X_{12}+X_{22}+X_{32}=1

X_{13}+X_{23}+X_{33}=1

X_{ij}\geq0

La solución obtenida con Solver en Excel es la siguiente:

T^*=71,~X_{12}^{*}=1,~X_{21}^{*}=1~X_{33}^{*}=1

El tiempo mínimo para realizar las tres operaciones es de 71 minutos, se logra asignando al operador 1 a rectificado, al operador 2 a fresado y el operador 3 a ensamblado.

También te puede interesar:

Cómo citar

Editor. (29 julio 2020). Ejemplo asignación de personal a una operación programación lineal. Celeberrima.com. Última actualización el 09 marzo 2022.