Está en la página 1de 3

Computacin I

Unidad 3. Redes
Actividad 2. Teoremas y algoritmos de flujo
Presenta: Maritza Finkenthal


1
Investiga sobre los siguientes temas:
a. Algoritmo de Ford-Fulkerson.

i. Descripcin.

El algoritmo de Ford-Fulkerson propone buscar caminos en los que se pueda aumentar el flujo,
hasta que se alcance el flujo mximo. Es aplicable a los Flujos maximales. La idea es encontrar una
ruta de penetracin con un flujo positivo neto que una los nodos origen y destino. Su nombre viene
dado por sus creadores, L. R. Ford, Jr. y D. R. Fulkerson.

Considrese cualquier camino dirigido del origen al destino en la red de flujos. Sea x la mnima de
las capacidades de las aristas no usadas en el camino. Es posible incrementar el flujo de la red al
menos en x, incrementando el flujo de las aristas del camino en dicho monto. De esta forma se
obtiene el primer intento de flujo en la red. Luego debemos encontrar otro camino, incrementar el
flujo en el camino, y continuar hasta que todos los caminos del origen al destino tengan al menos
una arista llena (el flujo usa toda la capacidad de la arista).
Las siguientes figuras ilustran el funcionamiento de esta estrategia sobre el grafo de ejemplo. La
secuencia de ilustraciones va de izquierda a derecha




Aunque esta estrategia calcula el flujo mximo en varios casos, tambin falla en muchos otros. Para
mejorar el algoritmo de tal manera de que siempre encuentre el flujo mximo, se debe considerar
una manera ms general de incrementar el flujo de origen a destino a travs del grafo no dirigido
subyacente. Las aristas de cualquier camino del origen al destino avanzan o retroceden.
Las aristas que avanzan van con el flujo y las que retroceden van en sentido contrario al flujo. Ahora
bien, para cada camino que no tenga aristas llenas que avancen ni aristas vacas (flujo cero) que
retrocedan, podemos incrementar la cantidad de flujo en la red incrementando el flujo en las
aristas que avanzan y decrementndo lo en las aristas que retroceden. La cantidad en la que el flujo
puede ser incrementado est limitada por la mnima capacidad que no haya sido usada en las
aristas que avanzan y los flujos de las aristas que retroceden.
Las siguientes figuras ilustran el funcionamiento de esta ltima estrategia en un nuevo grafo de
ejemplo. La secuencia de ilustraciones va de izquierda a derecha y de arriba hacia abajo.



Computacin I
Unidad 3. Redes
Actividad 2. Teoremas y algoritmos de flujo
Presenta: Maritza Finkenthal


2

Hasta este punto no se han tomado en cuenta las aristas en retroceso y se tiene un flujo cuyo valor
es 6. Ahora tratemos el camino 0 -1-2-3, pero usando la arista 2-1 que va en direccin contraria al
flujo.




Obsrvese que se le resto valor al flujo que retrocede para agregrselo a los que avanzan. Aqu se
obtiene un flujo de 7, que es el flujo mximo de esta red. En este momento ya no hay ms caminos
que no tengan aristas llenas que avancen o aristas vacas que retrocedan y el algoritmo culmina su
ejecucin.
Este proceso describe la base para el algoritmo clsico de Ford-Fulkerson (aumenting-path method)
para problemas de flujo mximo en redes. En resumen:
Se comienza con flujo nulo en todas partes. Luego se incrementa el flujo a lo largo de cualquier
camino de origen a destino que no tenga aristas llenas que avancen o aristas vacas que retrocedan.
Se contina hasta que no haya ms caminos como estos en la red.
Este mtodo siempre encuentra el flujo mximo, sin importar como se escojan los caminos.
Cuando las capacidades son valores enteros, el flujo se incrementa en al menos una unidad en cada
iteracin, as que la terminacin es finita. Ms an, para un grafo con V nodos y A aristas con
capacidades enteras positivas, el algoritmo ejecuta un mximo de V*A iteraciones para encontrar el
flujo mximo.

Mtodo Algoritmo de Ford-Fulkerson

Este mtodo depende de tres ideas importantes: Camino de aumento y red residual.
Este mtodo es iterativo. Se comienza con f(u,v) =0 para cada par de nodos.
En cada iteracin se incrementa el valor del flujo buscando un camino de aumento, el cual es un
camino desde la fuente al resumidero que puede conducir ms flujo.

Ford-Kulkerson_method(G,s,t)
inicializar flujo f a 0;
while (existe un camino de aumento p) do
aumentar el flujo f a lo largo de p;
return f;

Se repite el proceso previo hasta no encontrar un camino de aumento.
Capacidad residual : es la capacidad adicional de flujo que un arco puede llevar: cf(u,v)= c(u,v)-
f(u,v)
Dado una red de flujo G=(v,E) y un flujo f, la red residual : inducida por f es Gf=(V,Ef), con Ef={(u,v)
VxV: Cf(u,v)>0}

Computacin I
Unidad 3. Redes
Actividad 2. Teoremas y algoritmos de flujo
Presenta: Maritza Finkenthal


3

ii. Pseudocdigo

Es un lenguaje artificial e informal que ayuda a los programadores a desarrollar algoritmos. El Pseudocdigo
es similar al lenguaje cotidiano; es cmodo y amable con el usuario, aunque no es realmente in verdadero
lenguaje de computadora. No se ejecutan en las computadoras ms bien sirven para ayudar al
programadora razonar un programa antes de intentar escribirlo en algn lenguaje. Un programa ejecutado
en Pseudocdigo puede ser fcilmente convertido en un programa en C++, si es que est bien elaborado.
Por ejemplo supongamos que la nota para aprobar un examen es de 60. El enunciado en Pseudocdigo
sera:

Si calificacin >= 60 entonces
Mostrar "Aprobado"
FinSi

El mismo enunciado se puede escribir en C++ como:

if ( calif >= 60 )
cout << "Aprobado";







http://flujomaximo.wikispaces.com/Algoritmo+de+Ford-Fulkerson
http://www.omijal.org/pagina_c/algo.html
http://algoritmoyseudocodigoyaac.bligoo.com.co/media/users/33/1657103/files/616703/dalgoritmosalgoej
emplos-100528064701-phpapp01.pdf

También podría gustarte