Menú Cerrar

Ejemplo paso a paso método húngaro de asignación investigación de operaciones

El método húngaro, también conocido como técnica de Flood, permite asignar trabajos, tareas, actividades, operaciones o proyectos de manera que se aprovechen mejor los recursos disponibles.

El método se puede resumir en 7 pasos:

  1. Ordenar la información en una tabla, por ejemplo, las filas pueden ser los recursos disponibles y las columnas las tareas, actividades, operaciones, etc.
  2. Identificar el valor mínimo de cada fila y restarlo de todos los valores de su correspondiente fila.
  3. Identificar el valor mínimo de cada columna y restarlo de todos los valores de su correspondiente columna.
  4. Trazar el número mínimo de líneas rectas para cubrir todos los ceros que han aparecido en la tabla. Podemos hacer una asignación óptima si el número de líneas es igual al número de columnas o igual al número de filas, en este caso continuamos con el paso 6. Si el número de líneas difiere del número de columnas o de filas continuamos al paso 5.
  5. Buscar el valor mínimo no cubierto para restarlo de todos los valores no cubiertos y sumarlo a los valores cubiertos por dos líneas. Regresar al paso 4.
  6. Buscar un cero único en filas y columnas para realizar una asignación, después, cancelamos la fila y columna correspondientes a la asignación. Repetimos este paso hasta que no queden asignaciones pendientes.
  7. Calculamos el valor mínimo logrado con la asignación. El valor mínimo puede ser un costo o un tiempo.

Ejemplo 1:

El siguiente ejemplo nos ayudará a exponer los pasos del método húngaro cuando la asignación óptima es inmediata:

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 en una tabla e identificar el valor mínimo de cada fila.

Las filas de la tabla corresponden a los operadores (1, 2 y 3), las columnas representan las operaciones, por ejemplo, el operador 2 tarda 25 minutos en completar la operación de rectificado.

Los tiempos mínimos de cada fila se muestran subrayados, en nuestro ejemplo representan la operación en la que cada operador se desempeña mejor.

Paso 2. Los valores mínimos identificados en el paso anterior se restan de todos los valores en su correspondiente fila e identificamos el valor mínimo de cada columna.

Por ejemplo, para la fila 1 —operador 1— se tiene un valor mínimo de 19 que se debe restar de 32, 19 y 29, con lo que se obtiene 13, 0 y 10.

Similarmente, para la fila 2 —operador 2— se tiene un valor mínimo de 20 que se debe restar de 26, 25 y 20, con lo que se obtiene 6, 5 y 0.

De manera semejante, para la fila 3 —operador 3— se tiene un valor mínimo de 26 que se debe restar de 36, 28 y 26, con lo que se obtiene 10, 2 y 0.

Para identificar los tiempos mínimos de cada columna los hemos subrayado.

Paso 3. Restamos los tiempos mínimos identificados en el paso anterior de todos los valores en su correspondiente columna.

Por ejemplo, para la columna fresado se tiene un valor mínimo de 6 que se debe restar de 13, 6 y 10, con lo que se obtiene 7, 0 y 4.

Análogamente, para la columna rectificado se tiene un valor mínimo de 0 que se debe restar de 0, 5 y 2, con lo que se obtiene 0, 5 y 2.

Finalmente, para la columna ensamblado se tiene un valor mínimo de 0 que se debe restar de 10, 0 y 0, con lo que se obtiene 10, 0 y 0.

Paso 4. Cubrir todos los ceros que aparecen en la tabla con la menor cantidad de líneas verticales y horizontales que sea posible.

Si el número de líneas es exactamente igual al número de filas o columnas es posible realizar una asignación óptima.

Hemos utilizado tres líneas para cubrir todos los ceros que aparecen en la tabla y tenemos tres filas o tres columnas. Podemos realizar la asignación óptima.

Paso 5. Inspeccionar cada fila y cada columna en busca de un cero único y realizamos la primera asignación.

La primera fila tiene un cero único en la segunda columna: asignamos al operador 1 a rectificado.

La línea horizontal cancela cualquier asignación más para el operador 1 puesto que ya se ha asignado a rectificado. Análogamente, la línea vertical cancela cualquier asignación más para rectificado debido a que ya se ha asignado al operador 1.

Paso 6. Repetimos el proceso del paso 5 en busca de un cero único en una fila o columna.

La primera columna tiene un cero único en la segunda fila: asignamos fresado al operador 2.

Las líneas horizontal y vertical se trazan puesto que se cancela la posibilidad de asignar una operación más al operador 2 debido que se le ha asignado fresado y, también, se anula la posibilidad de asignar un operador más a fresado ya que se le ha asignado al operador 2.

Paso 7. Repetimos el proceso del paso 5 en busca de un cero único en una fila o columna.

La única posibilidad que se tiene en este punto es asignar al operador 3 a ensamblado.

Paso 8. Calcular el valor óptimo de la asignación.

Sabemos que el operador 1 requiere de 19 minutos para completar la operación de rectificado, que el operador 2 tarda 26 minutos en finalizar la operación de fresado y que el operador 3 necesita de 26 minutos para terminar la operación de ensamblado. El tiempo mínimo lo calculamos sumando los tiempos de la asignación:

T^{*}=19+26+26=71~minutos

Ejemplo 2:

Es necesario un segundo ejemplo para mostrar qué sucede cuando no es posible realizar una asignación óptima inmediata.

Consideremos el problema descrito en el primer ejemplo, pero hemos agregado un cuarto operador y la operación de embalaje. La siguiente tabla muestra los tiempos en minutos que le toma a cada operador realizar cada una de las cuatro operaciones:

OperadorFresadoRectificadoEnsambladoEmbalaje
13219298
22625203
33628263
43922328

Paso 1: Ordenamos la información en una tabla e identificamos el valor mínimo de cada fila.

Hemos subrayado los tiempos mínimos en cada una de las filas.

Paso 2. Los valores mínimos que hemos identificado en el paso anterior se restan de todos los valores en su correspondiente fila e identificamos el valor mínimo de cada columna.

Nuevamente, hemos identificado los tiempos mínimos subrayándolos.

Paso 3. Restamos los tiempos mínimos identificados en el paso anterior de todos los valores en su correspondiente columna.

Paso 4. Ahora vamos a cubrir todos los ceros que aparecen en la tabla con la menor cantidad de líneas verticales y horizontales que sea posible.

Si el número de líneas es exactamente igual al número de filas o columnas es posible realizar una asignación óptima.

Hemos utilizado tres líneas para cubrir todos los ceros que aparecen en la tabla y tenemos cuatro filas o cuatro columnas. No podemos realizar la asignación óptima, pero identificamos el tiempo mínimo no cubierto.

El tiempo mínimo no cubierto por ninguna línea es 3, corresponde al tiempo que tarda el cuarto operador en el rectificado.

Paso 5: Restamos el valor identificado en el paso anterior de todos los tiempos no cubiertos y, lo sumamos a todos los tiempos cubiertos por dos líneas.

Paso 6: Repetimos el paso 4 en busca del menor número de líneas con que podemos cubrir todos los ceros.

Nuevamente, hemos utilizado tres líneas para cubrir todos los ceros que aparecen en la tabla y tenemos cuatro filas o cuatro columnas. No podemos realizar la asignación óptima. Identificamos el tiempo mínimo no cubierto subrayándolo.

Paso 7: Repetimos el paso 5, es decir, restamos el valor identificado en el paso anterior de todos los tiempos no cubiertos y, lo sumamos a todos los tiempos cubiertos por dos líneas.

Paso 8: Repetimos los pasos 4 y 6 en busca del menor número de líneas con que podemos cubrir todos los ceros.

Podemos realizar la asignación óptima dado que tenemos tantas líneas como filas o columnas.

Paso 9: Buscamos un cero único en una fila o columna para realizar la primera asignación.

Asignamos el operador 3 a embalaje. Además, cancelamos la tercera fila y cuarta columna porque el operador 3 y embalaje han sido asignados, respectivamente.

Paso 10: Buscamos un cero único en una fila o columna para realizar la segunda asignación.

Asignamos el operador 4 a rectificado. Además, cancelamos la cuarta fila y segunda columna porque el operador 4 y rectificado han sido asignados, respectivamente.

Paso 11: Buscamos un cero único en una fila o columna para realizar la tercera asignación.

Asignamos el operador 2 a ensamblado. Además, cancelamos la segunda fila y tercera columna porque el operador 2 y ensamblado han sido asignados, respectivamente.

Paso 12: En este punto solamente podemos asignar al operador 1 a fresado.

Paso 13. Calcular el valor óptimo de la asignación.

Ya que conocemos las asignaciones podemos calcular el tiempo mínimo. Sabemos que:

  • El operador 1 se asignó a fresado y tarda 32 minutos
  • El operador 2 se asignó a ensamblado y tarda 20 minutos
  • El operador 3 se asignó a embalaje y tarda 3 minutos
  • El operador 4 se asignó a rectificado y tarda 22 minutos

El tiempo mínimo se calcula sumando todos los tiempos de la asignación:

T^{*}=32+20+3+22=77~minutos

El primer ejemplo se resuelve con programación lineal y Solver en Excel en el siguiente enlace:

También te puede interesar:

Cómo citar

Editor. (29 julio 2020). Ejemplo paso a paso método húngaro de asignación investigación de operaciones. Celeberrima.com. Última actualización el 09 marzo 2022.