Download - Desarrollo - Transporte
3
TRANSPORTE
El modelo de transporte es una clase especial de programación lineal que tiene
que ver con transportar un artículo desde sus fuentes (es decir, fábricas) hasta sus
destinos (es decir, bodegas). El objetico es determinar el programa de transporte que
minimice el costo total de transporte y que al mismo tiempo satisfaga los límites de la
oferta y la demanda. En el modelo se supone que el costo del transporte es
proporcional a la cantidad de unidades transportada en determinada ruta. En general,
se puede ampliar el modelo de transporte a otras aéreas de operación, entre otras, el
control de inventarios, programación de empleos y asignación de personal.
Aunque el modelo de transporte se puede resolver como una programación
lineal normal, su estructura especial permite desarrollar un algoritmo de cómputo,
basado en el simplex, que usa relación primal-dual para simplificar los cálculos.
FORMULACIÓN DEL MODELO DE TRANSPORTE
El problema general se presenta en la red de la página siguiente. Hay m
fuentes y n destinos, cada fuente y cada destino representados por un nodo. Los arcos
representan las rutas que enlazan las fuentes y los destinos. El arco (i, j) que une a la
fuente i con el destino j, conduce dos clases de información: el costo de transporte cij
por unidad, y la cantidad transportada xij. La cantidad de oferta en la fuente i es ai, y
la cantidad de demanda en el destino j es bj. El objetivo del modelo es determinar las
incógnitas xij que minimicen el costo total de transporte y que al mismo tiempo
satisfagan las restricciones de oferta y demanda.
Ejemplo 1: MG Auto, tiene tres plantas: en los Ángeles, Detroit y New
Orleans; y dos centros principales de distribución de Denver y Miami. Las
capacidades de las tres plantas durante el próximo trimestre serán 1000, 1500 y 2000
4
autos. Las demandas trimestrales en los centros de distribución son 2300 y 1400
autos.
El kilometraje entre las fábricas y los centros de distribución se ve en la siguiente
tabla:
La empresa transportista cobra 8 centavos por milla y por auto. El costo del transporte
por auto, en las distintas rutas y redondeando hasta el $ más próximo, se calcula
como se ve en la siguiente tabla:
5
El modelo de programación lineal para el problema es el siguiente:
Minimizar z = 80x11 + 215x12 + 100x21 + 108x22x + 102x31 + 68x32
Sujeto a:
Todas estas restricciones son ecuaciones, porque el abasto total de las tres fuentes
(=1000 + 1500 + 1200 = 3700 autos) es igual a la demanda tota en los dos destinos
(=2300 + 1400 = 3700 autos).
Solución Óptima del modelo de MG Auto
La figura de arriba es la solución optima del modelo de MG Autos, indican
que manden 100 autos de Los Ángeles a Denver, 1300 de Detroit a Denver, 200
Detroit a Miami y 1200 de New Orleans a Miami. El costo mínimo de transporte
asociado es: 1000 x $80 + 1300 x $100 + 200 x $108 + 1200 x $68 = $313.200
6
El algoritmo de transporte se basa en que el modelo está balanceado y eso
quiere decir que la demanda total es igual a la oferta total. Si el modelo está
desbalanceado siempre se podrá aumentar con una fuente ficticia o un destino ficticio
para restaurar el equilibrio o balance.
MATRIZ DE INCIDENCIA
La matriz de incidencia es una matriz binaria (sus elementos sólo pueden ser
unos o ceros), que se utiliza como una forma de representar relaciones binarias.
Construcción de la matriz a partir de un grafo:
1. Las columnas de la matriz representan las aristas del grafo.
2. Las filas representan a los distintos nodos.
3. Por cada nodo unido por una arista, ponemos un uno (1) en el lugar
correspondiente, y llenamos el resto de las ubicaciones con ceros (0).
NODOS ARCO
Almacenamiento de la conectividad nodo-arco.
El objetivo es conseguir una estructura que almacene la siguiente información:
{Id de nodo,{Id de arcos que conectan con el nodo}} [1]
7
Además, los identificadores de los arcos que conectan con los nodos se escriben sin
signo si el arco parte del nodo y con signo negativo si el arco llega al nodo.
En el siguiente proceso, se toma la lista de identificadores de arcos y se ordena en
orden ascendente según su acimut, tomando como centro el nodo en cuestión. De esta
manera volvemos a tener la misma estructura pero de la manera siguiente:
{Id de nodo, {Id de arcos conectados ordenados por acimut ascendente}} [2]
Esta es la estructura de base que se va a utilizar para el cálculo de cada uno de los
polígonos
Ejemplo
Para aclarar dudas al respecto de la metodología empleada y facilitar el seguimiento
de la misma, se expone a continuación un ejemplo práctico.
En este ejemplo se parte de la red de arcos conectados procedente del proceso de
intersección y eliminación de arcos con nodos libres. Cada elemento (nodos, arcos y
polígonos) está numerado mediante un identificador. A continuación aparece la lista
inicial (L) de arcos para comenzar el cálculo.
8
Ejemplo de formación de polígonos y almacenamiento de la información
topológica básica.
En la imagen también podemos ver la estructura [2] de los arcos ordenados sobre
cada nodo con su signo correspondiente, así como el proceso de generación de la
estructura [3], donde se identifica cada polígono con los arcos que lo forman (PU
equivale a polígono universal). En este proceso podemos ver cómo el algoritmo, a
medida que va generando los polígonos, va marcando los arcos utilizados,
deteniéndose cuando todos ellos han sido utilizados 2 veces.
Finalmente, puede verse cómo, a partir de las estructuras [2] y [3], se puede rellenar
una tabla con las relaciones topológicas básicas entre arcos, nodos y polígonos.
TECNICAS DE RESOLUCION
Podemos obtener una solución básica factible (sbf) para un problema de
transporte balanceado mediante el Método de La Esquina Noroeste, el Método de
Costo mínimo, el Método de Vogel que son los más comunes. Existen otros como el
Método Algebraico, Método Heurístico o el Método de Modi a los cuales solo se les
hará mención.
Para llegar a una solución de problemas de transporte es necesario cumplir
con una serie de pasos, es decir, cumplir con un algoritmo para solucionar el
problema de transporte.
MÉTODO DE LA ESQUINA NOROESTE
Para encontrar una solución inicial se comienza por la esquina superior izquierda
(noroeste) del tableau de transporte intentando asignar la máxima cantidad posible a
X11. Evidentemente, el valor máximo de X11 debe ser el menor entre s1 y d1. Si
X11=s1, se puede descartar la primera fila pues ya no podrá asignarse más desde el
primer punto de oferta, se avanza a la siguiente fila. Al mismo tiempo, se debe
9
cambiar d1 por d1 - s1, de forma de 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 dirección
escogida y se descarta la otra alternativa. El método continúa aplicando el mismo
criterio desde la esquina noroeste del tableau restante. Una vez que están asignadas
toda de demanda y oferta disponible, se terminan las asignaciones y está completa la
asignación inicial.
Características:
- Sencillo y fácil de hacer
- No tiene en cuenta los costos para hacer las asignaciones
- Generalmente nos deja lejos del óptimo
Algoritmo:
1) Construya una tabla de ofertas (disponibilidades) y demandas
(requerimientos).
2) Empiece por la esquina noroeste.
3) Asigne lo máximo posible (Lo menor entre la oferta y la demanda,
respectivamente)
4) Actualice la oferta y la demanda y rellene con ceros el resto de casillas (Filas
ó Columnas) en donde la oferta ó la demanda haya quedado satisfecha.
5) Muévase a la derecha o hacia abajo, según haya quedado disponibilidad para
asignar.
6) Repita los pasos del 3 al 5 sucesivamente hasta llegar a la esquina inferior
derecha en la que se elimina fila y columna al mismo tiempo.
10
Nota: No elimine fila y columna al mismo tiempo, a no ser que sea la última casilla.
El romper ésta regla ocasionará una solución en donde el número de variables básicas
es menor a m+n-1, produciendo una solución básica factible degenerada.
MÉTODO DEL COSTO MINIMO
Características:
- Es más elaborado que el método de la esquina noroeste
- Tiene en cuenta los costos para hacer las asignaciones
- Generalmente nos deja alejados del óptimo
Algoritmo:
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 empate,
escoja arbitrariamente (Cualquiera de los empatados).
3) Asigne lo máximo posible entre la disponibilidad y el requerimiento (El
menor de los dos).
4) Rellene con ceros (0) la fila o columna satisfecha y actualice la disponibilidad
y el requerimiento, restándoles 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).
5) Muévase a la casilla con el costo mínimo de la tabla resultante (Sin tener en
cuenta la fila o columna satisfecha).
6) Regrese a los puntos 3,4,5 sucesivamente, hasta que todas las casillas queden
asignadas.
11
MÉTODO DE VOGEL
El método comienza calculando por cada columna y por cada fila el castigo o
penalti. El castigo se calcula como la diferencia entre los dos costos menores en la
columna o en la fila según corresponda. A continuación, 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, según corresponda, y se le asigna la
máxima cantidad posible. Una vez realizada la asignación, 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 asignación se ha completado.
Se vuelven a calcular los castigos por ¯la y por columna y se repite el
procedimiento descrito hasta completar las asignaciones posibles en el tablero.
La ventaja del método de Vogel por sobre el de la Esquina Noroeste es que va
adelante algunas iteraciones y por lo tanto se obtiene una solución inicial mejor.
Eventualmente puede ocurrir que aplicando el método se llegue directamente a la
solución óptima. La desventaja del método de Vogel radica en que sin duda es más
complejo que el de la esquina noroeste, por lo tanto es más difícil de implementar y
más proclive a errores en la aplicación.
Características
- Es más elaborado que los anteriores, más técnico y dispendioso.
- Tiene en cuenta los costos, las ofertas y las demandas para hacer las asignaciones.
- Generalmente nos deja cerca al óptimo.
Algoritmo
1) Construir una tabla de disponibilidades (ofertas), requerimientos (demanda) y
costos.
12
2) Calcular la diferencia entre el costo más pequeño y el segundo costo más
pequeño, para cada fila y para cada columna.
3) Escoger entre las filas y columnas, la que tenga la mayor diferencia (en caso
de empate, decida arbitrariamente).
4) Asigne lo máximo posible en la casilla con menor costo en la fila o columna
escogida en el punto 3.
5) Asigne cero (0) a las otras casillas de la fila o columna donde la disponibilidad
ó el requerimiento quede satisfecho.
6) Repita los pasos del 2 al 5, sin tener en cuenta la(s) fila(s) y/o columna(s)
satisfechas, hasta que todas las casillas queden asignadas.
Nota: Recuerde que no debe satisfacer filas y columnas al mismo tiempo; caso en que
la disponibilidad sea igual al requerimiento; en tal caso use el ε (épsilon).
ALGORITMO HÚNGARO
En general, el método Simplex para problemas de transporte es poco eficiente
para resolver problemas de asignación, especialmente en problemas de gran tamaño.
Por ello, para resolver problemas de asignación (minimización) se emplea
normalmente el Método Húngaro. La principal ventaja es que el método húngaro es
considerablemente más simple que el método Simplex del problema de transporte.
Para aplicar el método se deben seguir los siguientes pasos:
- Paso 1, Determine el menor elemento en cada fila de la matriz de costos (m x m).
Construya una nueva matriz restando a cada costo el costo menor de esa fila. A
continuación determine el costo mínimo en cada columna de la matriz resultante.
Construya una nueva matriz (matriz de costos reducidos) restando a cada costo el
menor costo de esa columna.
13
- Paso 2, Trace el número mínimo de líneas (horizontales o verticales) que son
necesarias para cubrir todos los ceros de la matriz reducida. Si se requieren m líneas,
los ceros de la matriz reducida indican la asignación óptima. Si se requieren menos de
m líneas, siga al Paso 3.
- Paso 3, Determine el menor costo de la matriz reducida que no está tarjado por las
líneas del Paso 2. Sea dicho costo k. Luego, reste a todos los coeficientes no tarjados
el valor k y sume a todos los coeficientes tarjados por dos líneas el valor k. Vuelva al
Paso 1.
El método Húngaro resuelve un problema de minimización a partir de una
matriz de costos cuadrada. Sin embargo, haciendo algunas modificaciones puede ser
más versátil:
1. Para resolver un problema de asignación cuyo objetivo es maximizar la función
objetivo, multiplique la matriz de costos por -1 y resuelva el problema de
minimización.
2. Si el número de filas y columnas en la matriz de costos no son iguales, el problema
de asignación no está balanceado. Similarmente al problema de transporte, balancee
la matriz agregando filas o columnas artificiales según corresponda. Los costos de las
filas o columnas artificiales deben ser idénticos para todas las combinaciones de
forma de no generar preferencias.
3. Si se puede hacer una asignación más de una vez, repita la fila o columna según
corresponda cuantas veces sea necesario. Balancee el problema.
Ejemplo 2: Una fábrica dispone de cuatro obreros para completar cuatro trabajos.
Cada obrero sólo puede hacer uno de los trabajos. El tiempo que requiere cada obrero
para completar cada trabajo se entrega en el Cuadro:
14
La fábrica desea minimizar el tiempo total dedicado a los cuatro trabajos. Formule y
resuelva un modelo que determine la mejor asignación de los obreros. La formulación
del problema queda:
A continuación, se procede a resolver el problema mediante el Método Húngaro:
1) Se busca el mínimo por filas en la matriz de costos:
15
2) Luego se resta el valor determinado en cada fila y se busca el mínimo por
columna:
3) Se resta el menor costo por columna y se trazan el menor número de líneas
que cubran todos los ceros de la matriz de costos reducida:
4) Luego, de los coeficientes no tarjados el menor es 1. Restamos a todos los no
tarjados 1 y sumamos 1 a los tarjados dos veces. Volvemos a trazar el número
mínimo de líneas que cubran todos los ceros.
5) Como el número de líneas trazadas es igual a la dimensión de la matriz se ha
encontrado el óptimo. Para interpretar la asignación debemos buscar aquellas
filas y columnas que posean un único cero. Por ejemplo, la fila y columna 3
posee un único 0, luego X33 = 1. Por otro lado, la segunda columna posee un
único cero en la primera fila, luego X12 = 1.
16
6) Luego, el cero de la primera fila y cuarta columna puede ser descartado pues
ya existe una asignación obligatoria en la primera fila. De esta forma, el único
cero restante en la cuarta columna es el de la segunda fila, por lo tanto X24=1.
7) A continuación se puede descartar el cero de la segunda fila y la primera
columna pues ya existe una asignación obligatoria en esa fila. Finalmente, en
la primera columna y cuarta fila sólo queda un cero, luego X41 = 1.
El resultado verifica la solución obtenida mediante la tabla de transporte.
17
EJEMPLIFICACION DE LAS RUTAS MÁS CORTAS Y DE FLUJO
MAXIMO DE REDES
1) Problema de la Ruta más Corta:
En el problema de la ruta más corta se determina ésta, entre una fuente y un
destino, en una red de transporte. Hay otras soluciones que se pueden
determinar con el mismo modelo, como se ve en el ejemplo siguiente:
- Ejemplo 3 (Reemplazo de equipo): RentCar está desarrollando un plan de
reposición de su flotilla de automóviles para un horizonte de planeación de 4 años,
que comienza el 1ero de enero de 2001 y termina el 31 de diciembre de 2004. Al
iniciar cada año se toma la decisión de si un auto se debe mantener en operación o se
debe sustituir. Un automóvil debe estar en servicio 1 año como mínimo, y 3 años
como máximo. La tabla siguiente muestra el costo de reposición en función del año
de adquisición del vehículo y los años que tiene en funcionamiento.
Costo de reposición ($) para los años de operación
1 2 3
2001 4000 5400 9800
2002 4300 6200 8700
2003 4800 7100 ---
2004 4900 --- ---
18
El problema de reemplazo de equipo como problema de la ruta más corta
El problema se puede formular como una red, en el que los nodos 1 a 5
representan el inicio de los años 2001 a 2005. Los arcos del nodo 1 (año 2001) solo
pueden alcanzar los nodos 2, 3 y 4 porque un vehículo debe estar en funcionamiento
entre 1 y 3 años. Los arcos entre los otros nodos se pueden interpretar en forma
parecida. La longitud de cada arco es igual al costo de reposición. La solución del
problema equivale a determinar la ruta más corta entre los nodos 1 y 5.
En la figura de arriba se ve la red que resulta. La ruta más corta, se indica con la ruta
más gruesa, es 135. Eso quiere decir que un automóvil adquirido al iniciar el
2001 (nodo 1) se debe reemplazar pasados 2 años, al iniciar el 2003 (nodo 3), el auto
de reposición debe estar en servicio hasta el final del 2004. El costo total de esta
política de reposición es $12500 (= $5400 + $7100).
2) Flujo máximo de redes
En algunas redes circula por los arcos un flujo desde el origen o fuente al destino. Los
arcos tienen una capacidad máxima de flujo, y se trata de enviar desde la fuente al
destino la mayor cantidad posible de flujo, de tal manera que:
El flujo es siempre positivo y con unidades enteras.
El flujo a través de un arco es menor o igual que la capacidad.
El flujo que entra en un nodo es igual al que sale de él.
19
El algoritmo de Ford-Fulkerson propone buscar caminos en los que se pueda
aumentar el flujo, hasta que se alcance el flujo máximo.
La idea es encontrar una ruta de penetración con un flujo positivo neto que una los
nodos origen y destino.
Los pasos del algoritmo se definen como sigue:
Paso 1: Inicializamos las capacidades residuales a las capacidades
iniciales, hacemos (cij,cji)=(Cij,Cji) para todo arco de la red.
Suponiendo el nodo 1 como el nodo origen, hacemos a1=∞ y
clasificamos el nodo origen con [∞,-]. Tomamos i=1 y vamos al paso
2.
Paso 2: Determinamos Si como un conjunto que contendrá los nodos a
los que podemos acceder directamente desde i por medio de un arco
con capacidad positiva, y que no formen parte del camino en curso.
Si Si contiene algún nodo vamos al paso 3, en el caso de que el
conjunto sea vacío saltamos al paso 4.
Paso 3: Obtenemos kЄSi como el nodo destino del arco de mayor
capacidad que salga de i hacia un nodo perteneciente a Si. Es
decir, cik=max{cij} con jЄSi. Hacemos ak=cik y clasificamos el
nodo k con [ak,i]. Si k es igual al nodo destino, entonces hemos
encontrado una ruta de penetración, vamos al paso 5. En caso contrario
continuamos con el camino, hacemos i=k y volvemos al paso 2.
Paso 4 (retroceso): Si i=1, estamos en el nodo origen, y como Si es
vacío, entonces no podemos acceder a ningún nodo, ni encontrar algún
nuevo camino, hemos terminado, vamos al paso 6.
En caso contrario, i≠1, le damos al valor i el del nodo que se ha
clasificado inmediatamente antes, eliminamos i del conjunto Si actual
y volvemos al paso 2.
20
Paso 5: Llegados a este paso tenemos un nuevo
camino: Np={1,k1,k2,...,n}, esta será la p-ésima ruta de penetración
desde el nodo origen al nodo destino. El flujo máximo a lo largo de
esta ruta será la capacidad mínima de las capacidades residuales de los
arcos que forman el camino, es decir: fp=min{a1,ak1,ak2,...,an}.
La capacidad residual de cada arco a lo largo de la ruta de penetración
se disminuye por fp en dirección del flujo y se incrementa por fp en
dirección inversa, es decir, para los nodos i y j en la ruta, el flujo
residual se cambia de la (cij,cji) actual a (cij-fp,cji+fp) si el flujo es
de i a j, o (cij+fp,cji-fp) si el flujo es de j a i.
Inicializamos i=1 y volvemos al paso 2 para intentar una nueva ruta de
penetración.
Paso 6 (solución): Una vez aquí, hemos determinado m rutas de
penetración. El flujo máximo en la red será la suma de los flujos
máximos en cada ruta obtenida, es decir: F=f1+f2+...+fm. Teniendo
en cuenta que las capacidades residuales inicial y final del arco (i,
j) las dan (Cij,Cji) y (cij,cji)respectivamente, el flujo máximo para
cada arco se calcula como sigue: sea (α, β)=(Cij-cij, Cji-cji), si α>0, el
flujo óptimo de i a j es α, de lo contrario, si β>0, el flujo óptimo
de j a i es β. Es imposible lograr que tanto α como β sean positivas.
21
Determinar el flujo máximo en la red siguiente:
Primera iteración:
Determinamos las residuales iniciales (cij,cji) iguales a las capacidades
iniciales (Cij,Cji).
Paso 1: Hacemos ai=∞, y clasificamos el nodo 1 con [a1,-]. Tomamos i=1.
Paso 2: S1={2,3,4} (no vacío).
Paso 3: k=3 ya que c13=max{c12,c13,c14}={20,30,10}=30.
Hacemos a3=c13=30 y clasificamos el nodo 3 con [30,1]. Tomamos i=3 y
repetimos el paso 2.
Paso 2: S3={4,5}
22
Paso 3: k=5 y a5=c35=max{10,20}=20. Clasificamos el nodo 5 con [20,3].
Logramos la penetración, vamos al paso 5.
Paso 5: La ruta de la penetración se determina de las clasificaciones
empezando en el nodo 5 y terminando en el nodo 1, es
decir, 5→[20,3]→3→[30,1]→1. Entonces la ruta
es N1={1,3,5} y f1=min{a1,a3,a5}={∞,30,20}=20. Las capacidades residuales
a lo largo de esta ruta son:
(c13,c31) = (30-20, 0+20) = (10,20)
(c35,c53) = (20-20, 0+20) = (0,20)
Segunda iteración:
Paso 1: Hacemos ai=∞, y clasificamos el nodo 1 con [a1,-].
Tomamos i=1.
Paso 2: S1={2,3,4}.
Paso 3: k=2 y a2=c12=max{20,10,10}=20. Clasificamos el nodo 2
con [20,1]. Tomamos i=2 y repetimos el paso 2.
Paso 2: S2={3,5}
Paso 3: k=3 y a3=c23=max{30,40}=40. Clasificamos el nodo 3
con [40,2]. Tomamos i=3 y repetimos el paso 2.
23
Paso 2: S3={4} (c35=0, el nodo 1 ya ha sido clasificado y el nodo 2
cumple ambas condiciones, por tanto los nodos 1, 2 y 5 no pueden ser
incluidos en S3).
Paso 3: k=4 y a4=c34=10. Clasificamos el nodo 4 con [10,3].
Tomamos i=4 y repetimos el paso 2.
Paso 2: S4={5}
Paso 3: k=5 y a5=c45=20. Clasificamos el nodo 5 con [20,4].
Logramos la penetración, vamos al paso 5.
Paso 5: La ruta de la penetración
es: 5→[20,4]→4→[10,3]→3→[40,2]→2→[20,1]→1. Entonces la
ruta es N2={1,2,3,4,5} y f2=min{∞,20,40,10,20}=10. Las capacidades
residuales a lo largo de esta ruta son:
(c12,c21) = (20-10, 0+10) = (10,10)
(c23,c32) = (40-10, 0+10 ) = (30,10)
(c34,c43) = (10-10, 5+10) = (0,15)
(c45,c54) = (20-10, 0+10) = (10,10)
Tercera iteración:
24
Paso 1: Hacemos ai=∞, y clasificamos el nodo 1 con [a1,-]. Tomamos i=1.
Paso 2: S1={2,3,4}.
Paso 3: k=2 y a2=c12=max{10,10,10}=10, rompemos el empate
arbitrariamente. Clasificamos el nodo 2 con [10,1]. Tomamos i=2 y repetimos
el paso 2.
Paso 2: S2={3,5}
Paso 3: k=3 y a3=c23=max{30,30}=30. Clasificamos el nodo 3 con [30,2].
Tomamos i=3 y repetimos el paso 2.
Paso 2: S3 vacío ya que c34=c35=0. Vamos al paso 4 para retroceder.
Paso 4: La clasificación [30,2] nos dice que el nodo inmediatamente
precedente es el 2. Eliminamos el nodo 3 de una consideración posterior en
esta iteración. Tomamos i=2 y repetimos el paso 2.
Paso 2: S2={5}
Paso 3: k=5 y a5=c25=30. Clasificamos el nodo 5 con [30,2]. Logramos la
penetración, vamos al paso 5.
Paso 5: La ruta de la penetración es: 5→[30,2]→2→[10,1]→1. Entonces la
ruta es N2={1,2,5} y f3=min{∞,10,30}=10. Las capacidades residuales a lo
largo de esta ruta son:
(c12,c21) = (10-10, 10+10) = (0,20)
(c25,c52) = (30-10, 0+10) = (20,10)
25
Cuarta iteración:
Paso 1: Hacemos ai=∞, y clasificamos el nodo 1 con [a1,-]. Tomamos i=1.
Paso 2: S1={3,4}.
Paso 3: k=3 y a3=c13=max{10,10}=10. Clasificamos el nodo 3 con [10,1].
Tomamos i=3 y repetimos el paso 2.
Paso 2: S3={2}
Paso 3: k=2 y a2=c32=10. Clasificamos el nodo 2 con [10,3]. Tomamos i=2 y
repetimos el paso 2.
Paso 2: S2={5}
Paso 3: k=5 y a5=c25=20. Clasificamos el nodo 5 con [20,2]. Logramos la
penetración, vamos al paso 5.
Paso 5: La ruta de la penetración es: 5→[20,2]→2→[10,3]→3→[10,1]→1.
Entonces la ruta es N4={1,3,2,5} y f4=min{∞,10,10,20}=10. Las capacidades
residuales a lo largo de esta ruta son:
(c13,c31) = (10-10, 20+10) = (0,30)
(c32,c23) = (10-10, 30+10) = (0,40)
(c25,c52) = (20-10, 10+10) = (10,20)
26
Quinta iteración:
Paso 1: Hacemos ai=∞, y clasificamos el nodo 1 con [a1,-]. Tomamos i=1.
Paso 2: S1={4}.
Paso 3: k=4 y a4=c14=10. Clasificamos el nodo 4 con [10,1]. Tomamos i=4 y
repetimos el paso 2.
Paso 2: S4={3,5}
Paso 3: k=3 y a3=c23=max{15,10}=15. Clasificamos el nodo 3 con [15,4].
Tomamos i=3 y repetimos el paso 2.
Paso 2: S3 vacío ya que c32=c34=c35=0. Vamos al paso 4 para retroceder.
Paso 4: La clasificación [15,4] nos dice que el nodo inmediatamente
precedente es el 4. Eliminamos el nodo 3 de una consideración posterior en
esta iteración. Tomamos i=4 y repetimos el paso 2.
Paso 2: S4={5}
Paso 3: k=5 y a5=c45=10. Clasificamos el nodo 5 con [10,4]. Logramos la
penetración, vamos al paso 5.
Paso 5: La ruta de la penetración es: 5→[10,4]→4→[10,1]→1. Entonces la
ruta es N2={1,4,5} y f3=min{∞,10,10}=10. Las capacidades residuales a lo
largo de esta ruta son:
27
(c14,c41) = (10-10, 0+10) = (0,10)
(c45,c54) = (10-10, 10+10) = (0,20)
Sexta iteración:
No son posibles más penetraciones, debido a que todos los arcos fuera del
nodo 1 tienen residuales cero. Vayamos al paso 6 para determinar la solución.
Paso 6: El flujo máximo en la red es F=f1+f2+...+f5=60 unidades. El flujo en
los diferentes arcos se calcula restando las últimas residuales obtenidas en la
última iteración de las capacidades iniciales:
Arco (Cij, Cji) - (cij, cji)en 6ª it. Cantidad de
flujo Dirección
(1,2) (20, 0) - (0, 20) = (20, -20) 20 1→2
(1,3) (30, 0) - (0, 30) = (30, -30) 30 1→3
(1,4) (10, 0) - (0, 10) = (10, -10) 10 1→4
(2,3) (40, 0) - (40, 0) = (0, 0) 0 -
28
(2,5) (30, 0) - (10, 20) = (20, -20) 20 2→5
(3,4) (10, 5) - (0, 15) = (10, -10) 10 3→4
(3,5) (20, 0) - (0, 20) = (20, -20) 20 3→5
(4,5) (20, 0) - (0, 20) = (20, -20) 20 4→5