Escolar Documentos
Profissional Documentos
Cultura Documentos
Mtodo de transporte
Como ya se vio en la unidad 3, los problemas de transporte son problemas de programacin lineal (pl), pero con una estructura muy particular de la matriz de los coeficientes de las restricciones, pues se trata de una matriz cuyos elementos valen cero o
uno. Aunque estos problemas se pueden resolver con el mtodo Simplex, su estructura
caracterstica permite simplificar el procedimiento de bsqueda de la solucin ptima.
ste se conoce como mtodo de transporte.
Los problemas de transporte intentan satisfacer la demanda de varios puntos a partir de distintos orgenes. El producto es homogneo, esto es, se trata de un solo producto, y el costo del transporte es distinto de cada origen a cada destino. En algn
problema en vez del costo del transporte puede importar el tiempo para entregarlo o la
distancia total por recorrer.
El mtodo de transporte es una simplificacin del mtodo Simplex, pero para poder
aplicarlo es necesario que la oferta y la demanda se igualen; si ambas cantidades no son
iguales, es necesario agregar un origen o un destino ficticio que absorba esta diferencia.
Para explicar el mtodo se resolver el problema presentado en la unidad 3, que se
repite a continuacin.
Ejemplo 6.1
La Zona Metropolitana del Valle de Mxico (zmvm) tiene problemas de abasto de agua
en varias de sus colonias, especialmente al este de la ciudad. En este momento las autoridades del Sistema de Aguas de la Ciudad de Mxico, junto con la Comisin de Agua
del Estado de Mxico deben decidir cmo abastecer tres zonas que estn padeciendo un
desabasto sistemtico: Nezahualcyotl, Iztapalapa y Los Reyes, con necesidades de 3.4,
5 y 2.2 m3/s. Las fuentes de abastecimiento que se estn considerando son 3 sistemas
de pozos profundos (uno de ellos del Estado de Mxico), que an tienen excedentes, y
agua proveniente del sistema Cutzamala. El primer sistema puede abastecer 2 m3/s, el
segundo, 2.5 m3/s, y el tercer sistema de pozos, 2.5 m3/s; de la presa de Valle de Bravo,
que forma parte del sistema Cutzamala, despus de realizar unas obras de mantenimien-
157
Programacin lineal
to, se podrn extraer de 1 a 10 m3/s, segn sea necesario. Los costos de abastecimiento,
operacin y conduccin por m3/s son stos:
Cuadro 6.1
P1
P2
P3
Cutzamala
Iztapalapa
6.0
4.5
3.0
12.5
Los Reyes
3.5
3.0
4.5
12.0
Nezahualcyotl
3.0
3.5
4.5
11.5
La demanda total es la suma de las demandas, en este caso es de 10.6 m3/s. Es necesario equilibrar la oferta con la demanda. Se nos dice que del sistema Cutzamala se
pueden traer de 1 a 10 m3/s y que los pozos pueden ofrecer solamente 7 m3/s, por lo
que se necesitarn traer 3.6 m3/s del sistema Cutzamala.
El mtodo de transporte se realiza sobre una tabla. Como todos los mtodos iterativos, este tiene un paso inicial en el que se obtiene alguna solucin posible; posteriormente se pregunta si esta solucin puede mejorarse, y si es as el mtodo obtiene una
solucin mejor. Este paso se repite hasta que no es posible mejorar la solucin, en ese
momento se lleg a la solucin ptima.
Es importante aqu como primer paso definir las variables; en este problema hay
doce variables, xij, donde x es la cantidad de m3/s a enviar de i a j, con i variando de 1
a 4 (i de 1 a 3 para cada pozo e i = 4 el sistema Cutzamala) y j cada uno de los destinos
(j = 1 Izt, j = 2 LR y j = 3 Neza).
Paso inicial
En esta etapa se quiere encontrar una solucin factible, esto es, que cumpla con todas
las restricciones. Para realizar este paso se construye el cuadro auxiliar que en la literatura se llama tabla Simplex de transporte (cuadro 6.2).
En el cuadro 6.2 se muestra la tabla de transporte donde se han colocado en cada
columna uno de los puntos de oferta u origen, y en cada rengln uno de los puntos de
demanda. En cada celda se coloca el costo de enviar una unidad del origen al destino
correspondiente en un recuadro o un crculo.
Para el paso inicial se comienza a tratar de satisfacer las demandas ordenadamente.
En este caso como la demanda de Iztapalapa es de 5 m3/s, se toma del primer origen su
disponibilidad: 2 m3/s, pero como no alcanza, se toma del segundo los 2.5 m3/s y como
tampoco alcanza se completa con el tercero; a continuacin se enva al segundo punto
de demanda y as sucesivamente hasta terminar. La asignacin inicial queda como se
muestra en el cuadro 6.2.
158
Mtodo de transporte
Pozo 1
Pozo 2
4.5
2
Los Reyes
Pozo 3
3
2.5
3.5
Cutzamala
12.5
5
0.5
4.5
12
2
Nezahualcyotl
Disponible
3.5
2
4.5
2.5
Demanda
0.2
2.2
3.4
3.4
11.5
2.5
3.6
Existen varios mtodos para encontrar la solucin inicial; el presentado aqu se conoce como el mtodo de la esquina noreste o de la esquina superior izquierda.
La solucin inicial obtenida fue esta (los ndices son de origen a destino):
x11 = 2 m3/s
x21 = 2.5 m3/s
x31 = 0.5 m3/s
x32 = 2 m3/s
x42 = 0.2 m3/s
x43 = 3.4 m3/s
con un costo de $75.25.
Es importante observar los siguientes puntos:
1) No se tomaron en cuenta los costos para asignar las ofertas a las demandas.
2) La suma de lo asignado en cada fila es idntica a la demanda.
3) La suma de lo asignado en cada columna es idntica a la oferta.
4) Aunque desde el sistema Cutzamala se podan enviar 10 m3/s, solamente se consideraron los 3.6 m3/s que se necesitaban para igualar la oferta a la demanda. Esto es
un requisito del mtodo de transporte. Cuando esto no ocurre es necesario crear un
origen o un destino ficticio para balancear estas dos cantidades.
Paso iterativo
En esta etapa se trata de mejorar la solucin inicial para llegar a una asignacin ms
conveniente que la de la etapa anterior.
159
Programacin lineal
1) Primero se debe aplicar un criterio de mejorabilidad; para esto deben analizarse todas
las celdas que en este momento no aparecen en la solucin y ver si existe alguna que
permita una disminucin en el costo del transporte. De stas se escoge la que disminuye ms el valor por unidad que se le asigne y que mantenga en equilibrio tanto
a la oferta como a la demanda.
2) Se modifica la solucin transfiriendo la mayor cantidad posible de alguna de las celdas que aparecan en la solucin previa (xij > 0) hasta que x*ij = 0; esta ser la variable
saliente, que transferir esa cantidad a la nueva variable que se llamar entrante.
3) Se calcula el nuevo costo.
4) Se regresa al paso 1 hasta que no existan ms celdas que permitan disminuir el valor
de la fo.
El cuadro 6.2 tiene 12 celdas, 6 de ellas con valores mayores a 0 y otras 6 celdas
estn vacas: la (1, 2) del pozo 1 a Los Reyes, la (1, 3) del pozo 1 a Nezahualcyotl, la
(2, 2) del pozo 2 a Los Reyes, la (2, 3) del pozo 2 a Nezahualcyotl, la (3, 3) del pozo
3 a Nezahualcyotl y la (4, 1) de Cutzamala a Iztapalapa. Es necesario analizar que pasara si se enviara 1 m3/s de agua de cada uno de estos orgenes al destino indicado. En
el cuadro 6.3 se muestra el anlisis para la celda (1, 2): si se enviara 1 m3/s desde el pozo
1 a Los Reyes, debera enviarse 1 m3/s menos a Iztapalapa, ya que el pozo tiene una
disponibilidad de slo 2 m3/s; pero si se enva uno menos, no se completara la demanda de Iztapalapa, lo que requirira enviar el faltante desde el pozo 3, que a su vez deber mandar uno menos a Los Reyes.
Cuadro 6.3. Ciclo de la celda (1, 2) del pozo 1 a Los Reyes
Origen
Destino
Iztapalapa
Pozo 1
6
Pozo 2
4.5
Los Reyes
3.5
Pozo 3
3
0.5
4.5
12
Nezahualcyotl
Disponible
3.5
2
4.5
2.5
Demanda
12.5
2.5
3
Cutzamala
0.2
2.2
3.4
3.4
11.5
2.5
3.6
Los signos de ms y de menos en las celdas indican en cul se debe agregar y en cul
se debe quitar. Se forma un ciclo de tal modo que en una misma fila hay una celda en
la que se agrega una unidad y otra en la que se quita para mantener el equilibrio. El
160
Mtodo de transporte
ciclo slo puede tener una celda vaca que es la que se est evaluando, el resto deben ser
distintas de cero.
El costo de enviar 1 m3/s del pozo 1 a Los Reyes es de $3.5, pero se dejarn de pagar
$6 por el que no se enve a Iztapalapa, se pagarn otros $3 por envirselo desde el pozo
3 y se dejarn de pagar otros $4.5:
c12 = 3.5 6 + 3 4.5 = -4
O sea, se ahorraran 4 pesos por m3/s transferido.
De la misma manera se deben analizar todas las celdas actualmente vacas. Los ciclos pueden no ser tan sencillos como el anterior. En el cuadro 6.4 se muestra el anlisis de la celda (1, 3): si se enviara 1 m3/s del pozo 1 a Nezahualcyotl, entonces se
tendra que enviar uno menos a Iztapalapa. Pero ahora las demandas no se cumplen ya
que se le enviaran solamente 4 m3/s a Iztapalapa y 4.4 m3/s a Nezahualcyotl. Se deben ajustar entonces las demandas para lo cual se debe agregar 1 m3/s del pozo 3 para
Iztapalapa, con lo que se desbalacea el pozo 3. Para balancear tanto las columnas como
las filas es necesario realizar un ciclo cerrado como el que se muestra. Como se trata de
transferir una unidad, en este caso 1 m3/s, se coloca el signo de ms cuando se debe
enviar una unidad ms, y un signo de menos donde se debe disminuir en una unidad
lo que se enviaba. Para balacear es necesario pasar por celdas que actualmente sean distintas de cero. El costo del ciclo en este caso ser:
c13= 3 6 + 3 4.5 + 12 11.5 = -4
Si se realizara este cambio, entonces se ahorraran $4 / m3/s.
Cuadro 6.4. Ciclo de la celda (1, 3) del pozo 1 a Nezahualcyotl
Origen
Destino
Iztapalapa
Pozo 1
6
Pozo 2
2
Los Reyes
Pozo 3
4.5
3.5
3
2.5
Cutzamala
0.5
4.5
12
Nezahualcyotl
Disponible
3.5
+
2
4.5
2.5
161
Demanda
12.5
+
0.2
2.2
3.4
3.4
11.5
2.5
3.6
Programacin lineal
Para las dems celdas, los ciclos y los costos de cada una son estos:
(1, 2) -> (1, 1) -> (3, 1) -> (3, 2) -> (1, 2)
(1, 3) -> (1, 1) -> (3, 1) -> (3, 2) -> (4, 2) -> (4, 3) ->(1, 3)
(2, 2) -> (2, 1) -> (3, 1) -> (3, 2) -> (2, 2)
(2, 3) -> (2, 1) -> (3, 1) -> (3, 2) -> (4, 2) -> (4, 3) ->(2, 3)
(3, 3) -> (3, 2) -> (4, 2) -> (4, 3) -> (3, 3)
(4, 1) -> (4, 2) -> (3, 2) -> (3, 1) -> (4, 1)
c12 = -4
c13 = -4
c22 = -3
c23 = -3
c33 = 0.5
c41 = +2
Como las celda (1, 3) y (1, 2) son las que permiten disminuir ms el costo por unidad (m3/s), se debe escoger una de ellas pues se encuentran empatadas. En estos casos
se puede escoger arbitrariamente, aunque se podra analizar cul de los circuitos permite mover el mayor nmero de unidades y as disminuir ms la fo. En el ejemplo se
eligi la celda (1, 3) para mejorar el resultado. El siguiente paso es determinar cuantos
m3/s se pueden transferir segn el ciclo considerado. Debido a que el pozo 1 enva 2 m3/s
a Iztapalapa, no se podrn dejar de enviar ms que esos 2 m3/s. Es importante observar
que a la celda (3, 2) y a la (4, 3) tambin se le disminuirn esos 2 m3/s. La nueva solucin entonces ser la que se muestra en el cuadro 6.5.
Cuadro 6.5. Resultado de la primera iteracin
Origen
Destino
Pozo 1
Iztapalapa
Los Reyes
3.5
Pozo 2
Pozo 3
4.5
3
2.5
Cutzamala
13
2.5
4.5
12
Nezahualcyotl
3.5
+
2.2
4.5
11.5
2
Disponible
2.5
2.5
2.2
1.4
Demanda
3.4
3.6
Mtodo de transporte
Para saber si ya se ha llegado al menor costo posible, es necesario repetir el procedimiento anterior, para esta nueva tabla de transporte, hasta que no exista ningn casillero con un costo unitario negativo. La ltima tabla, cuadro 6.5, tiene 7 casilleros en
cero, porque dos de ellos el (1, 1) y el (3, 2) se hicieron cero en la ltima iteracin, por
lo que ser necesario calcular los costos unitarios de las cinco celdas restantes. Las celdas
a analizar son: (1, 2), (2, 2), (2, 3), (3, 3) y (4, 1). La celda (1, 2) corresponde a enviar
1 m3/s del pozo 1 a LR, y el ciclo correspondientes es (1, 2) -> (4, 2) -> (4, 3) -> (1, 3)
-> (1, 2), con un costo asociado igual a cero.
Para las otras cuatro celdas, cuando se intenta construir un circuito en el que todos
los vrtices excepto la celda analizada estn ocupados, no encontramos un camino posible. Esto se debe a que el problema entr en un caso conocido como degenerado; para
poder aplicar el mtodo es necesario que existan al menos n + m - 1 celdas con valores
0, donde n y m son nmeros de orgen y de destino (filas y columnas en el cuadro)
del problema. Como en la iteracin anterior dos celdas se volvieron cero, mientras que
solamente una que vala cero pas a tener un valor mayor que cero, ya no se cumple
con la condicin anterior y el problema se degenera.
Para resolver esta situacin se le asigna un valor muy pequeo, , a alguna de las
celdas vacas actualmente. Puede ser en cualquiera de las celdas, sin embargo, en algunas no sirve. Por ejemplo, si lo colocamos en la celda (3, 2) y tratamos de ver el costo
unitario de la celda (2, 2), el ciclo que se forma es +(2, 2), -(2, 1), +(3, 1), -(3, 2). Este
ciclo tiene un costo negativo -3, pero como todo lo que puedo quitar es , que es un
valor muy pequeo, no permite mejorar la solucin. En cambio, si colocamos en la
celda (4, 1), se puede observar para el ciclo correspondiente a la celda (2, 2) que ahora
es +(2, 2), -(2, 1), +(4, 1), -(4, 2), y en este caso a la celda que contiene le corresponde un signo +, por lo que habr que sumarle cierta cantidad (cuadro 6.6).
Cuadro 6.6. Ciclo correspondiente a (2, 2)
Origen
Destino
Iztapalapa
Pozo 1
Pozo 2
4.5
Pozo 3
2.5
Los Reyes
Nezahualcyotl
3.5
Cutzamala
12.5
2.5
4.5
3.5
4.5
2.5
163
2.2
2.2
1.4
3.4
11.5
2
Disponible
12
Demanda
2.5
3.6
Programacin lineal
c12= 0
c22= -1
c23= 0
c31= 2.5
Hay que sealar dos cosas: por un lado, una vez que se decide en qu celda se coloca , deben evaluarse todas las dems celdas con esa nueva tabla sin modificar la posicin de ; por otro lado, la celda (4, 1) no puede evaluarse ya que contiene el valor
ficticio.
Como la nica celda con un costo negativo es la (2, 2), habr que enviar toda el
agua que se pueda desde el pozo 2 a Los Reyes, disminuyendo la cantidad que se enva
a Iztapalapa, que se sustituye con agua proveniente del sistema Cutzamala que se dejar de enviar a Los Reyes. Esta cantidad es de 2.2 m3/s, con lo cual la asignacin queda
como se muestra en la tabla (cuadro 6.7), despus de equilibrar oferta y demanda.
x21 = 0.3 m3/s
x22 = 2.2 m3/s
x41 = 2.2 m3/s
x31 = 2.5 m3/s
x43 = 1.4 m3/s
Cuadro 6.7. Resultado de la segunda iteracin
Origen
Destino
Pozo 1
Pozo 2
Pozo 3
4.5
Iztapalapa
3
0.3
3.5
3.5
Los Reyes
Cutzamala
12.5
2.5
2.2
4.5
12
4.5
11.5
Disponible
1.4
2.5
5
2.2
2.2
Nezahualcyotl
Demanda
2.5
3.4
3.6
El costo de esta solucin es 6 + 1.35 + 6.6 + 7.5 + 27.5 + 16.1 = $65.05, lo que
resulta $2.20 menos.
Se deben evaluar las celdas an vacas y ver si alguna de ellas tiene un costo unitario
negativo. Se observa que:
164
Mtodo de transporte
(1, 2) -> (1, 3) -> (4, 3) -> (4, 1) -> (2, 1) -> (2, 2) ->(1, 2) c12= +1
(2, 3) -> (2, 1) -> (4, 1) -> (4, 3) -> (2, 3) c23= 0
(3, 3) -> (3, 1) -> (4, 1) -> (4, 3) -> (3, 3) c33= +2.5
En este problema ya no hay posibilidad de mejorar la solucin; por lo tanto, para
enviar el agua a costo mnimo se debe enviar lo siguiente:
Pozo 1: 2.0 m3/s a Nezahualcyotl
Pozo 2: 0.3 m3/s a Iztapalapa y 2.2 m3/s a Los Reyes
Pozo 3: 2.5 m3/s a Iztapalapa
Sistema Cutzamala: 2.2 m3/s a Iztapalapa y 1.4 m3/s a Nezahualcyotl
con un costo de $65.05 por segundo.
Oferta
20
30
10
100
30
40
25
300
35
15
20
100
Demanda
150
125
200
Programacin lineal
embargo, el mtodo requiere que la oferta y la demanda sean iguales, por lo que se
agregar una demanda ficticia de 25 unidades cuyo costo de transporte sea nulo. El
cuadro inicial del mtodo de transporte se muestra a continuacin.
Cuadro 6.9
Oferta
20
1
Ficticia
30
10
40
25
100
100
30
50
35
125
15
20
3
Disponible
150
125
300
125
0
75
25
200
25
100
Al agregar la columna de una demanda ficticia, se cumple con la condicin de equilibrio entre la oferta y la demanda. En el cuadro 6.9 se tiene la solucin inicial:
Origen 1:
Origen 2:
Origen 3:
Modelo de asignacin
Como caso especial del modelo de transporte estn los modelos de asignacin. Estos
modelos son los apropiados para representar problemas en los cuales se trata de asignar,
por ejemplo, maestros a grupos de alumnos o vendedores a zonas de la ciudad, etctera.
Se trata de asignar n personas a n puestos de trabajo, con la condicin de que a cada
persona se le asignar una y slo una tarea, y que sern cubiertas cada una de las plazas
con una persona. Adems a cada persona se le pagar dependiendo de sus aptitudes y
del trabajo que desempear.
166
Mtodo de transporte
Es claro que en estos problemas las variables xij representan a la persona (i) y al puesto (j), esta variable toma el valor de uno si la persona es asignada al puesto, y el valor de
cero si no lo es. La resolucin de estos problemas puede hacerse con el mtodo de transporte explicado en la seccin anterior, aunque debido a su estructura especfica se puede utilizar algn mtodo especial para estos problemas, como el mtodo hngaro, que
no se presentara aqu ya que actualmente los programas de cmputo nos ayudan a resolver los distintos problemas sin necesidad de conocer algoritmos ms econmicos en
tiempo.
Lecturas complementarias
Budnick (2007), en especial el captulo 12. Hillier (2003), captulo 7.
Problemas de la unidad 6
Resuelve los problemas 3.18, 3.19, 3.20, 3.21 y 3.22 de la unidad 3.
167