SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
Problemas de flujos.
Existen muchos problemas de flujos en redes. Una red es un sistema de líneas o canales
que conectan diferentes puntos y trasmiten algún tipo de información. Algunos
ejemplos de redes son las líneas de comunicación, redes de ferrocarril, redes de tuberías
de agua, redes de carreteras, redes de aviación, etc. En todas estas redes estaremos
interesados en enviar alguna mercancía específica desde ciertos puntos de suministro a
algunos puntos de demanda. Por ejemplo, en un sistema de tuberías podríamos enviar
agua. Muchos de los problemas de flujos en redes se pueden formular como problemas
de programación lineal y obtener su solución mediante el método del simplex. Sin
embargo, se han desarrollado otras técnicas más eficientes que varían con el problema
en cuestión. De entre este tipo de problemas destacamos los siguientes:


-     Problema de flujo máximo.
-     Problema de flujo a coste mínimo.


Problema de flujo Máximo.
Se considera el problema de trasladar una cierta mercancía desde un punto específico,
llamado fuente a un punto de destino, denominado sumidero. Para ello se considera un
grafo dirigido G = (V,A), en el que se consideran dos nodos o vértices: uno denominado
nodo fuente y otro denominado nodo destino. Por supuesto, se considera que no existe
un arco directo que conecte el nodo fuente con el nodo destino. Por supuesto, el grafo
estará formado por unos nodos intermedios conocidos como puntos de transbordo a
través de los cuales el flujo (la mercancía) es desviado.
Sea
V = conjunto de todos los vértices o nodos del grafo.
fij = el flujo que circula por el arco (i,j).
f = cantidad total de flujo que se lleva desde el nodo fuente al nodo destino.
kij = capacidad del arco (i,j).
                                                     1
Ejemplo:
                                        s
s = nodo fuente                                                        n

n = nodo destino
                                                     2
1, 2 = nodos intermedios
Objetivo:
Determinar el máximo flujo f que se puede enviar desde el nodo fuente s al nodo
destino n, teniendo en cuenta las capacidades kij sobre el flujo de cada arco (i,j) y que el
flujo se debe conservar.
Modelo de programación lineal:


                               Max        z =f
                               s.a.

                                             ∑f        ij   −     ∑f          ji   =0       ∀i ∈ V - {s, n}   (1.1)
                                         j∈Γ + ( i )            j∈Γ − ( i )

                                         0 ≤ f ij ≤ k ij                      ∀(i, j) ∈ A                     (1.2)


Las ecuaciones (1.1) representan la conservación del flujo en los nodos. Mientras que
las restricciones (1.2) son sobre el flujo que circula por cada arco, para que no sea
negativo y no supere la capacidad del arco.
En el ejemplo anterior se traduce en
               Max             z= f
               s.a.          f s1 + f s 2 = f
                           f12 + f 1n = f s1 + f 21
                           f 21 + f 2 n = f s 2 + f12
                           f1n + f 2 n = f
                            0 ≤ f s1 ≤ k s1
                            0 ≤ f s2 ≤ ks2
                            0 ≤ f 12 ≤ k12
                            0 ≤ f 21 ≤ k 21
                            0 ≤ f1n ≤ k1n
                            0 ≤ f 2n ≤ k 2n


Veamos un método eficiente para resolver el problema del flujo máximo directamente
sin usar el método del simplex.
Conceptos previos:
Definición: Dado cualquier nodo i todos los arcos que salen del nodo i se denominan
arcos hacia delante con respecto al nodo i.
Definición: Dado cualquier nodo i todos los arcos que entran al nodo i se denominan
arcos hacia atrás para el nodo i.
Definición: Un corte que separa el nodo fuente del nodo destino es una partición de los
nodos de la red en dos subconjuntos S y S* tal que el nodo fuente está en S y el nodo
destino está en S*.
Un ejemplo de corte en el ejemplo anterior podría ser (S, S*) dado por S = {s,1,2}.

                                                                    1

                                    s
                                                                                     n

                                                                    2
                                                                             Corte
Otro corte que separa s y n es el siguiente:



                                                                    1

                                    s
                                                                                     n

                                                                    2
                                                                             Corte
Definición:
La capacidad de un corte es la suma de todas las capacidades de los arcos procedentes
de los nodos de S a los nodos en S*. Se denota K(S, S*). Esto es
                                    K (S , S * ) =         ∑k          ij
                                                     ( i , j )∈( S , S * )


En los cortes anteriores, sus capacidades son:
S = {s,1,2}, K(S,S*) = k1n + k2n
S = {s,2}, K(S,S*) = ks1 + k21 + k2n
Definición: El corte con la capacidad más pequeña se denomina corte mínimo.


A partir de los ejemplos anteriores de cortes se puede apreciar que si todos los arcos de
un corte se eliminan de la red entonces no existe un camino que una el nodo fuente con
el nodo destino, de aquí que el flujo de s a n no seria posible. En otras palabras,
cualquier flujo de s a n debe atravesar los arcos en el corte, y por consiguiente, el flujo f
estará limitado por la capacidad de ese corte. La relación entre flujos y cortes vendrá
dada por el siguiente lema:
Lema: Para cualquier red dirigida, si f es el flujo desde el nodo fuente al nodo destino,
y (S, S*) es un corte, entonces el valor de f es menor o igual que la capacidad de ese
corte K(S,S*).
Como consecuencia de este lema se tiene que cualquier flujo compatible desde el nodo
fuente al nodo destino no puede exceder la capacidad de ningún corte. Por tanto, el flujo
máximo a través de la red está limitado por la capacidad del corte mínimo. El siguiente
teorema establece que siempre es posible encontrar el flujo de s a n igual a la capacidad
del corte mínimo.
Teorema de flujo máximo-corte mínimo: (Ford Fulkerson).
Para cualquier red el flujo máximo desde el nodo fuente al nodo destino es igual a la
capacidad del corte mínimo.


A partir de este teorema el problema de encontrar el flujo máximo en una red se traduce
en encontrar las capacidades de todos los cortes y elegir la mínima capacidad. Por otra
parte, dado el valor máximo de f no se especifica como este flujo es distribuido a través
de los distintos arcos. Además este método es poco recomendable ya que el número de
posibles cortes que separan el nodo fuente del destino son 2n-2.
Definición: Dada una red G = (V,A) llamamos Red Residual o Incrementeal R(f), a
aquella red formada a    partir de G, con el mismo conjunto de nodos que ésta, y dado
cada arco dirigido (i,j) ∈ A en la red original, que no tiene arco en la dirección opuesta
(es decir, (j,i) ∉ A), tal que 0 ≤ fij ≤ kij se consideran en la Red Incremental dos arcos
(i,j) y (j,i) con capacidades rij = kij - fij y rji = fij , respectivamente. A dichas
capacidades se las denomina capacidades residuales o incrementales.


Al principio que no circula ningún flujo por los arcos de la red original, la red residual
difiere de la original en que para cada arco dirigido de la red original sin arco opuesto,
ahora se le añade su opuesto con capacidad nula.
Definición: Se denomina Camino Incremental a todo camino dirigido desde el nodo
fuente al nodo destino en la red incremental.
Definición: Llamamos Cuello de Botella y lo denotamos por δ a la menor capacidad
residual de los arcos en un camino incremental, es decir, δ = min      (i,j) ∈P   rij. Dado el
siguiente camino P ⊂ R(f)
                                      5              2
                 s             a                b            n           δ= 2
                     3
Definición: Un arco se dice saturado sí y solo sí fij = kij ó rij = 0 y kij > 0.


El motivo de introducir el concepto de red residual o red incremental se
debe a los siguiente, fijémonos en la red siguiente:

                                      1
                         1                     2
                                                                1
            2


                                      1              1
       s                                                            n


                                                            1
                                               3



Si se elige como primer camino incremental P = {(s,1),(1,3),(3,2),(2,n)}
entonces saturo los arcos (1,3),(3,2) y (2,n) y no podemos enviar más flujo
de s a n consiguiendo un valor para f = 1, cuando el flujo máximo es f = 2.
Sin   embargo,      tomando      ahora    el       camino       incremental   P’   =
{(s,1),(1,2),(2,3),(3,n)} podemos enviar una unidad más de s a n y deshacer
el error cometido al enviar una unidad de flujo a través del arco (3,2).
Notemos que ahora se ha enviado una unidad de flujo a través del arco
(2,3), el cual no existe en la red original.


El algoritmo de flujo máximo consiste en encontrar un camino a través del
cual se puede enviar un flujo positivo desde el nodo fuente al nodo destino.
Tal camino es a lo que denominabamos camino incremental, y se usa para
enviar tanto flujo como sea posible desde s a n. El proceso se repite hasta
que no se pueda encontrar ningún otro camino incremental, que mejore el
flujo total de s a n. En dicho caso, se ha encontrado el flujo máximo.
Proceso de etiquetado:
Este proceso se usa para encontrar un camino incremental desde el nodo
fuente al nodo destino. Comenzando con el nodo fuente s, se dice que
cualquier nodo j se puede etiquetar si podemos enviar un flujo positivo
desde s a j. En general, desde cualquier nodo i podemos etiquetar el nodo j
si se satisface una de las siguientes condiciones:
1.- El arco que conecta los nodos i y j es un arco hacia delante y el flujo en
el arco (i,j) es menor que su capacidad ( es decir, fij ≤ kij).
2.- El arco que conecta i y j es un arco hacia atrás y el flujo en el arco (j,i)
es mayor que 0.
Se continúa el proceso de etiquetado hasta que el nodo destino sea
etiquetado. Entonces se ha conseguido un camino incremental.


Algoritmo del Flujo Máximo:
El algoritmo se inicializa con un flujo nulo o cualquier flujo factible en
todos los arcos, esto es, satisfaciendo las restricciones de capacidad y
conservación de los flujos en todos los nodos. Para mejorar este flujo, se
etiqueta inicialmente el nodo s y se aplica el proceso de etiquetado para
etiquetar los otros nodos hasta alcanzar el destino. Cuando esto ocurra
tendremos un camino incremental desde s a n a través del cual se puede
enviar un flujo positivo. A continuación, volvemos hacia atrás en el camino
incremental con la ayuda de las etiquetas de los nodos y calculamos el flujo
máximo δ que puede ser enviado por el camino. Entonces incrementamos
el flujo en δ unidades en todos los arcos hacia delante en el camino
incremental y decrementamos el flujo en δ unidades en todos los arcos
hacia atrás. Repetimos el proceso de etiquetado para encontrar otro camino
incremental desde s a n. El algoritmo termina cuando no se pueda encontrar
ningún otro camino incremental, lo que nos conduce al máximo flujo
posible de s a n.
ALGORITMO:


Paso 0:
Se inicializa f = 0 ( o cualquier flujo factible) y fij = 0 ∀ (i,j) ∈ A.
Se construye la red incremental, que coincide con la original. Esto es,
rij = kij para todo arco en la red original y se añade su opuesto con rji = 0.
Sea δ = ∝. Sea hace i = s el nodo fuente, se marca con Predi = 0.


Paso 1:
Se elige un j ∈ Γ(i) no marcado tal que rij > 0 para el arco (i,j) y se marca
con Predj = i.
Se asigna δ = min{δ,rPredj j}. En caso de que no exista y si i = s parar ya que
se ha alcanzado el máximo flujo posible que se puede enviar desde s a n.
Si i ≠ s se hace i = Predi y se busca otro j ∈ Γ(i), no marcado con rij > 0.


Paso 2:
Si j = n, hacer f = f + δ, e ir al paso 3.
En caso contrario, hacer i = j y repetir el paso 1.


Paso 3:
Cambiamos rPredj j = rPredj j - δ y rj Predj = rj Predj + δ.
Hacer j = Predj, si j = s ir al paso 4. En otro caso, repetimos el paso 3.


Paso 4:
Se borran todas las marcas menos la de s, sea s = i. Se vuelve a asignar δ =
∝ y se va al paso 1.
Ejemplo: Sea la siguiente red en la cual los números sobre los arcos
representan las capacidades.

                                         1       9
                         7



   f=0                                                       f=0
               s                                         n
                                     3




                     9
                                                     8
                                         2



Camino incremental



                         7               1



               s                                         n
                                     3




                                                     8
                                         2




                                         1       9
                         4


                             3
   f=3                                                       f=3
               s                                         n
                                 3           0   3



                     9
                                                     5
                                         2
Nuevo camino incremental
                                             1               9
                         4




                s                                                    n




                                             1               5
                         0


                             7                       4
   f = 12                                                                f = 12
                s                                                    n
                                         0       3       0
                             5


                     4
                                                                 8
                                             2



                                             1


                                                             5

                s                                                    n
                                         3



                     4
                                             2




                                             1               7
                         0


                             7                       2
   f = 15                        7                                       f = 15
                s                                                    n
                                     3           0
                                                         8
                                 8

                     1
                                                                 0
                                             2
Extensiones:
Caso dirigido: Consideremos una red que contiene aristas en lugar de arcos. Dada una
arista que conecta los nodos i y j, con capacidad K lo interpretamos como sigue:
                                        fij ≤ K
                                        fji ≤ K
                                      fij * fji = 0
En otras palabras, un máximo de K unidades de flujo es posible entre los nodos i y j en
cualquier dirección, pero el flujo se permite en una única dirección. Tengamos en
cuenta que el algoritmo visto anteriormente sólo se puede aplicar a redes dirigidas
donde la dirección del flujo se especifica en todos los arcos. Para encontrar el flujo
máximo en una red no dirigida primero convertimos la red en una red equivalente
dirigida, y entonces aplicamos el método de etiquetado.
Ejemplo:
Consideremos una red de calles como se muestra en el grafo


                              1             30             3
             40
                                                                     50



                                                                              s
      s                  15                           25
                                       20



                                                                     30
            30
                              2             50             4
Problema de flujo a coste mínimo.-
Sea G = (V,A) un grafo con dos vértices fijos, s el nodo fuente y t el nodo destino. Cada
arco (i,j) ∈ A tiene asociada una capacidad kij y un coste por unidad de flujo que circula
por cada arco cij.    Sea Φ la cantidad de flujo demandada desde el nodo t, para ser
servida desde el nodo s. Entonces podemos plantear el problema de flujo a coste
mínimo en los siguientes términos: enviar Φ unidades de flujo desde el nodo s al nodo
t de G = (V,A) con el patrón de flujo cuyo coste asociado sea el mínimo, satisfaciendo
las restricciones de capacidad y conservación en los nodos V – {s,t}.
En este caso el patrón de flujo f de ser tal que :


                           ∑f       ij   −   ∑f        ij        =0          ∀ V − {s , t }
                           j∈Γi +            j∈Γi −
Conservación del flujo
                           ∑f       sj   =    ∑f            jt   =Φ
                           j∈Γs +             j∈Γt −


Restricciones de capacidad 0 ≤ f ij ≤ k ij                            ∀(i, j) ∈ A


Mientras que el coste del patrón de flujo viene dado por
                                                Z( f ) =              ∑c
                                                                  ( i , j )∈ A
                                                                                 ij   f ij



Red residual.-
La red residual R(f) correspondiente a un flujo f se define como sigue: Reemplazamos
cada arco (i,j) ∈ A por dos arcos (i,j) y (j,i). El arco (i,j) tiene un coste cij y una
capacidad residual de rij = kij – fij, y el arco (j,i) tiene un coste de cji = -cij y una
capacidad residual de rji = fij. En la red residual se consideran sólo los arcos con
capacidad positiva.
Algoritmo de Busacker.
El algoritmo de Busacker y Gowen (1961) intenta enviar las Φ unidades de flujo de s a t
eligiendo en cada iteración el camino de mínimo coste de s a t, que envía un flujo igual
al cuello de botella del camino. El algoritmo termina cuando se han enviado las Φ
unidades de flujo, o no hay camino de s a t. En este último caso el problema no tiene
solución. Denotamos:
CT = coste total del camino que envía las Φ unidades
CC = coste del camino mínimo que se calcula en cada iteración.
Sea G = (V,A) un grafo dado, y s y t dos vértices fijados a priori.


Paso 1:
Asignar CT = 0.
Construir la red incremental de G, y asignar
      ⎧k ij si (i, j ) ∈ A              ⎧cij   si (i, j ) ∈ A
rij = ⎨                           cij = ⎨
                                     *

      ⎩0 en otro caso                   ⎩∞     en otro caso


Paso 2:
Buscar el camino mínimo de s a t en la red                      incremental usando el
algoritmo de Ford, y almacenarlo en Predi ∀ i = s,...,t.
Asignar a CC el coste de tal camino .
Si no existe tal camino Parar, no hay solución factible. Sea δ = ∝ e i = t.


Paso 3:
Si i = s, hacer i = t e ir al Paso 4.
En otro caso , si δ > rPredi,i entonces δ = rPredi,i . Hacer i = Predi y repetir el
paso 3.


Paso 4:
Si Φ - δ > 0 entonces asignar θ = δ.
En otro caso hacer θ = Φ.
Paso 5:
Si i = s, ir al Paso 6.
En otro caso,
       rPredi,i = rPredi,i - θ, ri,Predi = ri,Predi + θ
       ci,Predi* = - cPredi,i*
y para aquellos arcos tales que rPredi,i = 0 entonces cPredi,i* = ∝.
Hacer i = Predi y repetir el Paso 5.


Paso 6:
Asignar CT = CT + θ * CC.
Si Φ - δ > 0 hacer Φ = Φ - δ y buscar un nuevo camino de coste mínimo de
s a t pero con los nuevos costes asignados a los arcos. Almacenarlo en Predi
∀ i = s,...,t y asignar a CC el coste de tal camino.
Hacer δ = ∝ e i = t e ir al Paso 3.
En otro caso de que no exista tal camino, parar puesto que no existe
solución factible.
Si Φ - δ ≤ 0, parar hemos encontrado el camino de flujo a coste mínimo.


Ejemplo:

                                        (5,20)
                             1                            2
           (3,18)
                                                                   (5,14)


   s                                  (4,15)                                t
                                                     (8,12)


                    (8,20)                                    (3,17)
                                          3

Más contenido relacionado

La actualidad más candente

Capítulo 3: Encripción
Capítulo 3: EncripciónCapítulo 3: Encripción
Capítulo 3: EncripciónRosa E Padilla
 
Terminologia de teoria de redes
Terminologia de teoria de redesTerminologia de teoria de redes
Terminologia de teoria de redesADRIANA NIETO
 
2f 01 gravitación3
2f 01 gravitación32f 01 gravitación3
2f 01 gravitación3CAL28
 
5.1 TERMINOLOGÍA DE OPTIMIZACIÓN DE REDES
5.1  TERMINOLOGÍA DE OPTIMIZACIÓN DE REDES5.1  TERMINOLOGÍA DE OPTIMIZACIÓN DE REDES
5.1 TERMINOLOGÍA DE OPTIMIZACIÓN DE REDESADRIANA NIETO
 
Modelado de circuitos con ED de orden superior
Modelado de circuitos con ED de orden superiorModelado de circuitos con ED de orden superior
Modelado de circuitos con ED de orden superiorJuan Camilo Sacanamboy
 
1b 01 vectores
1b 01 vectores1b 01 vectores
1b 01 vectoresCAL28
 
2f 02 d mvas y ondulatorio
2f 02 d mvas y ondulatorio2f 02 d mvas y ondulatorio
2f 02 d mvas y ondulatorioCAL28
 
Folleto segundo parcial
Folleto segundo parcialFolleto segundo parcial
Folleto segundo parcialERICK CONDE
 
Tema 2 teoría de la información y capacidad de canal
Tema 2   teoría de la información y capacidad de canalTema 2   teoría de la información y capacidad de canal
Tema 2 teoría de la información y capacidad de canalJosé Ramón Cerquides Bueno
 
Resolucion fisica c_final2006ti
Resolucion fisica c_final2006tiResolucion fisica c_final2006ti
Resolucion fisica c_final2006tiVelmuz Buzz
 
5.5 flujo a costo minimo
5.5 flujo a costo minimo5.5 flujo a costo minimo
5.5 flujo a costo minimoADRIANA NIETO
 
Olimpiada internacional de física 14
Olimpiada internacional de física 14Olimpiada internacional de física 14
Olimpiada internacional de física 14KDNA71
 
Analisis de señales discretas en t
Analisis de señales discretas en tAnalisis de señales discretas en t
Analisis de señales discretas en tkinetic15
 
Teoría de las redes
Teoría de las redesTeoría de las redes
Teoría de las redesDiego Gomez
 

La actualidad más candente (20)

Teoria de Redes
Teoria de Redes Teoria de Redes
Teoria de Redes
 
Capítulo 3: Encripción
Capítulo 3: EncripciónCapítulo 3: Encripción
Capítulo 3: Encripción
 
Terminologia de teoria de redes
Terminologia de teoria de redesTerminologia de teoria de redes
Terminologia de teoria de redes
 
Problemas redes
Problemas redesProblemas redes
Problemas redes
 
2f 01 gravitación3
2f 01 gravitación32f 01 gravitación3
2f 01 gravitación3
 
Tema 3 ecualizacion de-canal
Tema 3 ecualizacion de-canalTema 3 ecualizacion de-canal
Tema 3 ecualizacion de-canal
 
5.1 TERMINOLOGÍA DE OPTIMIZACIÓN DE REDES
5.1  TERMINOLOGÍA DE OPTIMIZACIÓN DE REDES5.1  TERMINOLOGÍA DE OPTIMIZACIÓN DE REDES
5.1 TERMINOLOGÍA DE OPTIMIZACIÓN DE REDES
 
Modelado de circuitos con ED de orden superior
Modelado de circuitos con ED de orden superiorModelado de circuitos con ED de orden superior
Modelado de circuitos con ED de orden superior
 
Flujo en redes
Flujo en redesFlujo en redes
Flujo en redes
 
Tema 1 canales en comunicaciones digitales
Tema 1   canales en comunicaciones digitalesTema 1   canales en comunicaciones digitales
Tema 1 canales en comunicaciones digitales
 
1b 01 vectores
1b 01 vectores1b 01 vectores
1b 01 vectores
 
2f 02 d mvas y ondulatorio
2f 02 d mvas y ondulatorio2f 02 d mvas y ondulatorio
2f 02 d mvas y ondulatorio
 
Folleto segundo parcial
Folleto segundo parcialFolleto segundo parcial
Folleto segundo parcial
 
TE1-PE-2007-1S
TE1-PE-2007-1STE1-PE-2007-1S
TE1-PE-2007-1S
 
Tema 2 teoría de la información y capacidad de canal
Tema 2   teoría de la información y capacidad de canalTema 2   teoría de la información y capacidad de canal
Tema 2 teoría de la información y capacidad de canal
 
Resolucion fisica c_final2006ti
Resolucion fisica c_final2006tiResolucion fisica c_final2006ti
Resolucion fisica c_final2006ti
 
5.5 flujo a costo minimo
5.5 flujo a costo minimo5.5 flujo a costo minimo
5.5 flujo a costo minimo
 
Olimpiada internacional de física 14
Olimpiada internacional de física 14Olimpiada internacional de física 14
Olimpiada internacional de física 14
 
Analisis de señales discretas en t
Analisis de señales discretas en tAnalisis de señales discretas en t
Analisis de señales discretas en t
 
Teoría de las redes
Teoría de las redesTeoría de las redes
Teoría de las redes
 

Destacado

5.3 arbol expansión minima algoritmo de kruskal
5.3 arbol expansión minima algoritmo de kruskal5.3 arbol expansión minima algoritmo de kruskal
5.3 arbol expansión minima algoritmo de kruskalADRIANA NIETO
 
Algoritmos de kruskal y prim
Algoritmos de kruskal y primAlgoritmos de kruskal y prim
Algoritmos de kruskal y primfher969
 
Acciones realizadas a dic 3 de 2012
Acciones realizadas a dic 3 de 2012Acciones realizadas a dic 3 de 2012
Acciones realizadas a dic 3 de 2012malambopermanencia
 
F1 alejandro lobeira-crearmipresentación
F1 alejandro lobeira-crearmipresentaciónF1 alejandro lobeira-crearmipresentación
F1 alejandro lobeira-crearmipresentaciónalejandrolobeirablanco
 
Como el tic es en nuestro trabajo
Como el tic es en nuestro trabajoComo el tic es en nuestro trabajo
Como el tic es en nuestro trabajoherminiapitti
 
Mi primer trabajo incompleto, por falta de conocimiento.
Mi primer trabajo incompleto, por falta de conocimiento.Mi primer trabajo incompleto, por falta de conocimiento.
Mi primer trabajo incompleto, por falta de conocimiento.jtororubio
 
Alberto rubio sanchez, rousseau
Alberto rubio sanchez, rousseauAlberto rubio sanchez, rousseau
Alberto rubio sanchez, rousseaurubiogamo10
 
Control de la imformatica en los procesos tecnicos
Control de la imformatica en los procesos tecnicosControl de la imformatica en los procesos tecnicos
Control de la imformatica en los procesos tecnicosJuan De Paz
 
Presentación1
Presentación1Presentación1
Presentación1mesias_iza
 
Trabajo de informatica (2)
Trabajo de informatica (2)Trabajo de informatica (2)
Trabajo de informatica (2)miguelporciempre
 
Heinrich schliemann
Heinrich schliemannHeinrich schliemann
Heinrich schliemannculturac
 
Modulo3 caso-practico
Modulo3 caso-practicoModulo3 caso-practico
Modulo3 caso-practicoMilioche
 
Trabajo colaborativo
Trabajo colaborativo Trabajo colaborativo
Trabajo colaborativo Marrero
 
Tic 2. tematica 2 practica 1. speckbacher rocio
Tic 2. tematica 2 practica 1. speckbacher rocioTic 2. tematica 2 practica 1. speckbacher rocio
Tic 2. tematica 2 practica 1. speckbacher rocioro174
 

Destacado (20)

5.3 arbol expansión minima algoritmo de kruskal
5.3 arbol expansión minima algoritmo de kruskal5.3 arbol expansión minima algoritmo de kruskal
5.3 arbol expansión minima algoritmo de kruskal
 
Algoritmos de kruskal y prim
Algoritmos de kruskal y primAlgoritmos de kruskal y prim
Algoritmos de kruskal y prim
 
La comunicación y yo
La comunicación y yoLa comunicación y yo
La comunicación y yo
 
Acciones realizadas a dic 3 de 2012
Acciones realizadas a dic 3 de 2012Acciones realizadas a dic 3 de 2012
Acciones realizadas a dic 3 de 2012
 
F1 alejandro lobeira-crearmipresentación
F1 alejandro lobeira-crearmipresentaciónF1 alejandro lobeira-crearmipresentación
F1 alejandro lobeira-crearmipresentación
 
Switches cisco
Switches ciscoSwitches cisco
Switches cisco
 
Proyecto intervencion
Proyecto intervencionProyecto intervencion
Proyecto intervencion
 
Como el tic es en nuestro trabajo
Como el tic es en nuestro trabajoComo el tic es en nuestro trabajo
Como el tic es en nuestro trabajo
 
Mi primer trabajo incompleto, por falta de conocimiento.
Mi primer trabajo incompleto, por falta de conocimiento.Mi primer trabajo incompleto, por falta de conocimiento.
Mi primer trabajo incompleto, por falta de conocimiento.
 
Brandon flowers
Brandon flowersBrandon flowers
Brandon flowers
 
Alberto rubio sanchez, rousseau
Alberto rubio sanchez, rousseauAlberto rubio sanchez, rousseau
Alberto rubio sanchez, rousseau
 
Cuantica
CuanticaCuantica
Cuantica
 
Control de la imformatica en los procesos tecnicos
Control de la imformatica en los procesos tecnicosControl de la imformatica en los procesos tecnicos
Control de la imformatica en los procesos tecnicos
 
Presentación1
Presentación1Presentación1
Presentación1
 
Trabajo de informatica (2)
Trabajo de informatica (2)Trabajo de informatica (2)
Trabajo de informatica (2)
 
Capacitacion01
Capacitacion01Capacitacion01
Capacitacion01
 
Heinrich schliemann
Heinrich schliemannHeinrich schliemann
Heinrich schliemann
 
Modulo3 caso-practico
Modulo3 caso-practicoModulo3 caso-practico
Modulo3 caso-practico
 
Trabajo colaborativo
Trabajo colaborativo Trabajo colaborativo
Trabajo colaborativo
 
Tic 2. tematica 2 practica 1. speckbacher rocio
Tic 2. tematica 2 practica 1. speckbacher rocioTic 2. tematica 2 practica 1. speckbacher rocio
Tic 2. tematica 2 practica 1. speckbacher rocio
 

Similar a Problemas de flujo en redes: flujo máximo y mínimo coste

República bolivariana de venezuela
República bolivariana de venezuelaRepública bolivariana de venezuela
República bolivariana de venezuelamiguel perez
 
Tema4.2ºbachillerato.física.ejercicios selectividad resueltos
Tema4.2ºbachillerato.física.ejercicios selectividad resueltosTema4.2ºbachillerato.física.ejercicios selectividad resueltos
Tema4.2ºbachillerato.física.ejercicios selectividad resueltosquififluna
 
Mallas eléctricas
Mallas eléctricasMallas eléctricas
Mallas eléctricasguestaf7868
 
Mallas 091113110741-phpapp01
Mallas 091113110741-phpapp01Mallas 091113110741-phpapp01
Mallas 091113110741-phpapp01marcosgabo
 
Ortiz_Modelos_De_Línea_Bifilar_Trenzado_JWT-PVC-NY_CENTELSA _UTPXX-C3-SOLID-I...
Ortiz_Modelos_De_Línea_Bifilar_Trenzado_JWT-PVC-NY_CENTELSA _UTPXX-C3-SOLID-I...Ortiz_Modelos_De_Línea_Bifilar_Trenzado_JWT-PVC-NY_CENTELSA _UTPXX-C3-SOLID-I...
Ortiz_Modelos_De_Línea_Bifilar_Trenzado_JWT-PVC-NY_CENTELSA _UTPXX-C3-SOLID-I...Giancarlo Ortiz Benavides
 
Olimpiada internacional de física 13
Olimpiada internacional de física 13Olimpiada internacional de física 13
Olimpiada internacional de física 13KDNA71
 
Metodos de-analisis de mallas
Metodos de-analisis de mallasMetodos de-analisis de mallas
Metodos de-analisis de mallasRaffael R
 
Analisis de Redes Electricas I (9)
Analisis de Redes Electricas I (9)Analisis de Redes Electricas I (9)
Analisis de Redes Electricas I (9)Velmuz Buzz
 
Redesiunidad82doparcialsinfondoacoplamientomagnetico 100426231637-phpapp02
Redesiunidad82doparcialsinfondoacoplamientomagnetico 100426231637-phpapp02Redesiunidad82doparcialsinfondoacoplamientomagnetico 100426231637-phpapp02
Redesiunidad82doparcialsinfondoacoplamientomagnetico 100426231637-phpapp02marcosgabo
 
Cap7
Cap7Cap7
Cap7UC3M
 
Ejercicios 02-diodo
Ejercicios 02-diodoEjercicios 02-diodo
Ejercicios 02-diodoluisd70
 
4.5 a 4.8 ley de biot savart
4.5 a 4.8 ley de biot savart4.5 a 4.8 ley de biot savart
4.5 a 4.8 ley de biot savartfranklivargas
 
Transformada Conforme
Transformada ConformeTransformada Conforme
Transformada ConformeJackson Reyes
 
curso de electricidad 14
curso de electricidad 14curso de electricidad 14
curso de electricidad 14andrea oncehex
 

Similar a Problemas de flujo en redes: flujo máximo y mínimo coste (20)

Info
InfoInfo
Info
 
República bolivariana de venezuela
República bolivariana de venezuelaRepública bolivariana de venezuela
República bolivariana de venezuela
 
Mallas 091113110741-phpapp01
Mallas 091113110741-phpapp01Mallas 091113110741-phpapp01
Mallas 091113110741-phpapp01
 
Cuadripolos marzo 2010
Cuadripolos marzo 2010Cuadripolos marzo 2010
Cuadripolos marzo 2010
 
Lck
LckLck
Lck
 
Resumen
ResumenResumen
Resumen
 
Tema4.2ºbachillerato.física.ejercicios selectividad resueltos
Tema4.2ºbachillerato.física.ejercicios selectividad resueltosTema4.2ºbachillerato.física.ejercicios selectividad resueltos
Tema4.2ºbachillerato.física.ejercicios selectividad resueltos
 
Mallas eléctricas
Mallas eléctricasMallas eléctricas
Mallas eléctricas
 
Mallas 091113110741-phpapp01
Mallas 091113110741-phpapp01Mallas 091113110741-phpapp01
Mallas 091113110741-phpapp01
 
Ortiz_Modelos_De_Línea_Bifilar_Trenzado_JWT-PVC-NY_CENTELSA _UTPXX-C3-SOLID-I...
Ortiz_Modelos_De_Línea_Bifilar_Trenzado_JWT-PVC-NY_CENTELSA _UTPXX-C3-SOLID-I...Ortiz_Modelos_De_Línea_Bifilar_Trenzado_JWT-PVC-NY_CENTELSA _UTPXX-C3-SOLID-I...
Ortiz_Modelos_De_Línea_Bifilar_Trenzado_JWT-PVC-NY_CENTELSA _UTPXX-C3-SOLID-I...
 
Olimpiada internacional de física 13
Olimpiada internacional de física 13Olimpiada internacional de física 13
Olimpiada internacional de física 13
 
Metodos de-analisis de mallas
Metodos de-analisis de mallasMetodos de-analisis de mallas
Metodos de-analisis de mallas
 
40 -2_capi_2
40  -2_capi_240  -2_capi_2
40 -2_capi_2
 
Analisis de Redes Electricas I (9)
Analisis de Redes Electricas I (9)Analisis de Redes Electricas I (9)
Analisis de Redes Electricas I (9)
 
Redesiunidad82doparcialsinfondoacoplamientomagnetico 100426231637-phpapp02
Redesiunidad82doparcialsinfondoacoplamientomagnetico 100426231637-phpapp02Redesiunidad82doparcialsinfondoacoplamientomagnetico 100426231637-phpapp02
Redesiunidad82doparcialsinfondoacoplamientomagnetico 100426231637-phpapp02
 
Cap7
Cap7Cap7
Cap7
 
Ejercicios 02-diodo
Ejercicios 02-diodoEjercicios 02-diodo
Ejercicios 02-diodo
 
4.5 a 4.8 ley de biot savart
4.5 a 4.8 ley de biot savart4.5 a 4.8 ley de biot savart
4.5 a 4.8 ley de biot savart
 
Transformada Conforme
Transformada ConformeTransformada Conforme
Transformada Conforme
 
curso de electricidad 14
curso de electricidad 14curso de electricidad 14
curso de electricidad 14
 

Problemas de flujo en redes: flujo máximo y mínimo coste

  • 1. Problemas de flujos. Existen muchos problemas de flujos en redes. Una red es un sistema de líneas o canales que conectan diferentes puntos y trasmiten algún tipo de información. Algunos ejemplos de redes son las líneas de comunicación, redes de ferrocarril, redes de tuberías de agua, redes de carreteras, redes de aviación, etc. En todas estas redes estaremos interesados en enviar alguna mercancía específica desde ciertos puntos de suministro a algunos puntos de demanda. Por ejemplo, en un sistema de tuberías podríamos enviar agua. Muchos de los problemas de flujos en redes se pueden formular como problemas de programación lineal y obtener su solución mediante el método del simplex. Sin embargo, se han desarrollado otras técnicas más eficientes que varían con el problema en cuestión. De entre este tipo de problemas destacamos los siguientes: - Problema de flujo máximo. - Problema de flujo a coste mínimo. Problema de flujo Máximo. Se considera el problema de trasladar una cierta mercancía desde un punto específico, llamado fuente a un punto de destino, denominado sumidero. Para ello se considera un grafo dirigido G = (V,A), en el que se consideran dos nodos o vértices: uno denominado nodo fuente y otro denominado nodo destino. Por supuesto, se considera que no existe un arco directo que conecte el nodo fuente con el nodo destino. Por supuesto, el grafo estará formado por unos nodos intermedios conocidos como puntos de transbordo a través de los cuales el flujo (la mercancía) es desviado. Sea V = conjunto de todos los vértices o nodos del grafo. fij = el flujo que circula por el arco (i,j). f = cantidad total de flujo que se lleva desde el nodo fuente al nodo destino. kij = capacidad del arco (i,j). 1 Ejemplo: s s = nodo fuente n n = nodo destino 2 1, 2 = nodos intermedios
  • 2. Objetivo: Determinar el máximo flujo f que se puede enviar desde el nodo fuente s al nodo destino n, teniendo en cuenta las capacidades kij sobre el flujo de cada arco (i,j) y que el flujo se debe conservar. Modelo de programación lineal: Max z =f s.a. ∑f ij − ∑f ji =0 ∀i ∈ V - {s, n} (1.1) j∈Γ + ( i ) j∈Γ − ( i ) 0 ≤ f ij ≤ k ij ∀(i, j) ∈ A (1.2) Las ecuaciones (1.1) representan la conservación del flujo en los nodos. Mientras que las restricciones (1.2) son sobre el flujo que circula por cada arco, para que no sea negativo y no supere la capacidad del arco. En el ejemplo anterior se traduce en Max z= f s.a. f s1 + f s 2 = f f12 + f 1n = f s1 + f 21 f 21 + f 2 n = f s 2 + f12 f1n + f 2 n = f 0 ≤ f s1 ≤ k s1 0 ≤ f s2 ≤ ks2 0 ≤ f 12 ≤ k12 0 ≤ f 21 ≤ k 21 0 ≤ f1n ≤ k1n 0 ≤ f 2n ≤ k 2n Veamos un método eficiente para resolver el problema del flujo máximo directamente sin usar el método del simplex. Conceptos previos: Definición: Dado cualquier nodo i todos los arcos que salen del nodo i se denominan arcos hacia delante con respecto al nodo i. Definición: Dado cualquier nodo i todos los arcos que entran al nodo i se denominan arcos hacia atrás para el nodo i.
  • 3. Definición: Un corte que separa el nodo fuente del nodo destino es una partición de los nodos de la red en dos subconjuntos S y S* tal que el nodo fuente está en S y el nodo destino está en S*. Un ejemplo de corte en el ejemplo anterior podría ser (S, S*) dado por S = {s,1,2}. 1 s n 2 Corte Otro corte que separa s y n es el siguiente: 1 s n 2 Corte Definición: La capacidad de un corte es la suma de todas las capacidades de los arcos procedentes de los nodos de S a los nodos en S*. Se denota K(S, S*). Esto es K (S , S * ) = ∑k ij ( i , j )∈( S , S * ) En los cortes anteriores, sus capacidades son: S = {s,1,2}, K(S,S*) = k1n + k2n S = {s,2}, K(S,S*) = ks1 + k21 + k2n Definición: El corte con la capacidad más pequeña se denomina corte mínimo. A partir de los ejemplos anteriores de cortes se puede apreciar que si todos los arcos de un corte se eliminan de la red entonces no existe un camino que una el nodo fuente con el nodo destino, de aquí que el flujo de s a n no seria posible. En otras palabras, cualquier flujo de s a n debe atravesar los arcos en el corte, y por consiguiente, el flujo f estará limitado por la capacidad de ese corte. La relación entre flujos y cortes vendrá dada por el siguiente lema:
  • 4. Lema: Para cualquier red dirigida, si f es el flujo desde el nodo fuente al nodo destino, y (S, S*) es un corte, entonces el valor de f es menor o igual que la capacidad de ese corte K(S,S*). Como consecuencia de este lema se tiene que cualquier flujo compatible desde el nodo fuente al nodo destino no puede exceder la capacidad de ningún corte. Por tanto, el flujo máximo a través de la red está limitado por la capacidad del corte mínimo. El siguiente teorema establece que siempre es posible encontrar el flujo de s a n igual a la capacidad del corte mínimo. Teorema de flujo máximo-corte mínimo: (Ford Fulkerson). Para cualquier red el flujo máximo desde el nodo fuente al nodo destino es igual a la capacidad del corte mínimo. A partir de este teorema el problema de encontrar el flujo máximo en una red se traduce en encontrar las capacidades de todos los cortes y elegir la mínima capacidad. Por otra parte, dado el valor máximo de f no se especifica como este flujo es distribuido a través de los distintos arcos. Además este método es poco recomendable ya que el número de posibles cortes que separan el nodo fuente del destino son 2n-2. Definición: Dada una red G = (V,A) llamamos Red Residual o Incrementeal R(f), a aquella red formada a partir de G, con el mismo conjunto de nodos que ésta, y dado cada arco dirigido (i,j) ∈ A en la red original, que no tiene arco en la dirección opuesta (es decir, (j,i) ∉ A), tal que 0 ≤ fij ≤ kij se consideran en la Red Incremental dos arcos (i,j) y (j,i) con capacidades rij = kij - fij y rji = fij , respectivamente. A dichas capacidades se las denomina capacidades residuales o incrementales. Al principio que no circula ningún flujo por los arcos de la red original, la red residual difiere de la original en que para cada arco dirigido de la red original sin arco opuesto, ahora se le añade su opuesto con capacidad nula. Definición: Se denomina Camino Incremental a todo camino dirigido desde el nodo fuente al nodo destino en la red incremental. Definición: Llamamos Cuello de Botella y lo denotamos por δ a la menor capacidad residual de los arcos en un camino incremental, es decir, δ = min (i,j) ∈P rij. Dado el siguiente camino P ⊂ R(f) 5 2 s a b n δ= 2 3
  • 5. Definición: Un arco se dice saturado sí y solo sí fij = kij ó rij = 0 y kij > 0. El motivo de introducir el concepto de red residual o red incremental se debe a los siguiente, fijémonos en la red siguiente: 1 1 2 1 2 1 1 s n 1 3 Si se elige como primer camino incremental P = {(s,1),(1,3),(3,2),(2,n)} entonces saturo los arcos (1,3),(3,2) y (2,n) y no podemos enviar más flujo de s a n consiguiendo un valor para f = 1, cuando el flujo máximo es f = 2. Sin embargo, tomando ahora el camino incremental P’ = {(s,1),(1,2),(2,3),(3,n)} podemos enviar una unidad más de s a n y deshacer el error cometido al enviar una unidad de flujo a través del arco (3,2). Notemos que ahora se ha enviado una unidad de flujo a través del arco (2,3), el cual no existe en la red original. El algoritmo de flujo máximo consiste en encontrar un camino a través del cual se puede enviar un flujo positivo desde el nodo fuente al nodo destino. Tal camino es a lo que denominabamos camino incremental, y se usa para enviar tanto flujo como sea posible desde s a n. El proceso se repite hasta que no se pueda encontrar ningún otro camino incremental, que mejore el flujo total de s a n. En dicho caso, se ha encontrado el flujo máximo.
  • 6. Proceso de etiquetado: Este proceso se usa para encontrar un camino incremental desde el nodo fuente al nodo destino. Comenzando con el nodo fuente s, se dice que cualquier nodo j se puede etiquetar si podemos enviar un flujo positivo desde s a j. En general, desde cualquier nodo i podemos etiquetar el nodo j si se satisface una de las siguientes condiciones: 1.- El arco que conecta los nodos i y j es un arco hacia delante y el flujo en el arco (i,j) es menor que su capacidad ( es decir, fij ≤ kij). 2.- El arco que conecta i y j es un arco hacia atrás y el flujo en el arco (j,i) es mayor que 0. Se continúa el proceso de etiquetado hasta que el nodo destino sea etiquetado. Entonces se ha conseguido un camino incremental. Algoritmo del Flujo Máximo: El algoritmo se inicializa con un flujo nulo o cualquier flujo factible en todos los arcos, esto es, satisfaciendo las restricciones de capacidad y conservación de los flujos en todos los nodos. Para mejorar este flujo, se etiqueta inicialmente el nodo s y se aplica el proceso de etiquetado para etiquetar los otros nodos hasta alcanzar el destino. Cuando esto ocurra tendremos un camino incremental desde s a n a través del cual se puede enviar un flujo positivo. A continuación, volvemos hacia atrás en el camino incremental con la ayuda de las etiquetas de los nodos y calculamos el flujo máximo δ que puede ser enviado por el camino. Entonces incrementamos el flujo en δ unidades en todos los arcos hacia delante en el camino incremental y decrementamos el flujo en δ unidades en todos los arcos hacia atrás. Repetimos el proceso de etiquetado para encontrar otro camino incremental desde s a n. El algoritmo termina cuando no se pueda encontrar ningún otro camino incremental, lo que nos conduce al máximo flujo posible de s a n.
  • 7. ALGORITMO: Paso 0: Se inicializa f = 0 ( o cualquier flujo factible) y fij = 0 ∀ (i,j) ∈ A. Se construye la red incremental, que coincide con la original. Esto es, rij = kij para todo arco en la red original y se añade su opuesto con rji = 0. Sea δ = ∝. Sea hace i = s el nodo fuente, se marca con Predi = 0. Paso 1: Se elige un j ∈ Γ(i) no marcado tal que rij > 0 para el arco (i,j) y se marca con Predj = i. Se asigna δ = min{δ,rPredj j}. En caso de que no exista y si i = s parar ya que se ha alcanzado el máximo flujo posible que se puede enviar desde s a n. Si i ≠ s se hace i = Predi y se busca otro j ∈ Γ(i), no marcado con rij > 0. Paso 2: Si j = n, hacer f = f + δ, e ir al paso 3. En caso contrario, hacer i = j y repetir el paso 1. Paso 3: Cambiamos rPredj j = rPredj j - δ y rj Predj = rj Predj + δ. Hacer j = Predj, si j = s ir al paso 4. En otro caso, repetimos el paso 3. Paso 4: Se borran todas las marcas menos la de s, sea s = i. Se vuelve a asignar δ = ∝ y se va al paso 1.
  • 8. Ejemplo: Sea la siguiente red en la cual los números sobre los arcos representan las capacidades. 1 9 7 f=0 f=0 s n 3 9 8 2 Camino incremental 7 1 s n 3 8 2 1 9 4 3 f=3 f=3 s n 3 0 3 9 5 2
  • 9. Nuevo camino incremental 1 9 4 s n 1 5 0 7 4 f = 12 f = 12 s n 0 3 0 5 4 8 2 1 5 s n 3 4 2 1 7 0 7 2 f = 15 7 f = 15 s n 3 0 8 8 1 0 2
  • 10. Extensiones: Caso dirigido: Consideremos una red que contiene aristas en lugar de arcos. Dada una arista que conecta los nodos i y j, con capacidad K lo interpretamos como sigue: fij ≤ K fji ≤ K fij * fji = 0 En otras palabras, un máximo de K unidades de flujo es posible entre los nodos i y j en cualquier dirección, pero el flujo se permite en una única dirección. Tengamos en cuenta que el algoritmo visto anteriormente sólo se puede aplicar a redes dirigidas donde la dirección del flujo se especifica en todos los arcos. Para encontrar el flujo máximo en una red no dirigida primero convertimos la red en una red equivalente dirigida, y entonces aplicamos el método de etiquetado. Ejemplo: Consideremos una red de calles como se muestra en el grafo 1 30 3 40 50 s s 15 25 20 30 30 2 50 4
  • 11. Problema de flujo a coste mínimo.- Sea G = (V,A) un grafo con dos vértices fijos, s el nodo fuente y t el nodo destino. Cada arco (i,j) ∈ A tiene asociada una capacidad kij y un coste por unidad de flujo que circula por cada arco cij. Sea Φ la cantidad de flujo demandada desde el nodo t, para ser servida desde el nodo s. Entonces podemos plantear el problema de flujo a coste mínimo en los siguientes términos: enviar Φ unidades de flujo desde el nodo s al nodo t de G = (V,A) con el patrón de flujo cuyo coste asociado sea el mínimo, satisfaciendo las restricciones de capacidad y conservación en los nodos V – {s,t}. En este caso el patrón de flujo f de ser tal que : ∑f ij − ∑f ij =0 ∀ V − {s , t } j∈Γi + j∈Γi − Conservación del flujo ∑f sj = ∑f jt =Φ j∈Γs + j∈Γt − Restricciones de capacidad 0 ≤ f ij ≤ k ij ∀(i, j) ∈ A Mientras que el coste del patrón de flujo viene dado por Z( f ) = ∑c ( i , j )∈ A ij f ij Red residual.- La red residual R(f) correspondiente a un flujo f se define como sigue: Reemplazamos cada arco (i,j) ∈ A por dos arcos (i,j) y (j,i). El arco (i,j) tiene un coste cij y una capacidad residual de rij = kij – fij, y el arco (j,i) tiene un coste de cji = -cij y una capacidad residual de rji = fij. En la red residual se consideran sólo los arcos con capacidad positiva.
  • 12. Algoritmo de Busacker. El algoritmo de Busacker y Gowen (1961) intenta enviar las Φ unidades de flujo de s a t eligiendo en cada iteración el camino de mínimo coste de s a t, que envía un flujo igual al cuello de botella del camino. El algoritmo termina cuando se han enviado las Φ unidades de flujo, o no hay camino de s a t. En este último caso el problema no tiene solución. Denotamos: CT = coste total del camino que envía las Φ unidades CC = coste del camino mínimo que se calcula en cada iteración. Sea G = (V,A) un grafo dado, y s y t dos vértices fijados a priori. Paso 1: Asignar CT = 0. Construir la red incremental de G, y asignar ⎧k ij si (i, j ) ∈ A ⎧cij si (i, j ) ∈ A rij = ⎨ cij = ⎨ * ⎩0 en otro caso ⎩∞ en otro caso Paso 2: Buscar el camino mínimo de s a t en la red incremental usando el algoritmo de Ford, y almacenarlo en Predi ∀ i = s,...,t. Asignar a CC el coste de tal camino . Si no existe tal camino Parar, no hay solución factible. Sea δ = ∝ e i = t. Paso 3: Si i = s, hacer i = t e ir al Paso 4. En otro caso , si δ > rPredi,i entonces δ = rPredi,i . Hacer i = Predi y repetir el paso 3. Paso 4: Si Φ - δ > 0 entonces asignar θ = δ. En otro caso hacer θ = Φ.
  • 13. Paso 5: Si i = s, ir al Paso 6. En otro caso, rPredi,i = rPredi,i - θ, ri,Predi = ri,Predi + θ ci,Predi* = - cPredi,i* y para aquellos arcos tales que rPredi,i = 0 entonces cPredi,i* = ∝. Hacer i = Predi y repetir el Paso 5. Paso 6: Asignar CT = CT + θ * CC. Si Φ - δ > 0 hacer Φ = Φ - δ y buscar un nuevo camino de coste mínimo de s a t pero con los nuevos costes asignados a los arcos. Almacenarlo en Predi ∀ i = s,...,t y asignar a CC el coste de tal camino. Hacer δ = ∝ e i = t e ir al Paso 3. En otro caso de que no exista tal camino, parar puesto que no existe solución factible. Si Φ - δ ≤ 0, parar hemos encontrado el camino de flujo a coste mínimo. Ejemplo: (5,20) 1 2 (3,18) (5,14) s (4,15) t (8,12) (8,20) (3,17) 3