Está en la página 1de 40

101

CAPTULO 4
4. ALGORITMO DE FLUJO DE COSTO MNIMO

4.1. Planteamiento del Problema de Flujo de Costo Mnimo

Sea G=(N,A) una red dirigida con un costo c ij y una capacidad u ij asociada con cada arco (i, j ) A. El problema que se plantea es: Minimizar

ij ( j :( i , j ) A )

x ij

sujeto a

ij ( j : ( i , j ) A )

x 

ij ( j : ( j , i ) A )

x ! b(i ); i N (i , j ) A

l ij e x ij e u ij

Se representar con C la mayor magnitud de los costos asociados a los arcos y con U la mayor magnitud de la demanda u oferta de algn arco o a la capacidad finita de dicho arco.

102

Se supondr que el lmite inferior de capacidad de cada arco (i, j ) , l ij es cero. Adems se harn las siguientes suposiciones:

1.-Todos los costos, ofertas, demandas y capacidades de los arcos son enteros. 2.-La red es dirigida 3.-Las ofertas y las demandas de los nodos satisfacen la condicin

b(i)
i N

0 y el problema de flujo de costo mnimo posee una

solucin factible 4.- Supondremos que la red posee una ruta con una capacidad ilimitada entre cada par de nodos de los arcos que la componen. 5.-Todos los costos de los arcos son no negativos.

Los algoritmos a ser analizados emplean el concepto de redes residuales. En tales redes se ha reemplazado cada arco (i, j ) por dos arcos (i, j ) y ( j , i ) . El arco (i, j ) posee un costo c ij y una capacidad residual rij ! u ij  x ij , y el arco ( j , i ) tiene un costo

cij ! c ji y una capacidad residual rij ! xij . La red residual est


compuesta de los arcos que posean una capacidad residual positiva.

103

4.2. Algoritmo de Descomposicin de Flujo

En la formulacin de problemas de flujo en redes existen dos formas de definir el flujo, la primera es definiendo el flujo sobre los arcos y la segunda definiendo el flu jo sobre rutas y ciclos.

Para analizar la definicin de flujo sobre arcos, empleamos el vector x ! {x ij } que satisface las siguientes restricciones:

ij ( j : ( i , j ) A )

x 

ij ( j :( j , i ) A )

x ! e(i ); i N (i , j ) A

0 e x ij e u ij
donde,

e(i) ! 0
i !1

Se observa que en este modelo hemos reemplazado la oferta/demanda b (i ) , por el trmino  e(i ) , al que denominaremos como el desequilibrio del nodo i. Este trmino representa la diferencia entre el flujo que llega al nodo i y el flujo que sale del nodo. Por lo tanto si e(i ) " 0 , se dice que i es un nodo de exceso. Caso contrario, si e(i )

0 diremos que i es un nodo de dficit. Si

104

e(i ) ! 0 afirmaremos que i es un nodo balanceado.

La

formulacin del problema sobre flujos en rutas y ciclos, comienza con la enumeracin de todas las rutas dirigidas P, entre a lgn par de nodos y de todos los ciclos dirigidos en la red. Al conjunto de todas las P, lo denotaremos con P y al conjunto de todos los ciclos W con W. Las variables de decisin en esta formulacin son el

flujo sobre la ruta P, f(P) y el flujo sobre el ciclo W f(W). Estas variables estn definidas para todos los elementos de P y W.

El flujo x ij sobre el arco (i, j ) , es igual a la suma de los flujo f(P) y f(w) de todos las rutas y ciclos que contienen al arco (i, j ) . De manera formal definiremos a
ij (P)

igual a 1 si la ruta P contiene al


ij(W)

arco (i, j ) y 0 sino lo contiene, y a

igual a 1 si el ciclo W

contiene al arco (i, j ) y 0 sino lo contiene. Por lo tanto:

x ij !

H
p P

ij

( P) f ( P) 

H
wW

ij

(W ) f (W )

En relacin a este razonamiento se establece el siguiente teorema:

4.2.1. Teorema de Descomposicin de Flujo

105

Cada

flujo

en

una ruta y en un ciclo tiene una nica negativo sobre un arco.

representacin como flujo no

Inversamente cada flujo no negativo x puede ser representado como un flujo sobre una ruta y un ciclo, aunque no necesariamente propiedades: de manera nica, con las siguientes

a) Cada ruta dirigida con flujo positivo conecta un nodo de dficit con un nodo de exceso. b) Siendo n el nmero de nodos de una red y m el nmero de arcos, a lo sumo n+m rutas y ciclos tiene un flujo no nulo, de tal cantidad, a lo sumo m ciclos tienen fluj o no nulo.

4.2.1.1. Prueba

La demostracin consistir en una prueba algortmica de cmo descomponer un flujo x sobre arcos en flujo sobre rutas y ciclos. Para lo cual supongamos la existencia de un arco

(i 0 , i1 ) que lleva una cantidad de flujo positiva desde un nodo


de dficit i 0, hacia otro nodo i 1. Nos detenemos si i 1 es un nodo de exceso, caso contrario existe otro arco (i1 , i 2 ) con un flujo

106

positivo. Este proceso es repetido hasta que encontremos un nodo de exceso i k, o hasta que visitemos el nodo de partida, por lo que este paso se repetir a lo sumo en n ocasiones. En el primer caso habremos encontrado una ruta P, y en el segundo un ciclo dirigido W.

En ambos casos, la ruta P y el ciclo W se componen de arcos con flujo positivo. En la situacin de que hayamos encontrado una ruta P, definiremos al flujo f(P) de la siguiente manera:

f ( P ) ! min{e(i 0 ), e(i k ), min{ x ij : (i, j ) P}}

y redefiniremos,

e (i 0 ) ! e (i 0 )  f ( P ) e (i k ) ! e (i k )  f ( P ) x ij ! x ij  f ( P ) (i , j ) P

Si hubisemos obtenido un ciclo dirigido W, definiremos al flujo W de la siguiente forma:

f (W ) ! min{x ij : (i, j ) W }

107

y cambiando la variable:

x ij ! x ij  f (W )

(i , j ) W

Este proceso ser repetido hasta que los desequilibrios de cada nodo sean igual a cero. Luego se selecciona un nodo, del que por lo menos emane un arco con flujo positivo, como el nodo de partida y repetimos el proceso, el cual en este caso debe encontrar un flujo positivo. Este proceso termina cuando el flujo x es igual a cero para el problema redefinido. Se observa que el flujo original es la suma de los flujos identificados sobre las rutas y ciclos por este mtodo. En cada ocasin en que se identifica una se reduce el e xceso o el dficit de un nodo a cero, y cada vez que se identifica el flujo sobre una ruta dirigida se reduce el flujo sobre algn arco a cero. Como consecuencia se tiene que la representacin en base a rutas y ciclos de un flujo positivo x , contiene a lo sumo m+n rutas y ciclos dirigidos, de los cuales a lo sumo m son ciclos dirigidos.

Dada una circulacin x , para la cual e(i ) ! 0 para cada i N. Al aplicar el algoritmo de descomposicin de flujo a una circulacin

x , cada iteracin descubre un ciclo dirigido

108

consistiendo

solamente

de

arcos

con

flujo

positivo

subsecuentemente reduce el flujo de por lo menos un arco a cero. Por lo que una circulacin se descompone en flujos entre a lo sumo m ciclos dirigidos. siguiente propiedad. Debido a esto se enuncia la

4.2.2. Propiedad de la Circulacin

Una circulacin x puede ser representada flujo sobre ciclos en a lo sumo m ciclos dirigidos.

El teorema de descomposicin de flujo nos permite comparar dos soluciones de flujo en una red, nos permite construir una solucin a partir de otra mediante una secuencia de operaciones simples. A continuacin se

presenta la forma de cmo se establece un teorema importante denominado Teorema del ciclo Aumentado. Para ello se introduce el concepto de ciclo aumentado con respecto a un flujo x .

4.2.3. Ciclo Aumentado

109

Un ciclo W, no necesariamente dirigido, es llamado un ciclo aumentado con respecto a un flujo x , si aumentando una cantidad positiva e flujo f(W) en torno al ciclo, el flujo permanece factible. Tal operacin incrementa el flujo de los arcos dirigidos hacia delante, y decrementa el flujo de los arcos dirigidos hacia atrs. Por lo tanto W es un ciclo aumentado en G si x ij

u ij para cada arco (i , j ) hacia

delante y x ij " 0 para cada arco hacia atrs. Definiremos a


ij(W)

igual a 1 si el arco (i , j ) es un arco hacia delante y ser igual a 1 si el arco (i, j ) es un arco hacia atrs,

ij(W)

y 0 en otro caso.

El costo sobre el ciclo aumentado W viene definido como:

c (W ) !

c
( i , j )W

ij

H ij (W )

El cambio en el costo del flujo por aumentar f(W) unidades de flujo es f(W)c(W). El teorema de descomposicin de flujo ser empleado para enunciar otro teorema acerca de los ciclos aumentados en trminos de residuales. Para lo cual

110

supongamos que x y x

son dos soluciones factibles del

problema de flujo de costo mnimo.

De acuerdo a las redes residuales se tiene que para alguna circulacin factible x que x ! x  x .
0 I I

en G(xl) satisface la propiedad de

Adems es posible representar a la como flujos sobre ciclos

circulacin

xl

f (W1 ), f (W 2 ), f (W 3 ),..., f (W r ) con r e m . Adems se


tiene que:

c
( i , j ) A

ij

x ij !

c
( i , j ) A

ij

0 x ij 

( i , j )G ( x )
*

l c ij x ij

( i , j ) A

( i , j ) ( x *

( i , j ) A

c ij x ij0  c(W k ) f (W k )
k !1

Por lo que se ha establecido el siguiente resultado:

4.2.4. Teorema del Ciclo Aumentado

Suponga que x y que x

un problema de flujo en una red. Entonces x equivale a x

cij x ij0 

r c ij H ij (W k ) f (W k ) k !1 )

son dos soluciones factibles de


0

111

ms el flujo sobre a lo sumo m ciclos dirigidos en G(x 0). Adems, el costo de x equivale el costo de x ms el costo de flujo sobre esos ciclos aumentados.
4.3. Condiciones de Optimizacin
0

Dado un nodo fuente s y para cada nodo j N, definamos a

d ( j ) , con j { s, como la longitud de la ruta ms corta desde el


nodo s al nodo j. Por lo que para cada arco (i , j ) se debe satisfacer la siguiente desigualdad:

d ( j ) e d (i )  c ij

Esta condicin nos provee de un medio para verificar si una ruta es la de menor longitud desde un nodo fuente s hacia otros nodos. A continuacin presentamos dos condiciones de optimizacin equivalentes para el problema de flujo de costo mnimo.

4.3.1. Condiciones de Optimizacin de Ciclo Negativo

Esta condicin proviene de las propiedades del teorema de descomposicin de flujo en redes y de la redes residuales.

112

La condicin de optimizacin de ciclo negativo viene dada por el siguiente teorema:

4.3.1.1. Teorema de Condiciones de Optimizacin de Ciclo Negativo

Una solucin factible x * es una solucin ptima del problema de flujo de costo mnimo, s solo s satisface las condiciones de optimizacin de ciclo negativo, es decir la red residual G(x *) contiene ciclos dirigidos con costos no negativos.

4.3.1.1.1. Prueba.

Asumamos que x es un flujo factible y que G(x) contiene un ciclo negativo. Si sucede esto x no puede ser una solucin ptima, debido a que si aumentamos una cantidad positiva de flujo en el ciclo, lo que logramos es mejorar el valor de la funcin objetivo. Debido a esto si

x * es una solucin ptima se debe cumplir que G(x *) no


contenga ciclos negativos.

113

Ahora supongamos que x * es un flujo factible y que G(x*) contiene ciclos no negativos. Adems definamos a

x 0 como un flujo ptimo. De acuerdo a la propiedad de


ciclo aumentado es posible descomponer el vector diferencia x  x * en a lo sumo m ciclos aumentados
0

con respecto al flujo x * , la suma de costos de esos ciclos es igual cx  cx * , como la longitud de todos los
0

ciclos en G(x*) son no negativos se tiene que esta diferencia de costos es mayor o igual a cero o en forma equivalente se tendra:

cx 0 u cx *

Debido a que x es un flujo ptimo se cumple que,

cx 0 e cx *

Por lo que se concluye que cx 0 ! cx * y x * es tambin una solucin ptima. Finalmente este argumento

muestra que si G(x*) contiene ciclos no negativos entonces x * debe ser una solucin ptima.

4.3.2. Condicin de Optimizacin de Costo Reducido

114

La condicin de optimizacin antes descrita se la puede escribir de la siguiente manera:


d c ij ! c ij  d (i )  d ( j ) u 0 para todos los arcos (i, j ) A

d c ij es un costo reducido ptimo para el arco (i , j ) en el

sentido que mide los costos del arco relativo a las distancias

d (i ) y d ( j ) . Se observa que los costos reducidos de cada


arco son no negativos.

El costo reducido es igual a cero si el arco (i, j ) forma parte de la ruta de menor longitud desde el nodo s al nodo j. Por lo que si se conocen las distancias ms cortas d ( j ) , la ruta de mnimo costo estar conformada por los arcos con costo reducido igual a cero. Pero falta verificar si esta condicin es aplicable a los problemas ms generales de flujo de costo mnimo.

Supongamos que se asocia un nmero real T (i ) , sin restriccin de signo, con cada nodo i N. A dicho nodo lo

115

denominaremos el potencial del nodo i. Se definir al costo reducido del arco (i, j ) como:

T cij ! cij  T (i)  T ( j )

Este costo es aplicable original.

a las redes residuales y a red

Los costos en las redes residuales se definirn

T empleando cij en lugar de cij . A continuacin se presentan

dos propiedades importantes de los costos reducidos.

4.3.2.1. Propiedad

a) Para alguna ruta dirigida P, desde el nodo k al nodo l, se tiene que:

c
( i , j )P

T ij

c
( i , j )P

ij

 T ( k )  T (l )

b) Para algn ciclo dirigido W,

c
( i , j )P

T ij

c
( i , j )P

ij

En base a estas propiedades es posible obtener una forma alternativa de la condicin de optimizacin de ciclo negativo. Una solucin factible x * es una solucin ptima del problema de flujo de costo mnimo s solo s algn conju nto

116

de

nodos

potenciales

satisface

las

siguientes

condiciones de optimizacin de costo reducido:

T cij u 0 para cada arco (i , j ) en G(x*)

4.3.2.1.1. Prueba

Supongamos que una solucin

x * satisface las

condiciones mencionadas. Por lo tanto

c
( i , j )W

T ij

u 0 para

cada ciclo dirigido W en G(x *). Debido a las propiedades anteriores se cumple que:

c
( i , j )W

T ij

c
( i , j )W

ij

u0

de esta forma se comprueba que G(x * ) contiene ciclos no negativos.

Para demostrar lo inverso, supondremos que para la solucin

x * , G(x*) contiene ciclos no negativos.

Supongamos que d (.) las distancias de las rutas ms cortas, desde el nodo l hacia los d ems nodos en G(x*).

117

Hay que tomar en cuenta que si la red contiene ciclos no negativos, las distancias d (.) estn bien definidas y satisfacen las condiciones d ( j ) e d (i )  c ij para cada arco (i, j ) en G(X*) . Estas desigualdades se pueden
T

escribir como c ij  (  d (i ))  (  d ( j )) u 0 o c ij u 0 , si es que se define T ! d . Por lo que la solucin x * satisface las condiciones de optimizacin de costo reducido.

Las condiciones de optimizacin de costo reducido tienen una interesante interpretacin econmica.

Supongamos que se interpreta a c ij como el costo de transportar una unidad de un artculo desde el nodo i al nodo j a travs del arco (i , j ) . A Q (i ) | T (i ) se lo interpretar como el costo de obtener una unidad del artculo en el nodo i.

De acuerdo a esto se tiene que c ij  Q (i ) es el costo del artculo en el nodo j, si se lo obtiene en el nodo i y se lo transporta al nodo j. La condicin de optimizacin de

118

costo

reducido,

c ij  T (i )  T ( j ) u 0

de

forma

equivalente Q ( j ) e c ij  Q (i ) , establece que el costo de obtener el artculo en el nodo j, no es mayor que si obtuviramos el artculo en el nodo i y lo transportramos del nodo i al nodo j. El costo en el nodo j podra ser ms pequeo que c ij  Q (i ) debido a que es posible que exista otra forma de transportar un artculo del nodo i al nodo j a travs de otros nodos.

4.3.3. Condiciones de Optimizacin Complementarias

A continuacin se presenta una condicin de optimizacin en trminos de la red original.

4.3.3.1. Teorema de Condiciones de Optimizacin Complementarias

Una solucin factible x* es una ptima solucin del problema de flujo de costo mnimo s solo s para un conjunto de nodos potenciales T , los costos reducidos y los valores de los flujos satisfacen las siguient es condiciones de optimizacin para cada arco (i, j ) A:

119

1.- Si c ij " 0 , entonces x ij ! 0




2.- Si 0 3.- Si c ij
T

 x ij

T u ij , entonces c ij ! 0

 0 , x ij ! u ij

4.3.3.1.1. Prueba

En la prueba se demostrar que las condiciones anteriores son equivalentes a las condiciones de optimizacin de costo reducido.

Para establecer este resultado probaremos que si los potenciales de los nodos T y el vector de flujo x satisfacen las condiciones de optimizacin de costo reducido entonces ellos deben satisfacer las condiciones expresadas en este teorema. Para esto consideraremos las tres posibilidades para algn arco (i , j ) A.

Caso 1. Si c ij " 0 , la red residual no puede contener al


T

arco (j,i), porque c ji ! c ij

0 para ese arco, lo que

120

contradice las condiciones de optimizacin de costo reducido. Por lo tanto x ij ! 0 .


T

Caso 2.

Si 0

 x ij

u ij , la red residual contiene a


Las condiciones de
T

ambos arcos (i, j ) y ( j , i ) .

optimizacin de costo reducido implican que c ij u 0 y

c Tji u 0 .

Pero

debido

a
T

que
T

T c Tji ! c ij , esas

desigualdades implican que c ji ! c ij ! 0 .

Caso 3. Si c ij

0 , la red residual no puede contener al 0 para ese arco, lo que

arco (i , j )

porque c ij

contradice a las condiciones de optimizaci n de costo reducido. Por lo tanto x ij ! u ij . De esta manera se concluye la demostracin del teorema.
4.4. Dualidad del Problema de Flujo de Costo Mnimo


Los

problemas de programacin lineal son denominados

problemas primales y a cada uno es posible asociar otro problema relacionado o dual. Por ejemplo el mximo valor de la funcin

121

objetivo del problema dual equivale al mnimo valor de la funcin objetivo para el problema primal. A continuacin se establecern los resultados de la dualidad correspondientes al problema de flujo de costo mnimo.

Al formular el problema dual de un problema primal es necesario asociar una variable dual con cada restriccin del problema primal, excepto con las restricciones de no negatividad de flujo en los arcos. Con cada restriccin de balance de masa del problema de flujo de costo mnimo se asocia la variable dual T (i ) y la variable

E i con cada restriccin de capacidad de los arcos (i , j ) . Por lo


que el problema dual de flujo de costo mnimo queda establecido de la siguiente forma.

w(T ,E ) ! b(i )T (i ) 
iN

u E
( i , j ) N ij

ij

Sujeto a:

T (i )  T ( j )  E ij e c ij para cada arco (i , j ) A

E ij u 0 para cada arco (i , j ) A y T (i ) es irrestricto en signo

122

para j N

A continuacin se presentan dos teoremas acerca de la teora de dualidad en el problema de flujo de costo mnimo.

4.4.1. Teorema de Dualidad Dbil

Sea z (x ) el valor de la funcin objetivo para alguna solucin factible x del problema de flujo de costo mnimo y sea w(T , E ) el valor de la funcin objetivo para alguna solucin factible de su problema dual. Entonces w(T , E ) e z ( x ) .

4.4.1.1. Prueba

Si se multiplica a ambos miembros de la siguiente desigualdad.

T (i )  T ( j )  E ij e cij
Por x ij y se suman para cada arco (i , j ) A se obtiene la expresin:

(T (i)  T ( j )) x
( i , j ) A

ij

E
( i , j ) A

ij

x ij e

c
( i , j ) A

ij

x ij

123

Se tiene que cx  c x !

(T (i)  T ( j )) x
( i , j ) A

ij

, debido a que

T cij ! cij  T (i )  T ( j ) . Adems cx  c T x ! b(i )T (i ) . Por lo iN

tanto la desigualdad queda de la siguiente manera

b(i)T (i)  E
( i , j ) A ( i , j ) A

ij

u ij e

c
( i , j ) A

ij

x ij

Se observa que el lado izquierdo de la desigualdad es l a funcin objetivo dual y el lado derecho es la funcin objetivo primal, por lo que se ha demostrado el teorema. A partir del resultado

anterior, se puede concluir que si para alguna solucin dual

w(T , E ) y para una solucin primal x las funciones objetivo


tienen el mismo valor, entonces son soluciones ptimas del problema dual y del problema primal respectivamente. La

interrogante que se plantea es la existencia de tales soluciones, para responderla en primer lugar se deben eliminar las variables duales E ij . De acuerdo a la definicin de costo reducido es posible escribir la desigualdad T (i )  T ( j )  E ij e c ij , de la siguiente manera:

T E ij u c ij

124

En la funcin objetivo dual el coef iciente asociado a la variable dual es  u ij y nuestro propsito es maximizar el valor de la funcin objetivo, por lo que la variable dual debera tener el valor ms pequeo posible, entonces:
T E ij ! max{0,c ij }

Si se conocen los valores de las variables T (i ) es posible calcular los valores de las variables E ij . Segn lo anterior la funcin objetivo dual queda de la siguiente manera: Maximizar

w(T ) ! b(i )T (i ) 
iN

max{0,c
( i , j ) N

T ij

}u ij

El problema dual consiste en encontrar el vector T que optimice esta funcin. El siguiente teorema demostrar la existencia de las soluciones ptimas mencionadas.

4.4.2. Teorema de Dualidad Fuerte

125

El problema de flujo de costo mnimo siempre tiene una solucin x * y el problema de flujo de costo mnimo dual tiene una solucin que satisface la propiedad que z ( x*) ! w(T )

4.4.2.1. Prueba

En esta prueba se emplean las condiciones de optimizacin complementarias. Sea x * una solucin ptima del problema de flujo de costo mnimo. Segn tales condiciones, esta solucin junto con un vector T complementarias. satisfacen las condiciones de optimizacin Como consecuencia se tiene que la so lucin

satisface la siguiente condicin:

T T  c ij x ij ! max{0, c ij }u ij

Consideremos los siguientes casos: 1) c ij " 0 2) c ij ! 0 3) c ij


T T T

126

Segn las condiciones de optimizacin complementarias, en lo s dos primeros casos los miembros de la condicin anterior son iguales a cero y en el tercer caso ambos son iguales a  c ij u ij
T

objetivo dual:

w(T ) ! b(i )T (i ) 
iN

max{0,c
( i , j ) N

T ij

}u ij

Se obtiene como resultado:

w(T ) ! b(i )T (i ) 
iN

c
( i , j ) N

T ij

xij * !

c
( i , j ) A

ij

xij * ! z ( x*)

Por lo que se demuestra el teorema.


4.5. Algoritmo de la Ruta Sucesiva ms Corta

Este algoritmo en cada paso selecciona un nodo s con exceso de oferta, es decir, una cantidad de oferta que todava no es enviada a un nodo de demanda, y un nodo t con demanda insatisfecha y enva flujo desde el nodo s al nodo t a travs de la ruta con la distancia ms corta. El algoritmo termina cuado la solucin actual satisface todas las restricciones.

Sustituyendo la expresin

 c iT x i ! max{0, c iT }u i en la funcin

127

Para describir el algoritm o, introduciremos el concepto de pseudoflujos. Un pseudoflujo es una funcin x : A p R




que satisface solo las restricciones de capacidad y no negatividad. No necesita satisfacer las restricciones de

balance de masa.

Para algn pseudoflujo x , definimos el desequilibrio del nodo i como sigue:

e (i ) ! b (i ) 

_ j :( j , i ) A a

ji

_ j :( i , j ) Aa

ij

para cada i N

Si e(i ) " 0 para algn nodo i, nos referimos a e(i ) como el exceso del nodo i; si e(i ) dficit del nodo i.

0 denominamos a  e(i ) como el

Uno nodo est balanceado si e(i ) ! 0 .

Sean E y D los conjuntos de los nodos con excesos y dficit de flujo en la red respectivamente.

Se observa que:

e (i ) ! b (i ) ! 0
i N i N

128

e (i ) !  e (i )
i E i D

Por lo tanto si la red contiene un nodo de exceso, tambin debe contener un nodo de dficit. La red residual

correspondiente a un pseudoflujo es definida de la misma manera que para un flujo.

A continuacin se presenta un lema, el cual se plantea utilizando las condiciones de optimizacin de costo reducido.

4.5.1. Lema

Suponga que un pseudoflujo (o un flujo) x satisface las condiciones de optimizacin de costo reducido con respecto a algunos potenciales de los nodos T . Supongamos que el vector d representa las rutas ms cortas desde el nodo s a todos los otros nodos en la red residual G(x) con c ij como la longitud de una arco (i , j ) . propiedades son vlidas: Entonces las siguientes
T

129

a) El pseudoflujo optimizacin de

x tambin satisface las condiciones de


costo reducido con respecto a los

potenciales de los nodos T ' ! T .

b) Los costos reducidos c ij son cero para todos los arcos (i, j ) en las rutas ms cortas desde el nodo s a cada uno de los otros nodos.

4.5.1.1. Prueba

Ya que el flujo x satisface las condiciones de optimizacin de costo reducido con respecto a T , c ij u 0 para cada arco (i, j ) en G(x). Adems ya que el vector representa las distancias de las rutas ms cortas con c ij como longitudes de los arcos, satisface las condiciones de optimizacin de la ruta ms corta, es decir:
T d ( j ) e d (i )  c ij para todos los arcos (i, j ) en G(x) T T

Substituyendo

T c ij ! c ij  T (i )  T ( j ) en la expresin

anterior, obtenemos:

130

d ( j ) e d (i )  c ij  T (i )  T ( j )

Alternativamente,
T

c ij  (T (i )  d (i ))  (T ( j )  d ( j )) u 0 ,

o c ij u 0 . Esta conclusin establece la parte a) del lema.

Consideremos la ruta ms corta desde el nodo s hasta algn nodo i.


T d ( j ) ! d (i )  c ij .

Para cada arco (i , j ) , en esta ruta Substituyendo c ij ! c ij  T (i )  T ( j )


T T

en esta ecuacin obtenemos c ij ! 0 . establece la parte b) del lema.

Esta conclusin

4.5.2. Lema

Suponga que un pseudoflujo (o un flujo) satisface las condiciones de optimizacin de costo reducido y obtenemos

x I a partir de x , enviando flujo a lo largo de la ruta ms


corta desde el nodo s a algn nodo k; entonces x tambin satisface las condiciones de optimizacin de costo reducido.
I

4.5.2.1. Prueba

131

Definamos los potenciales T y T ' como en el lema anterior. La demostracin de tal lema implica que para cada arco (i , j ) en la ruta ms corta P desde el nodo s hasta el nodo k.

Aumentando flujo a travs de algn arco, aadira el arco inverso a la red residual. Pero ya que c ij ! 0 para cada arco (i , j ) P , c ji ! 0 y el arco (i , j ) tambin satisface
T T

las condiciones de optimizacin de costo reducido.

Los potenciales de los nodos juegan un papel muy importante en este algoritmo, el cual se describe a continuacin:

4.5.3. Descripcin del Algoritmo Ruta Sucesiva ms Corta Comienzo

x =0 y T ! 0

e(i ) ! b(i ) para todo i N


inicializar los conjuntos

! _ : e(i ) " 0a i

D ! _ : e (i ) i

0a

132

Mientras E { hacer Comienzo

Seleccione un nodo k E y un nodo l D ; Determine las distancias de las rutas ms cortas desde el nodo K a todos los otros nodos en G(x) con respecto a los costos reducidos c ij ; Defina a P como la ruta ms corta desde del nodo k al nodo l; Actualice T ! T  d ;
T

H ! min? ( k ),e(l ), min(rij ) : (i , j ) P A; e


incrementar H unidades de flujo a lo largo de la ruta P; Actualizar x, G(x), E, D y los costos reducidos;
Fin; Fin;

A continuacin justificaremos el algoritmo de flujo de costo mnimo. Para iniciar el algoritmo, asignamos x =0, el cual es un pseudoflujo factible. Para un pseudoflujo de cero se tiene que G(x)=G. Se observa que esta solucin junto con

T ! 0 satisfaces las condiciones de optimizacin de costo

133

reducido porque

T c ij ! c ij u 0 para arco (i, j ) en la red

residual G(x), lo que concuerda con los supuestos del problema de flujo de costo mnimo. Se observa que con tal de que algn nodo tenga un desequilibrio diferente de cero, ambos conjuntos E y D deben ser no vacos desde que la suma total de los excesos es igual a la suma total de los dficit. De esta manera, hasta que todos los nodos estn balanceados, el algoritmo continua siempre

identificando un nodo de exceso k y un nodo de dficit l.

Uno de los supuestos del problema, indica que la red residual contiene una ruta dirigida desde el nodo k a cada uno de los otros nodos, incluyendo el nodo l. Por lo tanto las distancias de las rutas ms cortas d (.) , estn bien definidas. Cada iteracin del algoritmo resuel ve un

problema de la ruta ms corta con longitudes de los arcos no negativos y estrictamente decrementa el exceso de algn nodo y tambin el dficit de algn otro nodo. Consecuentemente si U es el lmite superior sobre la oferta ms grande de algn nodo, el algoritmo terminara en a lo mucho nU iteraciones.

134

Este algoritmo selecciona un nodo de exceso k y utiliza el algoritmo de Dijkstra para identificar las rutas ms cortas desde el nodo k hacia los dems nodos y aumenta el flujo a travs de la ruta ms corta desde el nodo k, hasta el nodo l. No es necesario determinar la ruta ms corta

desde el nodo k hasta todos los dems nodos, es suficiente la ruta ms corta desde el nodo k hasta un nodo de dficit l. Por lo tanto el algoritmo de Dijkstra terminara si queda etiquetado permanentemente el nodo de dficit l. En este punto podemos modificar los potenciales de los nodos de la siguiente manera:

T (i )  d (i ) permanentemente T (i ) ! (i )  d (l ) Si el nodo i es etiquetado T


temporalmente

Si el nodo i es etiquetado

4.5.4. Algoritmo de Dijkstra

Este algoritmo encuentra las rutas ms cortas desde un nodo fuente s, hasta todos los dems nodos en la red, con costos asociados a sus arcos no negativos. El algoritmo mantiene

135

una distancia d (i ) con cada nodo i, la cual es un lmite superior sobre la longitud de la ruta ms corta al nodo i. En algn paso intermedio el algoritmo divide al conjunto de nodos en dos grupos: el primero denominado etiquetados permanentemente o permanentes y el segundo grupo

denominados etiquetados temporalmente o temporales.

La etiqueta de distancia para algn nodo permanente representa la distancia ms corta desde el nodo fuente a tal nodo. Para algn nodo temporal la etiqueta de distancia es el lmite superior de la distancia ms corta a ese nodo.

La idea del algoritmo es abrirse paso desde el nodo s y permanentemente etiquetar nodos en el orden de sus distancias desde el nodo s. Inicialmente se le asigna a s una etiqueta permanente de cero y a cada uno de los dems nodos se les asigna una etiqueta igual a infinito.

En cada iteracin, la etiqueta de un nodo i es su distancia ms corta desde el nodo fuente a lo largo de una ruta cuyos nodos interiores estn todos, permanentemente etiquetados. El algoritmo selecciona un nodo i con la mnima etiquet a

136

temporal, la hace permanente y se extiende desde ese nodo, es decir analiza los arcos en A(i) para actualizar las etiquetas de distancia de los nodos adyacentes. El algoritmo finaliza cuando todos los nodos han sido etiquetados como permanentes. El algoritmo construye un rbol con raz desde el nodo fuente que abarca los nodos etiquetados con distancias finitas. El algoritmo mantiene los nodos

empleando ndices o punteros.

Es decir si (i, j ) rbol

entonces pred(j)=i. Adems se mantiene la propiedad de que para cada arco (i, j ) del rbol se tiene que d ( j ) ! d (i )  c ij .

En el algoritmo de Dijkstra nos referimos a la operacin de seleccionar la mnima distancia temporal como operacin de seleccin del nodo. A la operacin de verificar si las

etiquetas de los nodos satisfacen la condicin de que

d ( j ) " d (i )  c ij , si es as se realiza la asignacin d ( j ) ! d (i )  c ij , la que se conoce como la operacin de


actualizacin de distancia. A continuacin se presentan los pasos que conforman el algoritmo de Dijkstra.

4.5.4.1. Descripcin del Algoritmo de Dijkstra

137

Comienzo

S ! ; S ! N; d (i ) ! g para cada nodo i N ; d ( s) ! 0 y pred ( s) ! 0 ;


Mientras cardinalidad(S)<n hacer Comienzo

Sea i S un nodo para el cual

d (i ) ! min{d ( j ) : j S} ;
S ! S 7 {i} ;

S ! S  {i}
Para cada (i, j ) A(i ) hacer Si d ( j ) " d (i )  c ij entonces

d ( j ) ! d (i )  c ij y pred(j)=i
Fin; Fin;

En ciertos problemas de flujo no es necesario determinar la ruta ms corta desde un nodo fuente s hasta cada uno de los dems nodos en la red, sino hasta un nodo especfico t.

138

Por lo que se presentan las siguientes variantes del algoritmo de Dijkstra.

4.5.4.2. Algoritmo de Dijkstra hacia Atrs

En el algoritmo de Dijkstra se determina la ruta ms corta E desde un nodo s a cada uno de los nodos en N  {s} . Suponga que se desea determinar la ruta ms corta desde cada uno de los nodos en N  {t} hasta el nodo de llegada t. Para resolver este proble ma se emplea una modificacin del algoritmo de Dijkstra. El algoritmo de Dijkstra hacia atrs mantiene una distancia d ( j ) con cada nodo j, el cual es el lmite superior de la longitud de la ruta ms corta desde el nodo j hasta el nodo t. De forma anloga este algoritmo designa un conjunto de nodos llamado
I

permanentemente etiquetado S ' y el conjunto restante de nodos llamado temporalmente etiquetado S ' .

En cada iteracin el algoritmo designa c on la etiqueta con la mnima distancia temporal, denominada d ' ( j ) , como permanente. Se examina cada arco de llegada (i, j ) y modifica la etiqueta de la distancia del nodo i a

139

min{d ' (i ), c ij  d ' ( j )} .

El algoritmo termina cuando

todos los nodos se han convertido en etiquetados permanentemente.

4.5.4.3. Algoritmo de Dijkstra Bidireccional

Este algoritmo se emplea para determinar la ruta ms corta desde un nodo fuente s hasta un nodo de llegada t. Para resolver este problema y eliminar algunos clculos se podra dar por finalizado el algoritmo de Dijkstra tan pronto como se haya seleccionado un nodo t S .

En el algoritmo bidireccional de Dijkstra simultneamente se aplica el algoritmo de Dijkstra convencional, desde el nodo s y el algoritmo de Dijkstra hacia atrs desde el nodo t. Alternativamente designa un nodo en S y un nodo en S ' como permanente hasta que ambos algoritmos hayan etiquetado permanentement e el mismo nodo, llamado el nodo k por lo que se tendra que S + S ' ! {k } .

Supongamos que P(i) denota la ruta ms corta desde el nodo s al nodo i S encontrada por el algoritmo de

140

Dijkstra tradicional y sea P(j) la ruta ms corta desde el nodo s al nodo j S ' al nodo t encontrado por el algoritmo de Dijkstra. Dijkstra. al nodo t encontrado por el algoritmo de

También podría gustarte