Vous êtes sur la page 1sur 17

ALGORITMO FORD-FULKERSON

Matemática
Alumnos:
Computacional
• Jean Pierre Barcia Grupo 3b
• Christopher Elias
• Fabiola Loo
• Luis Moron
• Carlos Uribe

1
HISTORIA

 Delbert Ray Fulkerson junto con Lester Randolph


Ford, Jr., crearon el Algoritmo de Ford-Fulkerson,
uno de los algoritmos más utilizados para
computar el flujo máximo en una red de flujo.

 En 1962, L. R. Ford y D. R. Fulkerson desarrollaron


una técnica efectiva para resolver problemas de
flujo máximo. Es un método genérico para
aumentar la capacidad de los flujos
incrementalmente a lo largo de los caminos que
van del origen al destino, que sir ve como la base
para un familia de algoritmos. Esta técnica es
conocida como el método Ford-Fulkerson en la
literatura clásica, aunque también puede
encontrarse como el aumenting-path method.

2
 La idea detrás del algoritmo es el siguiente: mientras hay un camino desde el nodo
inicio al nodo final, con la capacidad disponible en todos los bordes de la ruta,
enviamos flujo a lo largo uno de los caminos. Luego encontramos otro camino, y así
sucesivamente. Un camino con la capacidad disponible se denomina trayectoria de
aumento.

3
ALGORITMO DEL FLUJOS

 Los algoritmos de flujos resuelven el problema de encontrar el


flujo máximo de una fuente a un sumidero respetando una serie
de restricciones.

 Los flujo siempre es positivo y con unidades enteras .


 El flujo atreves de un arco es menor o igual que la capacidad.
 El flujo que entra a un nodo es igual al que sale de el.

4
FLUJO MÁXIMO

 Existe un flujo que viaja desde un único lugar de origen hacia un único lugar de
destino a través de arcos que conectan nodos intermediarios. Los arcos tienen una
capacidad máxima de flujo y se trata de enviar desde la fuente al destina la mayor
cantidad posible de flujo.
 Hay problemas donde lo importante es la cantidad de flujo que pasa a través de la
red como por ejemplo: en las líneas de oleoductos, redes eléctricas o de
transmisión de datos. Por esta razón en dichos problemas se determina el flujo
máximo que pasa a través de una red.

5
FLUJO MÁXIMO

• El problema se puede resolver de forma eficiente pero no garantiza la solución optima.

• Posible algoritmo:
– Encontrar un camino cualquiera desde s hasta t.
– El máximo flujo que puede ir por ese camino es el mínimo coste de las aristas que lo
forman, m.
– Sumar m en el camino en F, y restarlo de G.

G 2 F 2
5 b d 2 b d
3 3
s 1 4 t s 1
0 t
3 2 4 3 2 2
a c a c
6
FLUJO MÁXIMO – FORD FULKERSON

 Para solucionar problemas de flujo máximo es necesario el uso del algoritmo de Ford –
Fulker son , este método consiste en encontrar caminos en los que se pueda aumentar el
flujo hasta finalmente alcanzar el flujo máximo.

7
FORD FULKERSON

Es un método iterativo que depende de tres ideas principales:


 Red residual
 Aumento de camino
 Cortes

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.

8
RED RESIDUAL

Es aquel camino de la fuente al sumidero donde todas las aristas en el camino


tienen un flujo residual mayor a cero.

Para una red de flujo y un flujo, la red residual es el conjunto de aristas que pueden
admitir más flujo.
12 / 12 12
G v1 v3 Gf v1 v3

7/7
1/4

s t s t

11

3
10

7
3
v2 v4 v2 v4
11 / 14 11

9
CAMINOS AUMENTANTES

• Un camino aumentante p en una red de flujo G=(V, E) y flujo f, es un camino simple de s


a t en la red residual Gf.
• Capacidad residual: es la máxima cantidad de flujo neto que se puede enviar por las
aristas de un camino aumentante.
• Se calcula por:
cf(p) = min{cf(u,v) (u,v) p}
Cf= min{5, 4, 5} = 4

12 / 12 12
G v1 v3
7/7
Gf v1 v3
1/4

s t s t

11

3
10

7
3
v2 v4 v2 v4 10
11 / 14
11
CORTE

Un corte define una serie de arcos cuya supresión de la red causa una interrupción completa del flujo
entre el origen y el destino. La capacidad de corte es igual a la suma de las capacidades de los arcos
asociados. Entre todos los cortes posibles en la red , el corte con la menor capacidad proporciona el
flujo máximo en la red.

11
 Nodo Origen : Nodo por el cual el flujo ingresa.
 Flujo : Circulación de unidades homogéneas de un lugar a otro.
 Capacidad de Flujo : Capacidad de flujo que puede entrar por el nodo
fuente y salir por el nodo destino.
 Nodo Destino : Nodo por el cual el flujo sale

12
 Resolución de un problema con flujo máximo:

 Para resolver un problema de flujo máximo se debe seguir los siguientes pasos:
 *Se identifica el nodo origen y destino.
 *Se parte desde el nodo de origen y se escoge el arco que posea mayor flujo
 *Se identifica los nodos de transbordo.
 *Repetir como si el nodo intermediario fuera el nodo origen.
 *Se calcula "k" y las capacidades nuevas.
 *Dado el resultado se cambian las capacidades y se repite el mismo procedimiento
desde el inicio.

13
APLICACIONES

• Sistema de vías públicas


• Transporte de petróleo desde la refinería
hasta diversos centros de
almacenamiento
• Distribución de energía eléctrica a través
de una red de alumbrado público
• Automóviles que circulan en una red de
carreteras
• Modelado flujo tuberías

14
ALGORITMO

 FORD-FULKERSON( f, s)
 Para cada arista (u, v) en el grafo f[u][v] = 0
 f[v][u] = 0
 Mientras exista un camino de flujo residual entre f y s incremento = min(cap(u,v)
tal que (u,v) está en el
 camino p)
 para cada arista (u,v) en el camino f[u][v] = f[u][v] +
incremento
 f[v][u] = -f[u][v]

J. Aguilar 20
SEUDOCÓDIGO

16
EJEMPLO

 Determinar el flujo máximo:

17

Vous aimerez peut-être aussi