INVESTIGACION DE OPERACIONES
Problema de Transporte y Asignacin
25/05/2011
muchas de sus aplicaciones involucran determinar la manera ptima de transportar bienes. Sin embargo, algunas de aplicaciones importantes (como la programacin de la produccin), de hecho no tienen nada que ver con el transporte. El segundo tipo, llamado problema de asignacin, incluye aplicaciones tales como asignar personas a tareas. Aunque sus aplicaciones parecen diferir del problema de transporte, se vera que este problema es un acaso especial del problema de transporte.
25/05/2011
El Problema de Transporte
problema de programacin lineal. Si bien este tipo de problema puede ser resuelto por el mtodo Simplex, existe un algoritmo simplificado especial para resolverlo.
25/05/2011
El problema general de transporte se refiere a la distribucin de cualquier bien desde cualquier grupo de centros de suministro, llamados orgenes, a cualquier grupo de centros de recepcin, llamados destinos, de tal manera que se minimicen los costos totales de distribucin. La terminologa utilizada en estos problemas se resume en la siguiente tabla:
PROBLEMA GENERAL Unidades de un bien m orgenes n destinos si recursos en el origen i Demanda dj en el destino j Costo cij por unidad distribuida desde el origen i al destino j EJEMPLO Cargas de latas de tomate Cuatro enlatadoras Cuatro almacenes Produccin de la enlatadora i Asignacin al almacn j Costo de envo por carga desde la enlatadora i al almacn j.
Como se indico en la tabla, cada origen tiene cierto suministro de unidades que distribuir a los destinos, y cada destino tiene cierta demanda de unidades que deben recibirse de los orgenes. 25/05/2011
4
Supuestos de Requerimientos
Cada origen tiene un suministro fijo de unidades y el suministro completo debe distribuirse a los destinos. (si es el nmero de unidades que suministra el origen i). De igual manera, el destino tiene una demanda fija de unidades, y debe satisfacerse desde los orgenes, (dj es el numero de unidades recibidas por el destino j). Un problema de transporte tiene soluciones factibles si y solo si:
Esto significa que es necesario un balance entre el suministro total y la demanda total. Si problemas reales no se ajustan por completo al problema de transporte, es posible reformular el problema de manera que se ajuste al modelo con la introduccin de un destino ficticio o un origen ficticio para que se haga cargo de la holgura entre las cantidades reales distribuidas.
25/05/2011
=
=1 =1
Supuestos de Costos
dado es directamente proporcional al nmero de unidades distribuidas. Por lo tanto este costo es justo el costo unitario de distribucin multiplicado por el nmero de unidades distribuidas. (el costo unitario del origen i al destino j se denota por cij). En resumen la suposicin de costo nos dice que: la funcin del costo de transporte debe ser una funcin lineal del nmero de unidades transportadas y que el costo de transporte por unidad no vara con la cantidad transportada.
25/05/2011
Los nicos datos necesarios para un problema de transporte son suministros, demandas y costos unitarios. Estos son los parmetros del modelo. Todos estos parmetros se pueden resumir en la siguiente tabla de parmetros.
Costo por unidad distribuida Destino 1 1 Origen 2 m C11 C21 Cm1 d1 2 C12 C22 Cm2 d2 ... n C1n C2n Cmn dn Recursos s1 s2 sm
Demanda
Entonces cualquier problema (ya sea que involucre el transporte o no), se ajusta a este modelo de problema de transporte si se puede escribir por completo en trminos de una tabla de parmetros como la anterior, y adems satisface tanto el supuesto de requerimientos, como de costos. 25/05/2011
7
el costo total de distribucin y xij (i = 1,2,...m; j = 1,2,...n) el nmero de unidades que se distribuyen del origen i al destino j, la formulacin de programacin lineal para este problema es:
=1 =1
=
=1
Modelos de Transportes y Asignacin
=
=1
= 1,2, , . .
0,
= 1,2, , .
25/05/2011
Una empresa energtica dispone de tres plantas de generacin para satisfacer la demanda elctrica de cuatro ciudades. Las plantas 1, 2 y 3 pueden satisfacer 35, 50 y 40 millones de kWh respectivamente. El valor mximo de consumo ocurre a las 2 PM y es de 45, 20, 30 y 30 millones de kWh en las ciudades 1, 2, 3 y 4 respectivamente. El costo de enviar 1 kWh depende de la distancia que deba recorrer la energa. La tabla muestra los costos de envo desde cada planta a cada ciudad. Formule un modelo de PL que minimice los costos de satisfaccin de la demanda en todas las ciudades.
Hacia Ciudad 1 Planta 1 Planta 2 Planta 3 Demanda (millones Kwh)
Modelos de Transportes y Asignacin
Desde Ciudad 2 6 12 9 20 8 9 14 45
Ciudad 3 10 13 16 30
Ciudad 4 9 7 5 30
25/05/2011
Planta 1 Ciudad 2
d2 = 20
S2 = 50
Planta 2 Ciudad 3
d3 = 30
S3 = 40
Planta 3 Ciudad 4
d4 = 30
25/05/2011
10
necesarias para representar las posibles decisiones que puede tomar la empresa energtica. En este caso, corresponde a la cantidad de energa que se debe enviar desde cada planta a cada ciudad, luego para i = 13yj=14
11
energa a todas las ciudades es: Costo de enviar energa desde la Planta 1: 8x11 + 6x12 + 10x13 + 9x14 Costo de enviar energa desde la Planta 2: 9x21 + 12x22 + 13x23 + 7x24 Costo de enviar energa desde la Planta 3: 14x31 + 9x32 + 16x33 + 5x34
25/05/2011
12
El problema tiene dos tipos de restricciones. En primer lugar, la energa total suministrada por cada planta
no puede exceder su capacidad. En este caso se habla de restricciones de oferta o suministro. Como existen tres puntos de oferta o suministro, existen tres restricciones: x11 + x12 + x13 + x14 35 (Restriccin de oferta de la Planta 1) x21 + x22 + x23 + x24 50 (Restriccin de oferta de la Planta 2) x31 + x32 + x33 + x34 40 (Restriccin de oferta de la Planta 3)
Modelos de Transportes y Asignacin
25/05/2011
13
Restricciones
permitan asegurar que se satisfaga la demanda en las cuatro ciudades. As, las restricciones de demanda para cada punto de demanda quedan: x11 + x21 + x31 45 (Restriccin de demanda de la Ciudad 1) x12 + x22 + x32 20 (Restriccin de demanda de la Ciudad 2) x13 + x23 + x33 30 (Restriccin de demanda de la Ciudad 3) x14 + x24 + x34 30 (Restriccin de demanda de la Ciudad 4)
25/05/2011
14
Restricciones
25/05/2011
15
Restricciones de Demanda:
x11 + x12 + x13 + x14 35 x21 + x22 + x23 + x24 50 x31 + x32 + x33 + x34 40 x11 + x21 + x31 45 x12 + x22 + x32 20 x13 + x23 + x33 30 x14 + x24 + x34 30
Restricciones de No Negatividad:
Xij 0 donde i = 1, 2, 3 y j = 1 2, 3, 4
25/05/2011
16
Formulacin General
informacin:
Consideremos:
17
Formulacin General
= =1 = =1
Sujeto a:
0 = 1, , ; = 1, ,
= 1, ,
= 1, ,
18
Formulacin General
Si se satisface: = = =1 , se dice que el problema est =1 balanceado. En el caso de un problema de transporte balanceado todas las restricciones estarn al lmite, por lo tanto la formulacin queda:
Sujeto a:
= = = 1, , =1
=
=1 =1
= =
= =1 = = 1, ,
0 = 1, , ; = 1, ,
19
problema de transporte incorporando un punto de demanda artificial o dummy que tenga como demanda el excedente de oferta del problema. Como las asignaciones al punto artificial no son reales, se le asigna un costo unitario de cero. En general, el costo unitario no necesariamente debe ser igual a cero, basta con que tenga igual valor a todos los puntos de oferta disponibles de forma de no generar preferencias. Por simplicidad, se prefiere emplear cero. Para ilustrar el balanceo de un problema no balanceado, supongamos en el ejemplo anterior que la demanda de la ciudad 1 disminuye a 40 Kwh. La Figura ilustra la incorporacin del punto de demanda artificial y entrega la solucin respectiva.
25/05/2011
20
Planta 1
Ciudad 2
d2 = 20
S2 = 50
Planta 2
d3 = 30
S3 = 40
Planta 3
d4 = 30
d5 = 5
25/05/2011
21
tableau de transporte
Una forma ms prctica de representar un problema de transporte es mediante un tableau de transporte. Una celda de la fila i y la columna j representa la variable xij. Se suele incorporar en la esquina superior derecha de cada celda, el costo unitario cij de la combinacin i j. En general, el tableau queda: Demanda 1 Oferta 1 Oferta 2 Demanda 2
...
Demanda n
Oferta
S1 S2 Sm
25/05/2011
Oferta m Demanda
Modelos de Transportes y Asignacin
22
tableau de transporte
Construyendo el tableau para el ejemplo anterior (caso balanceado), introduciendo la solucin ptima, se tiene:
Ciudad 2
Ciudad 3
Ciudad 4
Oferta 35 50 40
8 9 14 45 20
6 12 9 30
10 13 16 30
9 7 5
En este caso se puede verificar que el problema est balanceado comprobando que la suma de la ltima columna y la suma de la ltima de la fila es idntica.
25/05/2011
23
tableau de transporte
balanceado cuando la demanda es inferior a la oferta, tambin es posible que la demanda supere a la oferta. En este caso, se recurre a un punto de oferta artificial con valor de oferta equivalente a la diferencia entre oferta y demanda, de modo de balancear el problema. En la mayora de las situaciones, el hecho de no satisfacer totalmente la demanda puede significar algn tipo de costo. Por lo tanto, en stos casos el costo unitario de las casillas ficticias suele no ser cero y puede variar de un punto de demanda a otro.
25/05/2011
24
25/05/2011
25
26
Teorema 1 En un problema de transporte balanceado con m puntos de oferta y n puntos de demanda, las celdas correspondientes a un conjunto de m+ n-1 variables no contienen un loop s y slo s las n+m-1 variables constituyen una solucin inicial.
El teorema anterior se desprende del hecho de que en un conjunto de m+n-1 celdas no contienen un loop s y slo s las m+n-1 columnas correspondientes a las celdas son linealmente independientes.
25/05/2011
3
Modelos de Transportes y Asignacin
27
28
Se comienza por la esquina superior izquierda (noroeste) del tableau intentando asignar la mxima cantidad posible a x11. Evidentemente, el valor mximo de x11 debe ser el menor entre s1 y d1. Si x11 = s1, se puede descartar la primera fila, ya no podra asignarse ms desde el primer punto de oferta, se avanza a la siguiente fila. Al mismo tiempo, se debe cambiar d1 por d1 s1, para indicar la cantidad de demanda no satisfecha en el primer punto de demanda. En caso que x11 = d1, se debe descartar la primera columna y cambiar s1 por s1 d1, avanzando una columna. Si x11 = d1 = s1, se debe avanzar en una columna o en una fila (pero no en ambas). Se asigna un cero en la direccin escogida y se descarta la otra alternativa. El mtodo contina aplicando el mismo criterio desde la esquina noroeste del tableau restante. Una vez que estn asignadas toda de demanda y oferta disponible, se terminan las asignaciones y est completa la asignacin inicial.
25/05/2011
29
Comenzamos asignando la mxima cantidad posible por fila o por columna en la esquina noroeste. En este caso, controla la primera columna, luego:
Luego, la celda ms noroeste disponible es la 3-3. En esta celda, controla la demanda de 2 sobre la oferta de 3, luego:
A continuacin, avanzamos una columna y en esta celda controla la fila, por lo tanto queda:
En el tableau final se puede verificar las m+n-1 asignaciones. Adems se observa que la secuencia de celdas no conforman ningn loop, por lo tanto, de acuerdo al teorema corresponde a una asignacin inicial factible.
25/05/2011
30
1. Construya una tabla de disponibilidades, requerimientos y costos 2. Empiece en la casilla que tenga el menor costo de toda la tabla, si hay 3. 4.
empate, escoja arbitrariamente (Cualquiera de los empatados). Asigne lo mximo posible entre la disponibilidad y el requerimiento (El menor de los dos). Rellene con ceros (0) la fila o columna satisfecha y actualice la disponibilidad y el requerimiento, restndoles lo asignado.
Nota: Recuerde que no debe eliminar satisfacer fila y columna al mismo tiempo, caso en que la oferta sea igual a la demanda, en tal caso recuerde usar la (Epsilon).
tener en cuenta la fila o columna satisfecha). Regrese a los puntos 3,4,5 sucesivamente, hasta que todas las casillas queden asignadas.
25/05/2011
31
2 6 5 6
5 10 15
3 8 1 8 X 4 3 8 1 8 X 4
5 3 4 6 5 3 4 6
6 5 6
2 2 3 12 2 8 3 8 1 8 X
3 1 8 4 5 3 4 4
5 3 4 6 6 5 6 6
5 2 15
2 3 12 5 2 2 2 3 5
5 X 15
6 5 6
X X 15
2 3 10
25/05/2011
32
5 2 5 X
2 2 3 X 8
3 1 8 4
5 3 4 6 5 2 5 X 2 2 3
6 5 6
X X 10
5 2 5 X
2 2 3 X 6 5 6 X 6
X X X
3 8 1 8 4 X
5 3 4 6
6 5 6
X X 6
3 8 1 8 X 4 X
5 3 4
25/05/2011
33
Mtodo de Vogel
El mtodo comienza calculando por cada columna y por cada fila el castigo o penalty. El castigo se calcula como la diferencia entre los dos costos menores en la columna o en la fila segn corresponda. A continuacin, se determina la fila o columna con un mayor valor de castigo. Luego, se selecciona como variable basal la celda con menor costo de la fila o columna, segn corresponda, y se le asigna la mxima cantidad posible. Una vez realizada la asignacin, se descarta la fila o columna cuya oferta o demanda haya sido completa. Se recalcula la demanda u oferta disponible en la fila o columna. La primera asignacin se ha completado. Se vuelven a calcular los castigos por fila y por columna y se repite el procedimiento descrito hasta completar las asignaciones posibles en el tableau.
25/05/2011
34
Mtodo de Vogel
Noroeste es que va adelante algunas iteraciones y por lo tanto se obtiene una solucin inicial mejor. Eventualmente puede ocurrir que aplicando el mtodo se llegue directamente a la solucin ptima. La desventaja del mtodo de Vogel radica en que sin duda es ms complejo que el de la esquina noroeste, por lo tanto es ms difcil de implementar y ms proclive a errores en la aplicacin.
25/05/2011
35
d4
Oferta
Para ilustrar la aplicacin del mtodo veamos un ejemplo. Consideremos el siguiente tableau de transporte:
s1 s3 Demanda
6 15 15 5
7 80 5
8 78
10 15
d1 s1 s3 D cas
d2
d4
cas
6 15 15 9 5 73
7 80 5 70
8 78
10 15
1 63
De acuerdo al mtodo, en primer lugar se calculan los castigos por fila y por columna:
25/05/2011
36
El mayor castigo entre filas y columnas se encuentra en la segunda columna. De ambas celdas, la de mnimo costo es la de costo unitario de 7, buscando la mxima asignacin por fila y por columna controla la columna con una asignacin mxima de 5 unidades.
d1 s1 s3 D cas
d2
d4
cas
6 15 15 9
5 X 0 -
7 80 5 70
8 78
5 15
1 63
d1 s1 s3 D cas
d2
d4
cas
6 15 15 9
5 X 0 -
7 80
5 X 0 -
8 78
0 15
De los castigos recalculados, el mayor corresponde a la tercera columna. En este caso la celda de menor costo es la de la primera fila. Verificando la asignacin mxima por fila y por columna, controla la fila con una asignacin mxima de 5 unidades.
25/05/2011
37
Universidad Continental de Ciencias e Ingeniera Luego, el nico castigo disponible (y por lo tanto el mayor) corresponde a la primera columna. El mnimo costo corresponde a la primera fila. La mxima cantidad posible a asignar por columna es 15, pero por fila es 0. Por lo tanto, debemos asignar 0 unidades a la celda de menor costo. Finalmente, no es posible calcular castigos y debemos asignar las unidades disponibles a la nica celda libre. Luego:
d1 s1 s3 D cas d2 d4 S cas d1 s1 s3 D cas d2
d4
cas
6 15 15 -
5 X 0 -
7 80
5 X 5 -
8 78
0 15
0 15 15 -
6 15
5 X 0 -
7 80
5 X 5 -
8 78
0 15
El nmero de asignaciones es exactamente igual a m + n - 1 = 2 + 3 - 1 = 5. Eventualmente, el mtodo puede generar un nmero inferior de asignaciones. En dicho caso se completa las m + n - 1 asignaciones con ceros. En el caso de que falte slo una asignacin, se puede ubicar un cero en cualquier casilla no asignada. En el caso que se requiera de dos o ms ceros, la asignacin no es tan arbitraria. Ms adelante se definir qu criterio emplear en dichos casos.
25/05/2011
38
Paso 1: Si el problema no est balanceado, balancearlo. Construir el tableau de transporte. Paso 2: Encontrar una solucin inicial factible por el mtodo de la Esquina Noroeste o el de Vogel. Verificar las m + n - 1 asignaciones y completarlas si es necesario.
25/05/2011
39
con (i = 1 m). Definir para cada columna del tableau la variable vj con (j = 1 n). Plantear para cada casilla asignada la ecuacin ui + vj = cij. Donde cij es el costo unitario asociado a la casilla i - j. Asignar un valor arbitrario a una de las variables, por ejemplo u1 = 0.
25/05/2011
40
El Mtodo Simplex del Problema de Transporte Paso 4: Calcular en todas las casillas no asignadas (no bsicas) eij = cij - ui - vj. Si todos los eij 0; se ha encontrado el ptimo. Si existe algn eij < 0, incorporar la variable con menor eij siempre y cuando pueda formar un loop, en dicho caso, asignar el mayor valor posible de modo de mantener las variables basales mayores o iguales a cero. Paso 5: Si la solucin no es la ptima, emplear la solucin del paso anterior para volver a plantear y resolver el sistema (Paso 3). Seguir al Paso 4.
25/05/2011
41
incorporacin de la variable i - j a la base. Por lo tanto, si el problema es de maximizacin, la solucin ser ptima si todos los eij < 0. En caso contrario, se ingresa a la base la variable con mayor eij que pueda formar un loop. En el caso de que al emplear uno de los mtodos para obtener una solucin inicial falten dos o ms asignaciones para completar las m + n - 1 asignaciones requeridas, los ceros deben ser ubicados de tal forma que sea suficiente dar slo un valor arbitrario a las variables del sistema asociado a la asignacin para poder resolverlo completamente.
25/05/2011
42
Ciudad 2
Ciudad 3
Ciudad 4
Oferta 35 50 40
35 10
8 9 14 45 20 20
6 12 9 20 10 30
10 13 16 30 30
9 7 5
25/05/2011
43
35 10
8 9 14 45 20 20
6 12 9 20 10 30
10 13 16 30 30
9 7 5
35 50 40
25/05/2011
44
cij = ui + vj
Luego, las ecuaciones se plantean en las casillas asignadas: Se obtiene de (1) v1 = 8; de (2) u2 = 1; de (3) y de (4) v2 = 11 y v3 = 12. Reemplazando en (5) se calcula u3 = 4. De (6) se obtiene v4 = 1.
u1 = u1 + v1 = u2 + v1 = u2 + v2 = u2 + v3 = u3 + v3 = u3 + v4 =
0 8 9 12 13 16 5
25/05/2011
45
eij = cij ui - vj
e12 = c12 u1 v2 = e13 = c13 u1 v3 = e14 = c14 u1 v4 = e24 = c24 u2 v4 = e31 = c31 u3 v1 = e32 = c32 u3 v2 =
Modelos de Transportes y Asignacin
6 0 11 10 0 12 901 711 14 4 8 9 4 11
= = = = = =
+ + +
5 2 8 5 2 6
25/05/2011
46
35 10
8 20- 9 14 45
6 10- 20+ 12 9 20
10 13 16 30 30
9 7 5
35 50 40
30
25/05/2011
47
16 30 5 40 30 30
48
10+ 35-
8 9
10-
10
9 35 7 50
12 30 13
14 10 9 45 20
16 30 5 40 30 30
25/05/2011
49
12 30 13
14 10 9 45 20
16 30 5 40 30 30
v1 = 8 v2 = 6 u2 = 1 v3 = 12 u3 = 3 v4 = 2
25/05/2011
50
20+ 25-
8 10 6 9 12
10 30- 13
9 35 7 50
14 10 9 45 20
16 30 5 40 30 30
25/05/2011
51
14 10 9 45 20
16 30 5 40 30 30
v2 = 6 v3 = 10 v1 = 6 u2 = 3 u3 = 3 v4 = 2
25/05/2011
52
8 10 6 25 10 45 9 12 5 13
9 35 7 50
14 10 9 45 20
16 30 5 40 30 30
25/05/2011
53
Z= 10 25 45 5 10 30
0 0 0 0 0 0
25/05/2011
54