3 PROBLEMA DEL TRANSPORTE, TRASBORDO Y ASIGNACIÓN 3.1 Transporte y trasbordo Una de las principales áreas de aplicación de la programación lineal, son los problemas de distribución y transporte. Este tipo de problemas requiere que determinados productos (bienes) situados en puntos orígenes (fuentes), se trasladen físicamente a puntos de destinos o de demanda, de manera que se satisfagan las demandas sin exceder las capacidades de las fuentes y a costo mínimo. Típicamente, los orígenes representan fabricas donde se producen los bienes, y los destinos a los almacenes almacenes que distribuyen distribuyen los bienes a los clientes. El título del problema de transporte , es sólo un emblema representativo de los primeros problemas que le dieron origen. En la actualidad se ha usado esta técnica en problemas de planeación de la producción, análisis de localización, programación de mano de obra, etc. El problema de transporte se puede ajustar a un modelo de programación lineal y resolverse con el algoritmo Simplex. Sin embargo, tiene una estructura tan especial que se han desarrollado métodos más eficientes que el Simplex. Las características de su estructura son:
Los coeficientes de las variables en las l as restricciones son siempre unos o ceros.
Si la oferta es igual a la demanda (lo cual siempre se puede lograr añadiendo orígenes o destinos ficticios), una de las restricciones es redundante.
La
variable
dual
correspondiente
a
una
restricción
redundante,
se
puede
fijar
arbitrariamente. Estas características se muestran en el siguiente ejemplo y dan origen al algoritmo del transporte, que es un método rápido y eficiente.
Ejemplo 3.1 Planteamiento del modelo modelo de transporte transporte Existen dos presas que suministran agua a tres ciudades. Cada presa puede suministrar hasta 50 millones de litros de agua por día. Cada ciudad quisiera recibir 40 millones de litros de agua al día. Por cada millón de litros de demanda diaria no cumplida, hay una multa; en la ciudad 1, la multa es de $20 pesos; en la ciudad 2, la multa es de $22 pesos; y en la ciudad 3, la multa es de 23 pesos. En el esquema se muestran los costos para enviar 1 millón de litros de agua desde cada presa hacia cada ciudad. Formular un modelo para minimizar la suma de los costos de escasez y de transporte.
50
7
PRESA
CIUDAD
1
1 8
50
9
10
PRESA
40
7
CIUDAD
2
2
40
20 22 20
8
FICTICIA
CIUDAD 3
23
40
Se presenta la necesidad de agregar una oferta ficticia, ya que la oferta en las presas es de 100 mld y la demanda en las ciudades es de 120 mld; para balancear el problema de transporte se adiciona una oferta ficticia de 20 mld y que también corresponde a la escasez de abastecimiento con una cierta multa diferente para cada ciudad. El esquema contiene todos los parámetros requeridos en el modelo y las variables se definen como: xij = Millones de litros diarios de agua que se envían de la presa i a la ciudad j.
i = 1,2,3 j = 1,2,3 El modelo de programación lineal se puede plantear: Min z = 7x11 + 8x12 + 10x13 + 9x21 + 7x22 + 8x23 + 20x31 + 22x32 + 23x33 S. a: x11 + x12 +
x11 x12
x13 + x21 + x22 + x23 + x31 + + x21 + x31 + x22 + x13 + x23
=50 =50 x32 + x33 = 20 =40 x32 =40 + x33 =40
El modelo dual del problema de transporte tendrá dos conjuntos de variables: ▪
Uno asociado a las restricciones de oferta y que se designa como Ui
▪
Otro asociado a las restricciones de demanda y se designan como V j
El modelo dual queda de la siguiente manera: Max z = 50U1 + 50U2 + 20U3 + 40V1 + 40V2 + 40V3 S. a: U1 U1 U1
+
V1 +
V2 +
V3
=7 =8 =10
50
7
PRESA
CIUDAD
1
1 8
50
9
10
PRESA
40
7
CIUDAD
2
2
40
20 22 20
8
FICTICIA
CIUDAD 3
23
40
Se presenta la necesidad de agregar una oferta ficticia, ya que la oferta en las presas es de 100 mld y la demanda en las ciudades es de 120 mld; para balancear el problema de transporte se adiciona una oferta ficticia de 20 mld y que también corresponde a la escasez de abastecimiento con una cierta multa diferente para cada ciudad. El esquema contiene todos los parámetros requeridos en el modelo y las variables se definen como: xij = Millones de litros diarios de agua que se envían de la presa i a la ciudad j.
i = 1,2,3 j = 1,2,3 El modelo de programación lineal se puede plantear: Min z = 7x11 + 8x12 + 10x13 + 9x21 + 7x22 + 8x23 + 20x31 + 22x32 + 23x33 S. a: x11 + x12 +
x11 x12
x13 + x21 + x22 + x23 + x31 + + x21 + x31 + x22 + x13 + x23
=50 =50 x32 + x33 = 20 =40 x32 =40 + x33 =40
El modelo dual del problema de transporte tendrá dos conjuntos de variables: ▪
Uno asociado a las restricciones de oferta y que se designa como Ui
▪
Otro asociado a las restricciones de demanda y se designan como V j
El modelo dual queda de la siguiente manera: Max z = 50U1 + 50U2 + 20U3 + 40V1 + 40V2 + 40V3 S. a: U1 U1 U1
+
V1 +
V2 +
V3
=7 =8 =10
U2 U2 U2
+
V1 +
V2 + V3
U3 + U3 U3
V1 +
V2 + V3
=9 =7 =8 =20 =22 =23
donde Ui, V j son no restringidas
i=1, 2, 3 j=1, 2, 3 Cuando la oferta es igual a la demanda, una de las restricciones del modelo primal es redundante, es decir, se puede expresar en función de las demás. Esto significa que en el modelo dual, a una de las variables se le puede asignar un valor arbitrario. La estructura del problema y estas características permiten utilizar un algoritmo más eficiente que el algoritmo Simplex; éste es el de transporte en el cual se requiere como información, los costos, cuáles son las variables básicas y cuál es su valor. Esto se puede registrar en una tabla más compacta, llamada tabla del transporte , que tiene la siguiente forma: C I U DA DA D 1 C I UD UD A D 2 C I U DA DA D 3 PRESA 1
7
8
10
PRESA 2
9
7
8
F IC T IC IA
20
22
23
50
50
20 40
40
40
Cada celda de la tabla, tiene la siguiente información: el costo de transportar una unidad del producto (recuadro), del origen i al destino j y cuántas unidades se transporta de i a j. Si la celda es básica , éste será un valor positivo, si es no básica , no tendrá ningún valor en la celda. En todo problema de transporte debe haber tantas celdas con variables básicas como la suma de restricciones de origen y destino, menos uno. En el ejemplo, hay tres orígenes y tres destinos por lo que habrá: 3 + 3 – 1 = 5 celdas básicas; éste número de celdas básicas se conservará durante todo el proceso.
Algoritmos de solución inicial El algoritmo con el que se resuelve el problema de transporte, requiere para su aplicación, al igual que el Simplex, de una solución inicial básica factible, la cual se puede obtener por varios métodos, siendo los más utilizados, los siguientes:
Método de la Esquina Noroeste.
Método de Vogel.
Algoritmo de la esquina noroeste 1) Seleccionar la celda de la esquina noroeste (en un plano, el norte queda hacia arriba y el oeste queda a la izquierda de manera que la esquina noroeste es la esquina situada arriba y a la izquierda de la tabla). Fijar el embarque en esa celda a lo que sea menor: lo disponible en el origen o lo que se requiere en el destino; si es cero se designa a la celda como básica a nivel cero. 2) Disminuir la cantidad en la celda a la cantidad en el origen y en el destino correspondiente. Eliminar el renglón o la columna que se haya convertido en cero. Si hay empate la solución es degenerada. Eliminar un solo renglón o columna, pero no ambos. 3) Si se terminaron los orígenes y la demanda, se hace alto. En caso contrario, se regresa al paso 1.
Algoritmo de Vogel 1)
Calcular para cada renglón y columna la diferencia entre el menor elemento de costo y el segundo costo menor, expresada en valor absoluto.
2)
Escoger el renglón o columna con la máxima diferencia. Asignar lo más posible a la celda con menor costo en el renglón o columna (aún cero en el caso degenerado). Disminuir en el origen y destino en la cantidad asignada. Eliminar el origen o destino que sea cero, pero no ambos.
3)
Si sólo queda un renglón o una columna, hacer la asignación remanente con un elemento básico en cada celda del renglón o columna respectivamente, y parar; si no, ir al paso 1.
Ejemplo 3.2 Algoritmos de solución inicial Un contratista
tiene que acarrear grava a tres construcciones. Puede comprar hasta 18
toneladas en un banco al norte de la ciudad y 14 toneladas en un banco al sur. Necesita 10, 5 y 10 toneladas en las construcciones 1, 2 y 3, respectivamente. El precio de compra por tonelada en cada foso y los costos de acarreo se dan en la siguiente tabla: Banco Norte Sur
Costo por tonelada acarreada 1 2 3 3 6 5 6 3 4
Precio por tonelada 10 12
El contratista desea determinar cuánto acarrear de cada banco a cada construcción, de manera que se minimice el costo total de compra y acarreo de la grava. Consideraciones:
▪
El problema de transporte no está balanceado; es decir, hay una oferta superior (32 toneladas) a la demanda de la construcción (25 toneladas), por lo que es necesario agregar una demanda ficticia de 7 toneladas.
▪
El costo en cada celda se integra con el costo de transporte más el precio de venta.
La tabla del transporte es: C1
C2
C3
FIC T
N orte
13
16
15
0
18
Sur
18
15
16
0
14
10
5
10
7
Solución inicial con el algoritmo de Esquina Noroeste: C1 N orte
13
C2
C3
FIC T
16
15
0
8
15
16
0
14
10
Sur
N orte
18
0
5
10
7
C1
C2
C3
FIC T
13
16 10
Sur
N orte
18
15
3
16
0
14
0
0
10
7
C1
C2
C3
FIC T
13
16
18
15 5
15
0
0
0
14
3
16
0
0
7
7
C1
C2
C3
FICT
Norte 13
16 10
Sur
0
5
10
Sur
15
18
15 5
15 0
0
0
0
3
16 0
0
7
7
0
0
Z INICIAL CON ESQUINA NOROESTE = $367.00
Solución inicial con el algoritmo de Vogel: Se selecciona renglón o columna con la mayor diferencia y se asigna a la celda de costo:
C1
C2
C3
FIC T
N orte
13
16
15
0
18
Sur
18
15
16
0
14
10
5
C1
10
C2
7
C3
FIC T
Diferencias
N orte
13
16
15
0
18
13
S ur
18
15
16
0
7
15
7
10 Diferencias
5
5 1
C1 N orte
13
10
0
C3
FIC T
1
C2
Diferencias
16
15
0
8
2
15
16
0
0
1
10
Sur
18
7
0 Diferencias
5
5
1
C1 N orte
13
C2 16
18
0
C3
FIC T
1
15
10
Sur
10
Diferencias
0
0
1
0
0
1
8
15
16
7
0
5
Diferencias
1
C1 N orte
13
C2 16
N orte
18
C3
FIC T
15
0
0
0
0
8
15
16 5
2
7
0
0
0
0
C1
C2
C3
FIC T
13
16
15
10
Sur
0
1
10
Sur
2
18
0
0
0
8
15
0
0
16 5
2
7
0
0
0
Z INICIAL CON VOGEL = $357.00
menor
Se puede observar que cada método da una solución inicial distinta, aunque puede ser igual. Se recomienda utilizar el método de Vogel, ya que utiliza los costos para establecer las diferencias y entonces permite una mejor selección de la variable básica, que se traduce en una rápida convergencia hacia una solución óptima. Siempre se requiere que la oferta total sea igual a la demanda total (que esté balanceado el transporte). Si la oferta es mayor que la demanda, se puede añadir un centro de demanda ficticio , que requiera lo necesario para conseguir la igualdad. Los costos de transportar a este centro ficticio son ceros. Si hay más demanda que oferta, se añade un centro de oferta ficticio , con costo de transporte igual a
cero, que ofrezca lo necesario para igualar.
Algoritmo del transporte Una vez obtenida una solución inicial se procede a la aplicación del algoritmo del transporte, el cual se puede representar en forma de diagrama de flujo, según la figura 4.1: INICIO
1. Obtener una solución básica factible inicial utilizando el método de la esquina noroeste o e l de Vogel.
2. Especificar una v ariable dual arbitrariamente para un origen o un de stino.
3. Para todas las celdas básicas se debe cumplir que: Cij - Ui - Vj = 0 Resolver para to dos los valores de Ui y Vj con la formula anterior.
4. Para todas las celdas no básicas calcular el costo reducido: dij = Cij - Ui - Vj Seleccionar la dij mínima.
¿Mínima dij, menor que cero?
No
Alto, la solución es óptima.
Sí
Criterio de optimalidad
5. La va riable con la dij más negativa debe de entrar a la base.
6. Encontrar una serie de brincos alternativos, verticales y horizontales, análogos al movimiento de una torre de ajedrez, que comiencen y terminen en la celda que entra, con t odos los brincos intermedios en celdas basicas. No se puede caer en una celda basica más de una ve z.
7. Indicar la celda que entra a la base co n un signo + y a la celdas basicas alternativamente con + y -.
8. Escoger el menor elemento básico que tenga signo - (si hay empate romperlo arbitrariamente). Añadir la cantidad minima así determinada a las celadas con signo +, y restarla de las celdas con signo -.
Figura 3.1 Diagrama de flujo del algoritmo del transporte
Ejemplo 3.3 Algoritmo del transporte Una compañía de concreto premezclado debe atender 4 obras y cuenta con 3 plantas situadas en diferentes partes de la ciudad. El costo de transportar un m3 de concreto de la planta i a la planta j se muestra en la tabla: Obra Planta 1 2 3
1 12 10.5 8.5
2 13 12 15
3 12 14 12
4 10 10 8
La capacidad global de producción diaria de cada planta se muestra en la tabla: Producción, m3/día 200 150 150
Planta 1 2 3
En tanto que los requerimientos diarios de cada obra son los consignados en la tabla: Requerimientos, m3/día 70 80 100 50
Obra 1 2 3 4
Calcular cuántos m3 de concreto debe proporcionar cada planta a cada una de las obras de tal manera que los costos de transportes sean mínimos. La producción (500 m3/día)
es mayor que los requerimientos (300 m3/día), por lo que es
necesario agregar una demanda ficticia (200 m3/día) para balancear el problema del transporte: Planta 1
O b ra 1 12
O b ra 2 13
O b ra 3 12
O b ra 4 10
Ficticia 0
20 0
Planta 2
10 .5
12
14
10
0
15 0
Planta 3
8.5
15
12
8
0
15 0
70
80
10 0
50
20 0
Una solución inicial con el algoritmo de la esquina noroeste es la siguiente: Plan ta 1
O bra 1 12
Plan ta 2
10.5
O b ra 2 13 70
O b ra 3 12 80
12
O b ra 4 10
8 .5
15
200
50
14
10 50
Plan ta 3
Ficticia 0
12
0 50
8
150 50
0
150 150
70
80
10 0
50
200
El valor de la función objetivos ZINICIAL= $3680.00
Algoritmo del transporte En las celdas básicas plantear la ecuación: Cij-Ui-Vj=0, en que U es una variable dual asociada a cada oferta y V es una variable dual asociada a cada demanda. En total se tienen 3 variables duales asociadas a los renglones y 5 variables duales asociadas a las demandas; se tienen 8 variables y 7 ecuaciones, pero, por condiciones de redundancia se tiene la ventaja de darle un valor arbitrario a una de las variables duales, por lo que se tiene un sistema consistente que se resuelve para determinar los valores de las variables duales: Seleccionando a U1 como la variable a la que es posible asignar un valor arbitrario cualquiera, se tienen los siguientes valores: U1=0 U2= U3=
V1 = 1 2 V2 = 1 3 V3 = 1 2 V4 = V5 =
Resolviendo para las demás variables duales se tiene: 14-U2-V3=0; U2=2 10-U2-V4=0; V4=8 0-U2-V5=0; V5=-2 0-U3-V5=0; U3=2
Los valores de todas las variables duales son: U1=0
V1=12
U2=2
V2=13
U3=2
V3=12 V4=8 V5=-2
En cada celda no básica se plantea la ecuación Dij=Cij-Ui-Vj; se seleccionan aquellas Dij que tienen un valor negativo y de entre ellas la más negativa, que indicará la celda que necesita más rebalanceo: D14=10-U1-V4=2 D15=0-0+2=2 D21=10.5-2-12=-3.5 D22=12-2-13=-3 D31=8.5-2-12=-5.5
D32=15-2-13=0 D33=12-2-12=-2 D34=8-2-8=-2
De entre ellas se selecciona a la celda 3,1 (con D31=-5.5) como la celda que debe ser básica, por lo que es necesario sacar a alguna de las básicas; esto se logra saltando sobre celdas básicas, cambiando cada vez de dirección (movimiento de la torre del ajedrez) alternando el
signo (+) y el (-) a cada celda (algoritmo del salto del arroyo o stepping stone); de entre ellas se selecciona el menor valor de las que adquieren el signo (-) y será la cantidad que hay que sumar y restar en cada celda; obviamente habrá una que se haga cero que será la celda que dejará de ser básica: O bra 1 12 (- ) Plan ta 2 10.5
O b ra 2 13
Plan ta 1
Plan ta 3
70
80
12
8 .5 (+ )
15 70
O b ra 3 12 (+ ) 14 (- ) 12
80
O b ra 4 10
Ficticia 0
200
50
10 50
50
8 10 0
0 (+ ) 0 (-)
50
150 50
150 150
200
Se observa que de las celdas con (-) la que tiene el menor valor es la celda (2,3), por lo que el valor de 50 se suma y resta en cada celda según el signo con que está marcada: O bra 1 Planta 1 12 (- ) Plan ta 2 10.5 P la n ta 3
8 .5 (+ )
O b ra 2 13 20
80
12 50
15
70
O b ra 3 12 (+ ) 14 (- ) 12
80
O b ra 4 10
Ficticia 0
200
100
10 50
8 10 0
0 (+ ) 0 (-)
50
150 100
150 100
200
Se tiene la tabla resultante con un valor de Z 1=$3405.00: Planta 1
O bra 1 12
Plan ta 2
10.5
O b ra 2 13 20
O b ra 3 12 80
12
O b ra 4 10
Ficticia 0
100
14
10
0 50
P la n ta 3
8 .5
50
15
200
12
8
150 100
0
150 100
70
80
10 0
50
200
Repitiendo el proceso anterior de determinar valores de las variables duales y de calcular las diferencias Dij se tiene: U1=0 U 2= -3 .5 U 3= -3 .5
V1 = 1 2 V 2= 13 V 3= 12 V4=13.5 V5=3.5
D14=10-13.5=-3.5 D15=0-3.5=-3.5
D21=10.5+3.5-12=2 D22=12+3.5-13=2.5 D23=14+3.5-12=5.5 D32=15+3.5-12=6.5 D33=12+3.5-12=3.5 D34=8+3.5-13.5=-2
Para decidir entre las celdas (1,4) y (1,5) puede hacerse un análisis de sensibilidad:
Introduciendo la celda (1,4); Z 2=$3335.00: Plan ta 1
O bra 1 12
O b ra 2 13
Plan ta 2
10.5
12
O b ra 3 12 80
O b ra 4 10 100
14
Ficticia 0 20
10
0 30
Plan ta 3
8 .5
15
12
200
8
150 120
0
70
150 80
70
80
10 0
50
200
Si se introduce la celda (1,5); Z 2=$3335.00: Plan ta 1
O bra 1 12
O b ra 2 13
O b ra 3 12 80
O b ra 4 10
Ficticia 0
100
200 20
Plan ta 2
10.5
12
14
10
Plan ta 3
8 .5
15
12
8
0 50
150 100
0
70
150 80
70
80
10 0
50
200
Se debe seleccionar la celda más favorable, es decir, la que aporte el menor costo; en este caso son iguales, por lo que es indiferente una u otra. Si se escoge la primera: U1=0 U2=0 U3=0
V1 = 8 .5 V2 = 1 3 V3 = 1 2 V4=10 V5=0
D11=12-8.5=3.5 D15=0 D21=10.5-8.5=2 D22=12-13=-1
D23=14-12=2 D32=15-13=2 D33=12-12=0 D34=8-10=-2
La celda (3,4) debe ser básica: O b ra 1 Planta 1 12
O b ra 2 13
O b ra 3 12 80
Planta 2 Planta 3
10 .5
12
8.5
O b ra 4 10 100
14
15 70
70
80
Planta 1
O b ra 1 12
O b ra 2 13
Planta 2
10 .5
12
10 0
O b ra 3 12 80
0 30
15 0
(-)
15 0
80
50
100
(+ ) 120
0
O b ra 4 10
14
20 0
20
10 (- ) 8 (+ )
12
Ficticia 0
20 0
Ficticia 0
20 0
20
10
0
15 0 150
Planta 3
8.5
15
12
8
70
Z3=$3275.00
70
80
10 0
0
15 0
30
50
50
20 0
U1= 0 U 2 = -2 U 3 = -2
V 1 = 1 0 .5 V2=13 V3=12 V4=10 V5=2
D11=12-10.5=1.5 D15=0-0-2=-2
D21=10.5+2-10.5=2 D22=12+2-13=1 D23=14+2-12=4 D32=15+2-13=4 D33=12+2-12=2 D24=10+2-10=2
La celda (1,5) debe convertirse en básica: O bra 1 Plan ta 1 12
O b ra 2 13
O b ra 3 12 80
Plan ta 2
10.5
12
100
14
O b ra 4 10 (- ) 10
Ficticia 0 (+ )
200
20
0
150 150
Plan ta 3
8 .5
15
12
8 (+ )
70
70
Planta 1
O bra 1 12
80
O b ra 2 13
10 0
O b ra 3 12 80
0
(-)
30
50
50
200
O b ra 4 10
Ficticia 0
100
150
200 20
Plan ta 2
10.5
12
14
10
0
Plan ta 3
8 .5
15
12
8
0
150 150
70
70
Z4=$3235.00
U1=0 U2=0 U3=0
V1 = 8 .5 V2 = 1 3 V3 = 1 2 V4=8 V5=0
D11=12-8.5=3.5 D14=10-0-8=2 D21=10.5-0-8.5=2 D22=12-0-13=-1
D23=14-0-12=2 D32=15-0-13=2 D33=12-0-12=0 D24=10-0-8=2
80
10 0
150
50
30
50
200
La celda (2,2) debe ser básica: O bra 1 Plan ta 1 12 Plan ta 2
O b ra 2 13 (- ) 12 (+ ) 15
10.5
Plan ta 3
8 .5
O b ra 3 12 80
O b ra 4 10 100
Planta 1
O bra 1 12
14
10
0
12
O b ra 2 13
8 10 0
O b ra 3 12
0
12
Plan ta 3
8 .5
15
30
50
200
O b ra 4 10
Ficticia 0
14
10
0
12
8
0
150 70
70
U1= 0 U2= 0 U3= 0
200 100
80
70
150 150
50
100
10.5
(-) 150
80
Plan ta 2
200
20
70
70
Ficticia 0 (+ )
80
10 0
150
50
30
50
200
V 1 = 8 .5 V2=12 V3=12 V4=8 V5=0
D11=12-8.5=3.5 D14=10-0-8=2 D21=10.5-0-8.5=2 D12=13-0-12=1 D23=14-0-12=2 D32=15-0-12=3 D33=12-0-12=0 D24=10-0-8=2
Todas las Dij>0 por lo que la última iteración es la distribución óptima, con un costo total de $3155.00; la distribución del concreto sería como sigue: La obra 1 se abastecerá con 70 m3 de la planta 3. La obra 2 se abastecerá con 80 m3 de la planta 2. La obra 3 se abastecerá con 100 m3 de la planta 1. La obra 4 se abastecerá con 50 m3 de la planta 3.
Además se tendrán sobrantes en la producción de 100 m3 en la planta 1, de 70 m3 en la planta 2 y de 30 m3 en la planta 3.
El problema anterior, pero considerando una solución inicial de Vogel. Problema del transporte: Planta 1
O b ra 1 12
O b ra 2 13
O b ra 3 12
O b ra 4 10
Ficticia 0
20 0
Planta 2
10 .5
12
14
10
0
15 0
Planta 3
8.5
15
12
8
0
15 0
70
80
10 0
50
20 0
Solución inicial (Zi=$3295.00): Planta 1
O bra 1 12
O b ra 2 13
O b ra 3 12
O b ra 4 10
Ficticia 0
Plan ta 2
10.5
12
14
10
0
200 200
80
Plan ta 3
8 .5
15
70
12
70
70
80
150 E
8
0
30
50
10 0
50
150 200
Algoritmo del transporte: U1= 2 U2= 2 U3= 0
V 1 = 8 .5 V2=10 V3=12 V4=8 V5=-2
D11=12-U1-V1=1.5 D12=13-U1-V2=1 D13=12-U1-V3=-2
D14=10-U1-V4=0 D21=10.5-U2-V1=0 D24=10-U2-V4=0 D32=15-U3-V2=5 D35=0-U3-V5=2
La celda (1,3) debe entrar a la base: O b ra 1 Planta 1 12 Planta 2
O b ra 2 13
10 .5
12 80
Planta 3
8.5
15
O b ra 3 12 (+ ) 14 (- ) 12
70
70
80
Planta 1
O b ra 1 12
O b ra 2 13
O b ra 3 12
Planta 2
10 .5
12
14
O b ra 4 10
Ficticia 0 (-)
10
0
70
8
0
30
50
10 0
50
15 70
U1= 0 U2= 0 U3= 0
V 1 = 8 .5 V2=12 V3=12 V4=8 V5=0
80
15 0
O b ra 4 10
Ficticia 0
10
0
20 0 130
15 0 70
12
70
15 0
20 0
80
8.5
(+ ) E
70
Planta 3
20 0
200
8
0
30
50
10 0
50
15 0 20 0
D11=12-U1-V1=3.5 D12=13-U1-V2=1 D14=10-U1-V4=2 D21=10.5-U2-V1=2 D23=14-U2-V3=2 D24=10-U2-V4=2 D32=15-U3-V2=3 D35=0-U3-V5=0
La última iteración corresponde a la solución óptima (Dij≥0) con Z1=$3155.00; nótese que hay una convergencia rápida a la solución óptima si se inicia con una solución inicial de Vogel. Aunque pudiera diferir en los valores de algunas celdas, el costo total es el mismo:
La obra 1 se abastecerá con 70 m3 de la planta 3. La obra 2 se abastecerá con 80 m3 de la planta 2. La obra 3 se abastecerá con 70 m3 de la planta 1 y con 30 m3 de la planta 3. La obra 4 se abastecerá con 50 m3 de la planta 3. Además se tendrán sobrantes en la producción de 130 m3 en la planta 1 y de 70 m3 en la planta 2.
Ahora utilizando el software TORA:
Figura 3.2 Ingresando los datos del modelo del transporte.
Figura 3.3 Solución del modelo del transporte.
Maximización en problemas de transporte Aunque originalmente el algoritmo del transporte se instrumentó para minimizar costos, es posible utilizarlo para optimizar utilidades. Una opción, sería invertir los algoritmos tanto de solución inicial como de transporte y utilizar las utilidades en ellos; se obtendría la distribución que optimizara las utilidades. La otra opción que se considera la más fácil, es convertir las utilidades en costos de oportunidad; tratándose de costos, ya es posible utilizar los algoritmos tal como se conocen. Se dice que se incurre en un costo de oportunidad cuando no se toma la mejor decisión. En el caso de un arreglo del transporte, siendo cada renglón un lugar de oferta, habrá que seleccionar en cada renglón la mayor utilidad y la correspondiente en cada celda para
establecer el costo de oportunidad; así, se obtendría la tabla de transporte con costos de oportunidad con la que se estaría en condiciones de operar, tanto para la solución inicial como para el algoritmo de transporte. Conviene tener en cuenta que para el cálculo de la función objetivo z, se considerarán los valores correspondientes de las utilidades en cada celda básica de las soluciones. Cuando el problema del transporte no esté balanceado y se trate de utilidades, es necesario balancearlo con una oferta o una demanda ficticia, antes de calcular los costos de oportunidad. En el ejemplo siguiente se ilustra la manera de proceder para estas situaciones.
Ejemplo 3.4 Maximización en el transporte Una compañía petrolera controla dos campos petroleros. El campo 1 puede producir hasta 40 millones de barriles de petróleo al día, y el campo 2 puede producir hasta 50 millones de barriles de petróleo al día. En el campo 1 cuesta 3 dólares extraer y refinar un barril de petróleo; en el campo 2 cuesta 2 dólares extraer y refinar un barril de petróleo. La compañía vende el petróleo a dos países: Inglaterra y Japón. En la tabla se muestra el costo de envío por barril de petróleo. Cada día, Inglaterra está dispuesto a comprar hasta 40 millones de barriles de petróleo (a 6 dólares el barril), y Japón está dispuesto a comprar hasta 30 millones de barriles de petróleo (a 6.50 dólares el barril). DESDE
HACIA Inglaterra, dólares Japón, dólares
Campo 1
1
2
Campo 2
2
1
Consideraciones: El problema del transporte no está balanceado. La oferta es de 90 millones de barriles diarios y lo que se demanda entre los dos países es 70 millones de barriles diarios; es necesario agregar una demanda ficticia de 20 millones de barriles por día. Por otra parte, se integrará una utilidad por transporte y por extracción-refinación del petróleo. A partir de esta utilidad se establecerá la forma de resolver un problema de maximización en el transporte, ya que los algoritmos de solución inicial y el algoritmo del transporte están diseñados para problemas de costos. Para utilizar los algoritmos, habrá que convertir las utilidades en costos de oportunidad. El costo de oportunidad se define como aquel costo en que se incurre por no tomar la mejor decisión. Para el ejemplo; en cada celda se tendrá una utilidad:
Utilidad = Precio de venta – Costo por extracción y refinación – Costo por transporte
De manera que las utilidades en cada celda serán: Campo 1
Inglaterra 6-3-1=$2
Japón 6.5-3-2=$1.5
Campo 2
6-2-2=$2
6.5-2-1=$3.5
La tabla del transporte con utilidades es: INGLATERRA
JAPÓN
FICTICIA
C1
2
1.5
0
40
C2
2
3.5
0
50
40
30
20
La conversión a costos de oportunidad: en cada renglón se selecciona la mejor utilidad (que es la mejor decisión) y en cada celda se hace la diferencia entre la mejor decisión y cualquier otra utilidad:
INGLATERRA
JAPÓN
FICTICIA
C1
0
0.5
2
40
C2
1.5
0
3.5
50
40
30
20
Búsqueda de una solución inicial con el algoritmo de Vogel:
INGLATERRA
C1
0
JAPÓN
0.5
FICTICIA
2
INGLATERRA
40
0.5
C1
40
C2
C1
0
3.5
40
30
20
1.5
0.5
1.5
JAPÓN
FICTICIA
0
0.5
2
50
1.5
C2
1.5 0
0.5
2
0
1.5
1.5
0
3.5
50
3.5
0
30
20
0.5
1.5
JAPÓ N
FI CTI CI A
I NGLATERRA
0
1.5
C1
40
C2
FICTICIA
40
1.5
INGLATERRA
0
JAPÓN
0
0.5
40
0 30 0
3.5 20 1.5
20
3.5
C2
1.5 40
2
40
E
0
3.5
30
20
30
20
50
El valor de la función objetivo se calcula con los valores de utilidades: ZINICIAL=185 millones de dólares
Aplicando el algoritmo del transporte:
U1=0 U2=1.5
V1=0 V2=-1.5 V3=2
Al calcular las diferencias se encuentra que Dij≥0, por lo que la solución inicial es óptima y
sugiere enviar 40 millones de barriles por día del Campo 1 a Inglaterra y del Campo 2 enviar 30 millones de barriles por día a Japón, con lo cual la compañía petrolera optimizará sus utilidades en 185 millones de dólares por día.
El problema de trasbordo El problema de transporte (originalmente) solamente permite envíos que van directamente desde un punto de oferta hacia un punto de demanda. En muchas situaciones, se permite envíos entre punto de oferta o entre puntos de demanda; algunas veces, también puede haber puntos (llamados puntos de transbordo) a través de los cuales se puede transbordar bienes en su viaje desde un punto de oferta hacia un punto de demanda. Problemas de envío, con alguna o todas estas características son problemas de transbordo. Afortunadamente, se puede obtener la solución óptima para un problema de transbordo, al resolver un problema de transporte. Se define un punto de oferta como un punto que puede enviar bienes hacia un punto, pero que no puede recibir bienes de cualquier otro punto. De manera similar, un punto de demanda es un punto que puede recibir bienes de otros puntos, pero no puede enviar bienes hacia ningún otro punto. Un punto de transbordo es un punto que puede tanto recibir bienes de otros puntos como enviar bienes hacia otros puntos. A continuación se describe cómo se puede obtener una solución óptima de un problema de transbordo, resolviendo un problema de transporte: 1. Si es necesario, se añade un punto de demanda ficticio (con oferta de cero y una demanda igual a la oferta en exceso) para balancear el problema. Los envíos hacia el punto ficticio y desde un punto hacia sí mismo, tendrán naturalmente un costo de envío igual a cero. Sea s la oferta total disponible. 2. Se construye un cuadro de transporte de la manera siguiente. Se necesitará un renglón en el cuadro por cada punto de oferta y por cada punto de transbordo. Y se necesitará una columna por cada punto de demanda y por cada punto de transbordo. Cada punto de
oferta tendrá una oferta igual a su oferta original, y cada punto de demanda tendrá una demanda igual a su demanda original. Sea s la oferta total disponible. Entonces cada punto de transbordo tendrá una oferta igual a (la oferta original del punto) + s y una demanda igual a (la demanda original del punto) + s. Esto asegura que cualquier punto de transbordo que es un abastecedor neto, tendrá una salida neta, igual a la oferta original del punto, y cualquier punto de transbordo que sea un recibidor neto tendrá una entrada neta igual a la demanda original del punto. Aunque no se sabe cuánto se enviará a través de cada punto de transbordo, se puede estar seguro de que la cantidad total enviada a través del punto no sea mayor que s. Esto explica porqué se suma s a la oferta y a la demanda en cada punto de transbordo. Al sumar las mismas cantidades a la oferta y a la demanda en cada punto de transbordo, se asegura que la salida neta de cada punto de transbordo será correcta y también se mantiene un cuadro de transporte balanceado. 3. Se aplican los algoritmos de solución inicial y del transporte para buscar una solución óptima.
Ejemplo 3.5 Problema de trasbordo Considérese la red de gasoductos representada por la figura, los distintos nodos representan estaciones de bombeo y de recepción. En la red se ven las distancias entre las estaciones. El costo de transporte por galón, entre dos nodos es directamente proporcional a la longitud del gasoducto. Formular y resolver como un modelo de trasbordo. 50,000
60,000 (galones)
1 20 2
3 9
3
40
30
7
4 10
90,000
20,000
6
Para establecer la tabla del transporte: 1 y 3 son ofertas puras 2 y 4 son demandas puras 5, 6 y 7 son trasbordos
2
8
4
5
La tabla del transporte es: 2
4
5
6
7
1
20
M
M
M
3
50
3
M
30
M
M
9
60
5
M
2
0
4
10
11 0
6
8
M
4
0
M
11 0
7
40
M
10
M
0
11 0
90
20
110
1 10
1 10
Solución inicial con algoritmo de Vogel: 1
2
4
5
6
7
20
M
M
M
3
50 50
3
M
30
M
M
9
60 60
5
M
2
0
4
20 6
8
M
4
0
90 7
40
110
M
110
20
M
10
M 110
90
10 90
20
110
0 E
110 E
110
110
Zi=$2910.00 U 1= 3 U 2= 9 U 3= 4-M U 4= -M U 5= 0
V1=M +8 V 2 = M -2 V 3 = 10 V4=M V5=0
D11=20-U1-V1=9-M
D 12 = M-U 1- V2 = -1 D 1 3= M -U 1 -V 3 = M- 13 D 14 = M-U 1- V4 = -3 D 2 1= M -U 2 -V 1 = -1 7 D 2 2 = 3 0 -U 2 -V 2 = 2 3 -M D 2 3 = M -U 2 - V3 = M - 1 9 D 24 =M -U 2-V 4= -9
D31=M-U3-V1=M-12 D 33 = 0- U3 -V 3= M -1 4 D 3 5= 1 0 -U 3 -V 5 = M +6 D 42 = M- U4 -V 2= M -2 D 4 3= 4 -U 4 -V 3 = M -6 D 4 5 = M - U4 - V 5= 2 M D 5 1 = 4 0 -U 5 -V 1 = 3 2 -M D 52 =M -U 5-V 2= 2
La celda (1, 1) debe ser básica: 1
3
2
4
5
6
7
20 (+ ) M
M
M
M
3
(-)
50
50
30
M
M
9
60 60
5
M
2
0
4
20 6
7
8 (- ) 40
M
4
0
90
10 11 0
1
110
(+ )
M
110
20
M
90
10 90
20
1 10
M (- ) 110
0 E
110
2
4
5
6
7
20
M
M
M
3
M
110
E
E 3
(+ )
50 50
30
M
M
9
60 60
5
M
2
0
4
20 6
8
M
4
0
90
Z1=$2910.00
7
40
10
110
M
110
90
20
M
10
M
0
110
90
20
110
110 E
110
110
U 1= 3 U 2= 9 U 3= -5 U 4= -9 U 5= 0
V1= 17 V2= 7 V3= 10 V4= 9 V5= 0
D 5 4= M - U5 -V 4 = M -9 D12=M-U1-V2=M-10 D 1 3 = M - U1 - V3 = M - 1 3 D 1 4= M - U1 -V 4 = M -1 2 D 2 1= M - U2 -V 1 = M -2 6 D 22 = 30 -U 2-V 2= 1 4 D 2 3 = M - U2 - V3 = M - 1 9 D 2 4= M - U2 -V 4 = M -1 8
D 3 1= M -U 3 -V 1 = M- 12 D33=0-U3-V3=-5
D 3 5 = 1 0 -U 3 - V5 = 1 5 D 4 2= M -U 4 -V 2 = M- 1 D 4 3= 4 -U 4 -V 3 = 3 D 45 = M-U 4- V5 = M+ 9 D 5 1 = 4 0 -U 5 - V1 = 2 3 D 5 2= M -U 5 -V 2 = M- 7
La celda (3, 3) debe ser celda básica: 1
3
2
4
5
6
7
20 (+ ) M
M
M
M
3
E
(-)
50
50
30
M
M
9
60 60
5
M
2 20
6
7
8 (- ) 40
M
4
(-)
10
110
M
110
90
0
90
(+ ) 20
M
90
1
0 (+ ) 4 10 (- ) 110
20
M
0
110
(+ ) E
110
110
2
4
5
6
7
20
M
M
M
3
30
M
M
9
110
50
50 3
M
60 60
5
M
2
0 20
6
8
M
4 50
4
0
40 7
40
10
110
M
110
40
70
M
10
M
0
60
90
20
Z2=$2660.00 U1=8 U2=19 U3=0 U 4 = -4 U5=10
V1=12 V2=2 V3=0 V4=4 V 5 = -1 0
D 5 4 = M - U5 - V4 = M - 1 4 D 1 2= M - U1 -V 2 = M -1 0 D 1 3= M - U1 -V 3 = M -8 D 1 4= M - U1 -V 4 = M -1 2 D 2 1= M - U2 -V 1 = M -3 1 D 22 = 30 -U 2-V 2= 9 D 2 3 = M - U2 - V3 = M - 1 9 D 2 4 = M - U2 - V4 = M - 2 3
D 3 1 = M -U 3 - V1 = M - 1 2 D 1 5= 3 -U 1 -V 5 = 4 D 3 5= 1 0 -U 3 -V 5 = 20 D 4 2= M -U 4 -V 2 = M+ 2 D 4 3= 4 -U 4 -V 3 = 8 D 45 = M-U 4- V5 = M+ 1 4 D 5 1 = 4 0 -U 5 - V1 = 1 8 D 5 2 = M -U 5 - V2 = M - 1 2
110
110 50
110
110
La solución es óptima, Dij≥0; el resultado se puede expresar con la red:
20
50 000
60 000
1
3
9 60 000
50 000
2
7
60 000
40 000 90 000
4
10
8 6
20 000 2
4
20 000 5
40 000
Ejemplo 3.6 Problema de transbordo Un constructor tiene 6 piezas de equipo de construcción de la misma clase, disponible en las ciudades 1 y 2 (3 piezas en cada una), y tiene obras en proceso en las ciudades 3, 4 y 5 en las cuales requiere de 2, 3 y 1 piezas, respectivamente. Estas ciudades están localizadas como se muestra en la figura y los costos de transporte por unidad aparecen en los arcos de la red. En donde no hay liga directa entre dos ciudades, el transporte se puede hacer con las ciudades intermedias. ¿Cómo puede llevarse a cabo el traslado de equipo, para minimizar el costo total? 4
3
4
1
2 2
1 5
3
3
La tabla inicial de transporte es: 1
2
3
4
5
1
0
4
M
3
1
6
2
4
0
2
M
M
6
3
M
2
0
M
3
4
4
3
M
M
0
M
3
5
1
M
3
M
0
5
3
3
6
6
6
Una solución inicial con el algoritmo de Vogel: 1
1
2
3
4
5
0
4
M
3
1
2
2
4
3
0
2
1
3
M
3
2
6 1
M
M
6
M
3
4
M
3
2
0 4
4
3
M
M
0 3
5
1
M
3
M
0
5 5
3
3
6
6
6
Aplicando el algoritmo del transporte: U 1= -2 U 2= 0 U 3= -2 U 4= -5 U 5= -3
V 1= 4 V 2= 0 V 3= 2 V 4= 5 V 5= 3
2 -U 1-V 1= 0; 3 -U 1-V 4= 0; 1 -U 1-V 5= 0; 0 -U 3-V 3= 0; 0 -U 4-V 4= 0; 0-U5-V5=0;
U 1= -2 V 4= 5 V 5= 3 U 3= -2 U 4= -5 U5=-3
D12=4-U1-V2=6 D13=M-U1-V3=M D24=M-U2-V4=M-5 D25=M-U2-V5=M-3 D31=M-U3-V1=M-2 D32=2-U3-V2=4 D34=M-U3-V4=M-3 D35=3-U3-V5=2 D41=3-U4-V1=4 D42=M-U4-V2=M+5 D43=M-U4-V3=M+3 D45=M-U4-V5=M+2 D51=1-U5-V1=0 D52=M-U5-V2=M-1 D53=3-U5-V3=4 D54=M-U5-V4=M-2
Se observa que Dij≥0 por lo que la solución es óptima y se puede representar en la red: 4
$3 3
3
3 $4
1
1
1 $1
El costo total de transporte es Z=$18.00
2
2 $2
5
3
1
2
Ejemplo 3.7 Problema de trasbordo empleando Solver Sunco Oil produce petróleo en dos pozos. El pozo 1 produce 150 000 barriles por día y el pozo 2 produce 200 000 barriles al día. Es posible enviar petróleo directamente de los pozos a los clientes de sunco en Los Ángeles y Nueva York. Alternativamente, Sunco podría transportar petróleo a los puertos de Mobile y Galveston y luego enviarlo en un buque cisterna a Nueva York y Los Ángeles. Esta última ciudad requiere de 160 000 barriles por día y Nueva York requiere 140 000 barriles por día. El costo de enviar 1000 barriles entre dos puntos se muestra en la tabla. Formular el problema de transbordo con un modelo de transporte equivalente que podría utilizarse para minimizar los costos de transporte a fin de satisfacer las demandas de petróleo de Los Ángeles y Nueva York.
A ($) De:
Pozo 1
Pozo 2
Mobile
Galveston
N. Y.
L. A.
Pozo 1
0
-
7
13
25
20
Pozo 2
-
0
15
12
24
25
Mobile
-
-
0
6
8
13
Galveston
-
-
6
0
14
8
N. Y.
-
-
-
-
0
5
L. A.
-
-
-
-
6
0
Nota: Los guiones indican que no están permitidos los envíos. Identificando las variables de decisión: Mobile 3
8
7 Pozo 1 150 000
1
25 13
20
6 14
24
15 Pozo 2 200 000
6
13
2
25 12
8 4 Galveston
5
Nueva York 140 000
6
5
6
Los Ángeles 160 000
Introducción de datos en Excel:
Se introduce la función sumaproducto para la celda objetivo:
Se introduce la función sumaproducto para cada restricción:
En herramientas, se selecciona Solver y se introduce la información solicitada; en Opciones se solicita que el análisis sea lineal:
Finalmente, se tiene un resultado:
Este resultado se puede observar en la red:
Mobile 3 140, $7
Pozo 1 150 000
140, $8
1
5
140 000
6
160 000
10, $20
Pozo 2 200 000
2 150, $12
150, $8
4 Galveston
El costo asociado al transporte es $5 300 000.00.
3.2 Asignación En este grupo de problemas se tiene una matriz de efectividad, que señala lo que sucede cuando se asocia cada uno de los orígenes con cada uno de los destinos; hay tantos orígenes como destinos. Cada origen se asocia con un y sólo un destino, y se quiere hacer las asociaciones de tal manera que se haga mínima (máxima) la efectividad total (la suma de las efectividades). Se cita como ejemplo la manera de asignar 10 contratos a 10 contratistas de manera que la distribución sea óptima. El problema de asignación es un tipo de problema en el que n contratos se distribuyen entre n contratistas de forma óptima. El problema se puede expresar formalmente como sigue. Dada una matriz de nxn de números reales [cij] donde cij es la ganancia individual asociada con la asignación del contrato i-ésimo al contratista j-ésimo. Encontrar entre todas las permutaciones ( i1 , i 2 , . . . , i n) del conjunto de enteros (1, 2, . . . , n ), aquella permutación para la cual
c1i
c
2i
... 2
c ni
n
toma su valor máximo (mínimo). Existen n! permutaciones (es decir, n! maneras de asignar n contratos a n contratistas).
Algoritmo de asignación Teorema: Si en un problema de asignación se suma una constante para cada elemento de un renglón (o columna) en la matriz de efectividad, entonces una asignación que hace mínima la efectividad total en una matriz, también minimiza la efectividad total de la otra matriz. En base al teorema, se procede a restar el elemento mínimo en cada renglón de todos los elementos en su renglón y restar el elemento mínimo en cada columna de todos los elementos de la columna. Es obvio que la matriz sólo contendrá elementos positivos o cero y entonces la efectividad total no puede ser negativa para ninguna asignación. En consecuencia, si se puede escoger una asignación que tiene un total de cero, no puede haber asignación alguna con un total menor. En otras palabras, es seguro que el total es mínimo si todas las asignaciones se pueden hacer en donde los elementos son cero.
Si la asignación máxima no constituye una solución completa, se comienza con una asignación máxima y:
a) Se marcan todos los renglones en los que no se ha hecho asignación. b) Se marcan las columnas que no han sido marcadas y que tienen ceros en los renglones marcados. c) Se marcan los renglones que aún no están marcados y que tienen asignaciones en columnas marcadas. d) Se repiten los pasos b y c hasta que termina la cadena de marcas. e) Se trazan líneas a través de todos los renglones no marcados y a través de todas las
columnas marcadas. Si se ha llevado correctamente el procedimiento, debe haber tantas líneas como asignaciones había en la asignación máxima, y cada cero tendrá cuando menos una línea que pase por él. Más aún, este método, produce el mínimo número de líneas que pasan por todos los ceros. f)
Una vez que se han trazado líneas de los pasos a hasta e, se examinan los elementos que no tienen una línea que pase por ellos, y se resta de todos los elementos que no tienen una línea que pase por ellos. Se suma este elemento menor a cada elemento que está en la intersección de dos líneas. Se dejan los elementos sobrantes de la matriz sin cambio.
Ejemplo 3.8 Algoritmo de asignación Un constructor tiene 6 piezas especiales de un equipo de excavación de diferentes clases y tiene 6 lugares en que realiza excavación con diferentes condiciones del sitio. Ha calificado la ejecución del equipo de cada clase para cada sitio con la escala del 1 al 9 como se muestra en la tabla, en la cual 1 representa el más deseable y 9 el menos deseable. ¿Cómo puede asignar cada pieza de equipo a cada trabajo, de manera que la calificación total sea mínima? Sitio número
o r e m ú n o p i u q E
1 2 3 4 5 6
1 4
2 5
3 3
4 2
5 7
6 1
5
4
2
3
4
6
6
8
1
4
3
7
3
2
9
7
6
5
1
3
5
1
8
4
2
6
7
5
2
3
La matriz original es: 1
2
3
4
5
6
1
4
5
3
2
7
1
2
5
4
2
3
4
6
3
6
8
1
4
3
7
4
3
2
9
7
6
5
5
1
3
5
1
8
4
6
2
6
7
5
2
3
En cada renglón se resta el menor de cada una de las celdas; si hace falta se hace lo mismo en cada columna y se hace la asignación máxima: 1
2
3
4
5
6
1
3
4
2
1
6
0
2
3
2
0
1
2
4
3
5
7
0
3
2
6
4
1
0
7
5
4
3
5
0
2
4
0
7
3
6
0
4
5
3
0
1
Como la asignación no es completa, se procede con el método húngaro: Se marca renglón en donde no hay asignación, se marca columna que tienen ceros en renglones marcados y renglones que tienen asignaciones en columnas marcadas: 1
2
3
4
5
6
1
3
4
2
1
6
0
2
3
2
0
1
2
4
3
5
7
0
3
2
6
4
1
0
7
5
4
3
5
0
2
4
0
7
3
6
0
4
5
3
0
1
X
X X
Se trazan líneas a través de renglones no marcados y por columnas marcadas: 1
2
3
4
5
6
1
3
4
2
1
6
0
2
3
2
0
1
2
4
3
5
7
0
3
2
6
4
1
0
7
5
4
3
5
0
2
4
0
7
3
6
0
4
5
3
0
1
Examinando los elementos que no tienen una línea que pase por ellos; se selecciona al menor (1), el cual se resta de todos los elementos que no tienen una línea que pase por ellos y se suma a cada elemento que está en la intersección de dos líneas: 1
2
3
4
5
6
1
3
4
3
1
6
0
2
2
1
0
0
1
3
3
4
6
0
2
1
5
4
1
0
8
5
4
3
5
0
2
5
0
7
3
6
0
4
6
3
0
1
Haciendo otra asignación: 1
2
3
4
5
6
1
3
4
3
1
6
0
2
2
1
0
0
1
3
3
4
6
0
2
1
5
4
1
0
8
5
4
3
5
0
2
5
0
7
3
6
0
4
6
3
0
1
Se tiene una asignación completa u óptima, por lo que sustituyendo esta asignación en los valores originales se tiene la solución que minimiza el costo: 1
2
3
4
5
6
1
4
5
3
2
7
1
2
5
4
2
3
4
6
3
6
8
1
4
3
7
4
3
2
9
7
6
5
5
1
3
5
1
8
4
6
2
6
7
5
2
3
La pieza 1 se asigna al sitio 6 La pieza 2 se asigna al sitio 4 La pieza 3 se asigna al sitio 3 La pieza 4 se asigna al sitio 2 La pieza 5 se asigna al sitio 1 La pieza 6 se asigna al sitio 5 Lo cual generará una calificación total mínima de 10.
Ejemplo 3.9 Algoritmo de asignación El departamento de mantenimiento debe realizar 3 trabajos de reparación de maquinaria y equipo. Se cuenta con cuatro grupos de técnicos, cada uno con diferente instrumental y diferentes habilidades para realizar los tres trabajos. Debido a estas diferencias el tiempo estimado de desarrollo de cada mantenimiento será diferente dependiendo del rupo al cual sea asignado cada trabajo. En la tabla se muestra la cantidad de horas que se estima tomará la realización de cada trabajo según el grupo al que se le asigne. Determinar la asignación óptima de los tres trabajos, es decir, aquella que minimice el tiempo total de ejecución de todos los mantenimientos.
1
Trabajo 2
3
A
24
45
25
B
33
48
23
C
24
52
20
D
30
56
21
Grupo de mantenimiento
Se agrega una columna ficticia para emplear el método húngaro: A B C D
1
2
3
Ficticia
24 33 24 30
45 48 52 56
25 23 20 21
0 0 0 0
Se generan ceros al restar el valor más pequeño en renglones y columnas: 0
0
5
0
9
3
3
0
0
7
0
0
6
11
1
0
Se hace una asignación; al no ser completa se marcan renglones sin asignación y columnas con ceros renglones marcados; se marcan renglones con asignación en columnas marcadas, hasta que ya no es posible marcar. Se trazan líneas en renglones no marcados y en columnas
marcadas. Se selecciona el menor valor de entre los que no hay línea que pase por ellos; este valor se resta en todos aquellos que no tienen línea que pase por ellos y se suma a los que están en intersecciones de líneas:
0 9 0 6
0 3 7 11
5 3 0 1
0 0 0 0
0 8 0 5
X X
0 2 7 10
5 2 0 0
1 0 1 0
X
En este arreglo resultante se hace una nueva asignación y esta es completa, por lo que es la óptima. Trasladando este resultado a los costos originales, se tiene que: 1
2
3
Ficticia
0
0
5
1
A
24
45
25
0
8
2
2
0
B
33
48
23
0
0
7
0
1
C
24
52
20
0
5
10
0
0
D
30
56
21
0
El grupo A hará el trabajo 2 El grupo B no hará ninguno El grupo C hará el trabajo 1 El grupo D hará el trabajo 3 El costo total de asignar los trabajos será de $45+$24+$21=$90.00
Ejemplo 3.10 Maximización en asignación Se planea la venta de cinco lotes y se han recibido ofertas individuales de cuatro clientes. Debido a la cantidad de capital que se requiere, estas ofertas se han hecho en el entendimiento de que ninguno de los cuatro clientes comprará más de un lote. Las ofertas se muestran en la tabla. Se desea decidir a qué comprador asignar cada lote de tal forma que se maximice el ingreso total a partir de estas ofertas.
Comprador
Lote 1
2
3
4
5
A
16
15
25
19
20
B
19
17
24
15
25
C
15
15
18
0
16
D
19
0
15
17
18
Es un problema de maximización, por lo que las ofertas se deben convertir en costos de
oportunidad y trabajar con la matriz resultante: