Está en la página 1de 50

MODELO DE ASIGNACIÓN

Docente: José Espilco Villalobos


Asignatura: Investigación de Operaciones
Semana Nro 07
PROPÓSITO

El propósito de la presente sesión es identificar casos especiales de


Programación Lineal como es el Modelo de Asignación, identificar sus
particularidades, elementos y método de resolución (Método
Húngaro).
Link del Video
• https://www.youtube.com/watch?v=7zWh75jHLPc
MODELO DE ASIGNACIÓN
MÉTODO DE ASIGNACIÓN
Según Anderson (Anderson, 2011), el problema de asignación surge en
una variedad de situaciones de toma de decisiones.
Los problemas de asignación típicos implican la asignación de:
• Puestos a máquinas
• Agentes a tareas
• Personal de ventas a territorios de ventas
• Contratos a contratistas, etc.
Una característica distintiva del problema de asignación es que un
agente se asigna a una y sólo una tarea. En específico buscamos el
conjunto de asignaciones que optimicen el objetivo establecido, tal
como minimizar el costo, el tiempo o maximizar las utilidades.
4
MODELO DE ASIGNACIÓN
MÉTODO HÚNGARO
El método Húngaro es un método de optimización de problemas de
asignación, el algoritmo está diseñado para la resolución de problemas
de minimización únicamente.
Es importante resaltar que el método húngaro trabaja en una matriz de
costos n*m (en este caso conocida como matriz m*m, dado que el
número de filas es igual al número de columnas n = m).

5
MODELO DE ASIGNACIÓN
SUPOSICIONES
1. El número de asignados es igual al número de tareas
2. Cada asignado se asigna exactamente una tarea
3. Cada tarea debe realizarla exactamente un asignado
4. Existe un costo c, asociado con el asignado i (j=1,2,…n)
5. El objetivo es determinar cómo deben hacerse las asignaciones para
minimizar los costos totales

6
MODELO DE RED DE ASIGNACIÓN
Una empresa ha preseleccionado 5 candidatos para ocupar 4 puestos de trabajo en dicha empresa. Los puestos de trabajo
consisten en manejar 4 máquinas diferentes (un trabajador para cada máquina). La empresa puso a prueba a los 5
trabajadores en las 4 máquinas, realizando el mismo trabajo todos ellos en cada una de las máquinas, obteniendo los
siguientes tiempos:
Máquina 1 Máquina 2 Máquina 3 Máquina 4

Candidato 1 10 6 6 5 Planteamiento
Candidato 2 8 7 6 6
de la Red
Candidato 3 8 6 5 6

Candidato 4 9 7 7 6
Candidato 5 8 7 6 5

Solución usando POM QM:

Interpretación:
• El candidato 1 trabajara con la máquina 2.
• El candidato 2 trabajara con la máquina 1
• El candidato 3 trabajara con la máquina 3
• El candidato 5 trabajará con la máquina 4
• El candidato 4 no trabajaría.
Así tendremos un costo de: 24 ( Z*=6+8+5+0+5) 7
MODELO DE RED DE ASIGNACIÓN
Una empresa de logística cuenta con 4 máquinas para realizar 3 tareas, cada máquina realiza la tarea según el tiempo en
que esta pueda ejecutarla. En la siguiente tabla se muestran los tiempos en horas para dichas tareas.

Tarea/Máqu 1 2 3 4
ina
1 6 7 12 14 Planteamiento
2 7 7 8 11 de la Red
3 11 5 2 6

Solución usando POM QM:

Interpretación:
• La tarea 1 trabajará con la máquina 1.
• La tarea 2 trabajará con la máquina 2
• La tarea 3 trabajará con la máquina 3
Así tendremos un costo de: 15 ( Z*=6+7+2)
MÉTODO HÚNGARO
Para resolver problemas de asignación, aplicando el método Húngaro, se requiere seguir los siguientes algoritmos o pasos:
Paso 1: Balanceo, misma cantidad de filas y columnas
Paso 2: A todos los elementos de cada fila restar el menor elemento de la fila.
Paso 3: Generar una nueva matriz con los nuevos valores
Paso 4: En cada columna vamos a escoger el número menor y ese número lo vamos a restar a cada número en esa columna. Así,
se garantiza la obtención de por lo menor un cero en cada fila y columna.
Paso 5: Con la matriz resultante, verificar la existencia de una solución óptima. Para encontrarla se debe asignar un cero a cada
fila (comenzando por las que tengan menor Nro de ceros), y cancelar los demás ceros de esa fila y los ceros de la columna en la
que se encuentran ese cero. Repetir esta operación hasta que no que queden cero si asignar o cancelar.
Si no existe solución óptima ir al paso 6.
Paso 6: Realizar lo siguiente:
a) Marcar con * todas las filas que no contengan cero asignados.
b) Marcar todas las columnas que contengan uno o más ceros cancelados en alguna fila marcada.
c) Marcar toda la fila que tenga un cero asignado en una columna marcada.
d) Repetir b) y c) hasta que no sea posible marcas más filas o columnas.
e) Poner un trazo (línea) sobre toda la fila no marcada y sobre toda columna marcada
Paso 7: Tomar el menor número no atravesado por un trazo (línea), y:
• Restarlo a todos los elementos de las filas no atravesadas
• Sumarlo a todos los elementos de columnas atravesadas}
Volver al paso 5
PROBLEMA DE APLICACIÓN 1
La cía ABC “El Roble” desea realizar una jornada de mantenimiento
preventivo a sus tres máquinas principales A, B y C. El tiempo que demanda
realizar el mantenimiento de cada máquina es de 1 día, sin embargo la
jornada de mantenimiento no puede durar más de 1 día, teniendo en cuenta
que la compañía cuenta con tres proveedores de servicios de mantenimiento
debe de asignarse un equipo de mantenimiento a cada máquina para poder
cumplir con la realización del mantenimiento preventivo. Teniendo en cuenta
que según el grado de especialización de cada equipo prestador de servicios
de mantenimiento el costo de la tarea varia para cada máquina en particular,
debe de asignarse el equipo correcto a la máquina asignada con el objetivo
de minimizar el costo total de la jornada. Los costos asociados se pueden
observar en la siguiente tabla:
PROBLEMA DE APLICACIÓN
Tabla
Máquina 1 Máquina 2 Máquina 3
Equipo Mtto 1 10 9 5
Equipo Mtto 2 9 8 3
Equipo Mtto 3 6 4 7

Solución:
Paso 1: Encontrar el menor elemento de cada fila y restarlo de la fila respectiva.
- En la fila 1, el menor es 5
- En la fila 2, el menor es 3
- En la fila 3, el menor es 4
PROBLEMA DE APLICACIÓN
Tabla
Máquina 1 Máquina 2 Máquina 3
Equipo Mtto 1 5 4 0
Equipo Mtto 2 6 5 0
Equipo Mtto 3 2 0 3

Encontrar el menor elemento de cada columna y restarlo de la fila


respectiva.
- En la columna 1, el menor es 2
- En la columna 2, el menor es 0
- En la columna 3, el menor es 0
PROBLEMA DE APLICACIÓN
Tabla
Máquina 1 Máquina 2 Máquina 3
Equipo Mtto 1 3 4 0
Equipo Mtto 2 4 5 0
Equipo Mtto 3 0 0 3
PROBLEMA DE APLICACIÓN
Paso 2: Hacemos las asignaciones iniciando por la fila que tenga menos cero
y tachando los ceros de las filas y columnas donde hicimos la asignación:
Máquina 1 Máquina 2 Máquina 3
Equipo Mtto 1 3 4 0
Equipo Mtto 2 4 5 0
Equipo Mtto 3 0 0 3
PROBLEMA DE APLICACIÓN
Paso 2: Hacemos las asignaciones iniciando por la fila que tenga menos cero
y tachando los ceros de las filas y columnas donde hicimos la asignación:
Máquina 1 Máquina 2 Máquina 3
Equipo Mtto 1 3 4 0
Equipo Mtto 2 4 5 0
Equipo Mtto 3 0 0 3
PROBLEMA DE APLICACIÓN
Paso 2: Hacemos las asignaciones iniciando por la fila que tenga menos cero
y tachando los ceros de las filas y columnas donde hicimos la asignación:
Máquina 1 Máquina 2 Máquina 3
Equipo Mtto 1 3 4 0
Equipo Mtto 2 4 5 0
Equipo Mtto 3 0 0 3

Se puede ver que solo hicimos dos asignaciones, pero debimos haber
hecho tres, por lo que no logramos la solución óptima y pasamos al
paso 3.
PROBLEMA DE APLICACIÓN
Paso 3:
a) Marcar con * todas las filas que no contengan cero asignados.
b) Marcar todas las columnas que contengan uno o más ceros cancelados en alguna fila marcada.
c) Marcar toda la fila que tenga un cero asignado en una columna marcada.
d) Repetir b) y c) hasta que no sea posible marcas más filas o columnas.
e) Poner un trazo (línea) sobre toda la fila no marcada y sobre toda columna marcada

*
Máquina 1 Máquina 2 Máquina 3
* Equipo Mtto 1 3 4 0
* Equipo Mtto 2 4 5 0
Equipo Mtto 3 0 0 3
PROBLEMA DE APLICACIÓN
Paso 4:
a) El menor elemento de los no atravesados en la matriz es 3:
b) Se lo restamos a todos los elementos de las filas no atravesadas
c) Se lo sumamos a todos los elementos donde se interseca dos trazos

Máquina 1 Máquina 2 Máquina 3


Equipo Mtto 1 3 4 0
Equipo Mtto 2 4 5 0
Equipo Mtto 3 0 0 3
PROBLEMA DE APLICACIÓN
Paso 4:
a) El menor elemento de los no atravesados en la matriz es 3:
b) Se lo restamos a todos los elementos de las filas no atravesadas
c) Se lo sumamos a todos los elementos de las columnas atravesadas

Máquina 1 Máquina 2 Máquina 3


Equipo Mtto 1 0 1 0
Equipo Mtto 2 1 2 0
Equipo Mtto 3 0 0 6
PROBLEMA DE APLICACIÓN
Hacemos de nuevo las asignaciones empezando por las filas que tengan
menos cero.

Máquina 1 Máquina 2 Máquina 3


Equipo Mtto 1 0 1 0
Equipo Mtto 2 1 2 0
Equipo Mtto 3 0 0 6
PROBLEMA DE APLICACIÓN
Hacemos de nuevo las asignaciones empezando por las filas que tengan
menos cero.

Máquina 1 Máquina 2 Máquina 3


Equipo Mtto 1 0 1 0
Equipo Mtto 2 1 2 0
Equipo Mtto 3 0 0 6
PROBLEMA DE APLICACIÓN
Hacemos de nuevo las asignaciones empezando por las filas que tengan
menos cero.

Máquina 1 Máquina 2 Máquina 3


Equipo Mtto 1 0 1 0
Equipo Mtto 2 1 2 0
Equipo Mtto 3 0 0 6

El orden en que asignamos es el siguiente:


- Primero asignamos al equipo 2 a la máquina 3 y tachamos el cero que hay en la columna de la
máquina 3
- Segundo asignamos al equipo 1 a la máquina 1 y tachamos el cero que hay en la columna de la
máquina 1
- Tercero asignamos al equipo 3 a la máquina 2
PROBLEMA DE APLICACIÓN
Hacemos de nuevo las asignaciones empezando por las filas que tengan
menos cero.

Máquina 1 Máquina 2 Máquina 3


Equipo Mtto 1 0 1 0
Equipo Mtto 2 1 2 0
Equipo Mtto 3 0 0 6

Por ende la asignación que representa el menor costo para la jornada


de mantenimiento preventivo determina que el Equipo1 realice al
mantenimiento de la máquina 1, el equipo 2 realice el mantenimiento
de la máquina 3 y el equipo 3 realice el mantenimiento de la máquina
2, jornada que tendrá un costo total de 17 unidades monetarias.
PROBLEMA DE APLICACIÓN 2
Se desea asignar 4 máquinas a 4 lugares posibles. A continuación se
presentan los costos asociados:

1 2 3 4
1 3 5 3 3
2 5 14 10 10
3 12 6 19 17
4 2 17 10 12
PROBLEMA DE APLICACIÓN 2
Paso 1.- Al igual que el ejemplo anterior restamos cada fila del menor
elemento y luego con la matriz resultante hacemos lo mismo por
columna. La matriz resultante es como se muestra:

1 2 3 4
1 3 5 3 3
2 5 14 10 10
3 12 6 19 17
4 2 17 10 12
PROBLEMA DE APLICACIÓN 2
Paso 1.- Al igual que el ejemplo anterior restamos cada fila del menor
elemento y luego con la matriz resultante hacemos lo mismo por columna.
La matriz resultante es como se muestra:
1 2 3 4
1 3 5 3 3
2 5 14 10 10
3 12 6 19 17
4 2 17 10 12
Solución:
Paso 1: Encontrar el menor elemento de cada fila y restarlo de la fila respectiva.
- En la fila 1, el menor es 3
- En la fila 2, el menor es 5
- En la fila 3, el menor es 6
- En la fila 4, el menor es 2
PROBLEMA DE APLICACIÓN 2
Tabla 1 2 3 4
1 0 2 0 0
2 0 9 5 5
3 6 0 13 11
4 0 15 8 10

Encontrar el menor elemento de cada columna y restarlo de la fila respectiva.


- En la columna 1, el menor es 0
- En la columna 2, el menor es 0
- En la columna 3, el menor es 0
- En la columna 4, el menor es 0
PROBLEMA DE APLICACIÓN 2
Paso 2: Hacemos las asignaciones iniciando por la fila que tenga menos cero
y tachando los ceros de las filas y columnas donde hicimos la asignación:
1 2 3 4
1 0 2 0 0
2 0 9 5 5
3 6 0 13 11
4 0 15 8 10
PROBLEMA DE APLICACIÓN
Paso 2: Hacemos las asignaciones iniciando por la fila que tenga menos cero
y tachando los ceros de las filas y columnas donde hicimos la asignación:

1 2 3 4
1 0 2 0 0
2 0 9 5 5
3 6 0 13 11
4 0 15 8 10

Puede ver que solo logramos hacer tres asignaciones, no logramos asignar la
máquina 4 por lo que no alcanzamos el óptimo
PROBLEMA DE APLICACIÓN
Paso 3:
a) Marcar con un * todas las filas que no contengan ceros asignados

1 2 3 4
1 0 2 0 0
2 0 9 5 5
3 6 0 13 11
* 4 0 15 8 10
PROBLEMA DE APLICACIÓN
Paso 3:
b) Marcar con * todas las columnas que contengan uno o más ceros cancelados en alguna fila marcada.

*
1 2 3 4
1 0 2 0 0
2 0 9 5 5
3 6 0 13 11
* 4 0 15 8 10
PROBLEMA DE APLICACIÓN
Paso 3:
c) Marcar toda la fila que tenga un cero asignado en una columna marcada

*
1 2 3 4
1 0 2 0 0
* 2 0 9 5 5
3 6 0 13 11
* 4 0 15 8 10
PROBLEMA DE APLICACIÓN
Paso 3:
d) No hay más
e) Poner un trazo (línea) sobre toda la fila no marcada y sobre toda columna marcada.

*
1 2 3 4
1 0 2 0 0
* 2 0 9 5 5
3 6 0 13 11
* 4 0 15 8 10
PROBLEMA DE APLICACIÓN
Paso 4:
El menor número es 5

*
1 2 3 4
1 5 2 0 0
* 2 0 4 0 0
3 11 0 13 11
* 4 0 10 3 5
PROBLEMA DE APLICACIÓN
Hacemos nuevamente las asignaciones

1 2 3 4
1 5 2 0 0
2 0 4 0 0
3 11 0 13 11
4 0 10 3 5
PROBLEMA DE APLICACIÓN 3
Se tienen 5 programadores, a quiénes se les tiene que asignar 5 módulos a trabajar,
ellos han determinado cuánto cobrarían (Tabla) por desarrollar dichos módulos.
La empresa contratista desea saber cuál es la asignación que genere el menor costo
posible asumiendo que sólo un programador realiza un módulo.
A B C D E
1 2 4 4 3 6
2 3 6 5 4 6
3 5 6 5 3 7
4 3 6 8 5 4
5 8 5 6 2 1
PROBLEMA DE APLICACIÓN 3
Paso 1.- Al igual que el ejemplo anterior restamos cada fila del menor
elemento y luego con la matriz resultante hacemos lo mismo por columna.
La matriz resultante es como se muestra:
A B C D E
1 2 4 4 3 6
2 3 6 5 4 6
3 5 6 5 3 7
4 3 6 8 5 4
5 8 5 6 2 1
Solución:
Paso 1: Encontrar el menor elemento de cada fila y restarlo de la fila respectiva.
- En la fila 1, el menor es 2
- En la fila 2, el menor es 3
- En la fila 3, el menor es 3
- En la fila 4, el menor es 3
- En la fila 5, el menor es 1
PROBLEMA DE APLICACIÓN 3
Paso 1.- Al igual que el ejemplo anterior restamos cada fila del menor
elemento y luego con la matriz resultante hacemos lo mismo por columna.
La matriz resultante es como se muestra:
A B C D E
1 0 2 2 1 4
2 0 3 2 1 3
3 2 3 2 0 4
4 0 3 5 2 1
5 7 6 5 1 0
Solución:
Paso 1: Encontrar el menor elemento de cada fila y restarlo de la fila respectiva.
- En la fila 1, el menor es 2
- En la fila 2, el menor es 3
- En la fila 3, el menor es 3
- En la fila 4, el menor es 3
- En la fila 5, el menor es 1
PROBLEMA DE APLICACIÓN 3
Tabla A B C D E
1 0 2 2 1 4
2 0 3 2 1 3
3 2 3 2 0 4
4 0 3 5 2 1
5 7 6 5 1 0

Encontrar el menor elemento de cada columna y restarlo de la fila respectiva.


- En la columna 1, el menor es 0
- En la columna 2, el menor es 2
- En la columna 3, el menor es 2
- En la columna 4, el menor es 0
- En la columna 5, el menor es 0
PROBLEMA DE APLICACIÓN 3
Tabla A B C D E
1 0 0 0 1 4
2 0 1 0 1 3
3 2 1 0 0 4
4 0 1 3 2 1
5 7 4 3 1 0

Encontrar el menor elemento de cada columna y restarlo de la fila respectiva.


- En la columna 1, el menor es 0
- En la columna 2, el menor es 2
- En la columna 3, el menor es 2
- En la columna 4, el menor es 0
- En la columna 5, el menor es 0
PROBLEMA DE APLICACIÓN 3
Paso 2: Hacemos las asignaciones iniciando por la fila que tenga menos cero
y tachando los ceros de las filas y columnas donde hicimos la asignación:

A B C D E
1 0 0 0 1 4
2 0 1 0 1 3
3 2 1 0 0 4
4 0 1 3 2 1
5 7 4 3 1 0
PROBLEMA DE APLICACIÓN
Paso 2: Hacemos las asignaciones iniciando por la fila que tenga menos cero
y tachando los ceros de las filas y columnas donde hicimos la asignación:

A B C D E
1 0 0 0 1 4
2 0 1 0 1 3
3 2 1 0 0 4
4 0 1 3 2 1
5 7 4 3 1 0
PROBLEMA DE APLICACIÓN
Paso 2: Hacemos las asignaciones iniciando por la fila que tenga menos cero
y tachando los ceros de las filas y columnas donde hicimos la asignación:

A B C D E
1 0 0 0 1 4
2 0 1 0 1 3
3 2 1 0 0 4
4 0 1 3 2 1
5 7 4 3 1 0
PROBLEMA DE APLICACIÓN
Paso 2: Hacemos las asignaciones iniciando por la fila que tenga menos cero
y tachando los ceros de las filas y columnas donde hicimos la asignación:

1 2 3 4 5
1 0 0 0 1 4
2 0 1 0 1 3
3 2 1 0 0 4
4 0 1 3 2 1
5 7 4 3 1 0
PROBLEMA DE APLICACIÓN
Paso 2: Hacemos las asignaciones iniciando por la fila que tenga menos cero
y tachando los ceros de las filas y columnas donde hicimos la asignación:

1 2 3 4 5
1 0 0 0 1 4
2 0 1 0 1 3
3 2 1 0 0 4
4 0 1 3 2 1
5 7 4 3 1 0
PROBLEMA DE APLICACIÓN
Paso 2: Hacemos las asignaciones iniciando por la fila que tenga menos cero
y tachando los ceros de las filas y columnas donde hicimos la asignación:

1 2 3 4 5
1 0 0 0 1 4
2 0 1 0 1 3
3 2 1 0 0 4
4 0 1 3 2 1
5 7 4 3 1 0
Costo de Asignación – Usando POM
PROGRAMADORES
MÓDULOS
A B C D E
Módulo 1 2 4 4 3 6
Módulo 2 2 6 5 4 6
Módulo 3 5 6 5 3 7
Módulo 4 3 6 8 5 4
Módulo 5 8 5 6 2 1

Interpretación:
• El módulo 1 se asignará al programador 2.
• El módulo 2 se asignará al programador 3.
• El módulo 3 se asignará al programador 4.
• El módulo 4 se asignará al programador 1.
• El módulo 5 se asignará al programador 5.

Así tendremos un costo de: 16 ( Z*=4+5+3+3+1)


Ejercicio
Un consultor tiene el problema de asignar los trabajos de cierto día a
varias máquinas. Todas las máquinas pueden hacer todos los trabajos,
pero con distinta eficacia. Se considera, el coste de trabajo de cada
máquina en miles de soles por mes en cada tipo de trabajo. ¿Cuánto
será el valor total de las asignaciones?
T1 T2 T3 T4 T5 T6
M1 3 7 4 3 6 2
M2 4 7 3 3 5 3
M3 6 6 4 2 4 4
M4 5 8 5 1 3 5
M5 2 8 6 4 2 6
M6 1 5 9 4 6 3
MODELO DE ASIGNACIÓN

También podría gustarte