Subido por canomsergio13

Algoritmo de Munkres

Anuncio
Problema 1
Aplicando el método húngaro, encuentre el costo mínimo y una asignación óptima para el
problema dato por la tabla de costos.
T1
T2
T3
M1
10
8
12
M2
6
20
16
M3
12
6
30
Paso 1
Se obtiene un cero en cada fila, restando a cada fila el valor mínimo de la fila.
min
10
8
12
8
2
0
4
6
20
16
6
0
14
10
12
6
30
6
6
0
24
Paso 2
Se obtiene un cero en cada columna, restando a cada columna el valor mínimo de la
columna.
min
2
0
4
2
0
0
0
14
10
0
14
6
6
0
24
6
0
20
0
0
4
Paso 3
Las celdas son: (1,2), (1,3), (2,1) y (3,2)
Paso 4
Se producen nuevos costos ceros. Con este propósito se cubren las filas y columnas que
contengan a todos los ceros actuales, utilizando el menor número de filas y columnas, en
este caso con la fila 1 y la columna.
2
0
0*
0*
14
6
6
0*
20
Ahora se puede lograr la asignación usando los ceros marcados: (1,3), (2,1) y (3,2).
T1
T2
T3
M1
10
8
12*
M2
6*
20
16
M3
12
6*
30
C = 6 + 6+ 12 =24
Problema 2
La siguiente tabla contiene el tiempo en horas que requiere una máquina para realizar una
tarea.
T1
T2
T3
T4
M1
16
16
16
16
M2
16
20
16
12
M3
13
12
30
9
M4
20
18
15
14
Paso 1
Se obtiene un cero en cada fila, restando a cada fila el valor mínimo de la fila.
min
16
16
16
16
16
0
0
0
0
16
20
16
12
12
4
8
4
0
13
12
30
9
9
4
3
21
0
20
18
15
14
14
6
4
1
0
Paso 2
Se obtiene un cero en cada columna, restando a cada columna el valor mínimo de la
columna.
0
0
0
0
4
8
4
0
4
3
21
0
6
4
1
0
min
0
0
0
0
0
0
0
0
4
8
4
0
4
3
21
0
6
4
1
0
Paso 3
Debido a que el número de líneas es menor que n cambiamos al menos un cero a una
posición descubierta para aumentar el número mínimo de líneas requeridas para cubrir
todos ceros.
1. Encontramos le valor más pequeño descubierto en este caso 1.
0
0
0
0
4
8
4
0
4
3
21
0
6
4
1
0
2. El valor se resta a todos los valores descubiertos y sumados a cada valor situado
en la intersección de las filas y columnas cubiertas.
0
0
0
0
3
7
3
0
3
2
20
0
5
3
0
0
Posteriormente encontramos el valor más pequeño en este caso 2.
0*
0
0
0
1
5
1
0*
1
0*
18
0
3
1
0*
0
Paso 4
Se producen nuevos costos ceros. Con este propósito se cubren las filas y columnas que
contengan a todos los ceros actuales, utilizando el menor número de filas y columnas, en
este caso con la fila 1 y la columna.
0*
0
0
0
1
5
1
0*
1
0*
18
0
3
1
0*
0
Ahora se puede lograr la asignación usando los ceros marcados: (1,1), (2,4), (3,2) y (4,3).
T1
T2
T3
T4
M1
16*
16
16
16
M2
16
20
16
12*
M3
13
12*
30
9
M4
20
18
15*
14
C = 16 + 12+ 12 + 15=55
Problema 3
Aplique el método húngaro para resolver el problema de asignación cuya tabla de costos
es:
T1
T2
T3
T4
M1
6
7
2
9
M2
6
8
2
8
M3
3
4
2
4
M4
-
6
2
8
M5
9
6
2
12
Debido a que no es un problema balanceado agregamos una tarea ficticia con costos 0, en
la celda – se pone un costo grande.
6
7
2
9
0
6
8
2
8
0
3
4
2
4
0
-
6
2
8
0
9
6
2
12
0
Paso 1
Se obtiene un cero en cada fila, restando a cada fila el valor mínimo de la fila.
min
6
7
2
9
0
0
6
7
2
9
0
6
8
2
8
0
0
6
8
2
8
0
3
4
2
4
0
0
3
4
2
4
0
-
6
2
8
0
0
-
6
2
8
0
9
6
2
12
0
0
9
6
2
12
0
Paso 2
min
6
7
2
9
0
3
4
0
5
0
6
8
2
8
0
3
4
0
4
0
3
4
2
4
0
0
0
0
0
0
-
6
2
8
0
-
2
0
4
0
9
6
2
12
0
6
2
0
8
0
3
4
2
4
0
Paso 3
Debido a que el número de líneas no corresponde a las n filas y columnas que tenemos,
cambiamos al menos un cero a una posición descubierta para aumentar el número mínimo
de líneas requeridas para cubrir todos ceros.
1. Encontramos le valor más pequeño descubierto en este caso 2.
3
4
0
5
0
3
4
0
4
0
0
0
0
0
0
-
2
0
4
0
6
2
0
8
0
2. El valor se resta a todos los valores descubiertos y sumados a cada valor situado
en la intersección de las filas y columnas cubiertas.
1
2
0
3
0
1
2
0
2
0
0
0
0
0
0
-
0
0
2
0
4
0
0
6
0
Paso 4
Se producen nuevos costos ceros. Con este propósito se cubren las filas y columnas que
contengan a todos los ceros actuales, utilizando el menor número de filas y columnas.
0*
2
0
3
0
1
2
0*
2
0
0
0
0
0*
0
-
0*
0
2
0
4
0
0
6
0*
Ahora se puede lograr la asignación usando los ceros marcados: (1,1), (2,3), (3,4), (4,2) y
(5,5).
T1
T2
T3
T4
T5
M1
6*
7
2
9
0
M2
6
8
2*
8
0
M3
3
4
2
4*
0
M4
-
6*
2
8
0
M5
9
6
2
12
0*
C = 6 + 6 + 2 + 4 + 0 = 18
Descargar