Anda di halaman 1dari 3

1

Un Algoritmo Paralelo Para El Problema Del Flujo


M aximo
Martin Yarasca, Estudiante, UNI
ResumenEl problema del Flujo M aximo es uno de los
problemas m as fundamentales en la teora de redes de ujo y
ha sido ampliamente investigado. Existen muchos algoritmos
secuenciales para resolver este problema como es el caso del
algoritmo de Ford-Fulkerson, algoritmo Edmnonds-Karp,
algoritmo de Goldberg. En este artculo se presenta un
algoritmo paralelo para incrementar la eciencia al resolver
el problema del ujo m aximo. Todas las aristas en la red de
ujo son procesados simultanemamente en pasos paralelos
en cada iteraci on.
PalabrasClaveFlujo m aximo, Red de Flujo, Problema
del ujo m aximo, Algoritmo Paralelo.
I. INTRODUCCI

ON
E
N la teora de grafos, una red de ujo es un
grafo dirigdo donde cada arista tiene una
capacidad(c) y cada arista recibe un ujo(f). Un
ujo debe satisfacer la restricci on que la cantidad
de ujo que entra en un nodo debe ser igual a la
cantidad de ujo que sale de este, excepto cuando el
nodo es la fuente en la cual tiene m as salida de ujo
o cuando el nodo es el destino en la cual tiene m as
entrada de ujo. Una red de ujo puede ser usada
para modelar el tr aco en un sistema de carreteras,
uido en tuberias, corriente en circuitos el ectricos,
o algo similiar en la cual algo viaje a trav es de una
red de nodos. El problema de ujo m aximo trata
de encontrar la cantidad m axima de ese algo
que se envia desde la fuente (s) hacia el destino (t).
II. RED DE FLUJO
G(V, E) es una grafo dirigdo como se puede ver
en la Figura 1 en la cual cada arista e = (u, v) E
tiene una valor real no negativo como capacidad
c(u, v). Dos tipos de vertices son distinguidos: una
fuente S y un destino T. Una red de ujo es una
funci on real
f : V V R
La cantidad de ujo en una arista no puede exceder
la cantidad de ujo de la arista. Un ujo debe
Figure 1. Ejemplo de una red de ujo.
satisfacer las siguientes condiciones:
Restricciones de Capacidad: Para cada arista
(u, v) E se cumple: f(u, v) c(u, v)
Simetra: f(u, v) = f(v, u). El fujo de u a v
debe ser el opuesto de la red de ujo de v a u.
Conservaci on del Flujo:

wV
f(u, w) = 0
a excepci on de u = s, u = t. El ujo para un
nodo es cero.
El ujo de una red es la cantidad de ujo desde
un vertice s a un vertice t. El objetivo es determinar
la cantidad m axima de ujo que puede ser enviado
desde un vertice fuente a un vertice destino.
III. PROBLEMA DEL FLUJO M

AXIMO
El problema del ujo m aximo implica encontar
un ujo factible a trav es de una red de ujo con
una unica fuente y un unico destino adem as este
ujo debe ser el m aximo posible.
Sea G = (V, E) una red con s, t V como
fuente y destino de la red respectivamente. El valor
de el ujo de la red esta denido como |f| =

v:(s,v)E
f(s, v), donde s es la fuente de G. Esto
representa la cantidad de ujo que va de la fuente al
destino. El problema del ujo m aximo es maximizar
|f|.
2
IV. ALGORITMO FORD-FULKERSON
Sea G = (V, E) una grafo, y para cada arista
e = (u, v), sea c = (u, v) su capacidad y f(u, v) su
ujo. Nosotros queremos encontrar el ujo m aximo
de la fuente s al destino t.
El algoritmos de Ford-Fulkerson tiene dos pasos
principales. El primero es un proceso de etiquetado
que busca un camino de aumento de ujo en la red,
es decir un camino de s hasta t en el cual f < c a
lo largo de todo el recorrido de aristas y f > 0 a
lo largo de todas las aristas hacia atr as. Si en este
paso se encuentra un camino de aumento de ujo, el
segundo paso cambia el ujo. En otro caso no existe
camino de aumento de ujo entonces obtenemos el
m aximo ujo en la red. A continuaci on se detallan
los pasos:
El algoritmo empieza con un ujo f = 0. En
general, un nodo esta en uno de tres estados:
no-etiquetado, etiquetado y visitado, o etiquetado
y no-visitado.
Paso1. Inicializa, etiqueta la fuente (s, l(s) = );
Paso2. Seleciona cualquier nodo u, que esta
etiquetado y no-visitado(si no hay nodos
que estan etiquetados y no-visitados,
entonces el ujo actual es el ujo
m aximo). Para todos los nodos v N(u)
(donde N(u) es el conjunto de todos los
nodos vecinos de u, es decir (u, v) E
or (v, u) E). Si v esta no-etiquetado,
entonses:
If (u, v) E y f(u, v) <
c(u, v), entonses asignamos la etiqueta
(u, +, l(v)) al nodo v. Donde l(v) =
min(l(u), c(u, v) f(u, v));
If (v, u) E y f(v, u) >
0, entonses asignamos la etiqueta
(u, , l(v)) al nodo v. Donde l(v) =
min(l(u), f(v, u));
Luego u terminar a etiquetado y visitado,
mientras que el nodo v terminar a
etiquetado y no-visitado. Si la fuente t
esta etiquetado entonces ir al paso 3, sino
ir al paso 2.
Paso3. Sea x = t, entonces hacer el siguiente
trabajo hasta que x = s.
If la etiqueta de x es (y, +, l(x)),
entonces f(y, x) = f(y, x) + l(t)
If la etiqueta de x es (y, , l(x)),
entonces f(x, y) = f(x, y) l(t)
x = y
Ir al paso 1.
El algoritmo de Ford-Fulkerson es f acil de
implementar pero su complejidad de tiempo es
alta. Por adici on de caminos de aumento de ujo
para el ujo ya establecido en el grafo, el ujo
maximo ser a alcanzado cuando no exista ningun
otro camino de aumento de ujo en el grafo. Sin
embargo, no hay certeza que esta situaci on sea
alcanzada, lo que se puede garantizar es que la
respuesta ser a correcta si el algoritmo es terminado.
En el caso de que el algoritmo nunca termine,
el ujo no puede converger al ujo m aximo. Sin
embargo esta situaci on solo ocurre con valores
de ujo irracionales. Cuando las capacidades son
enteras, el tiempo de ejecuci on del algoritmo de
Ford-Fulkerson esta limitada por O(|E|f), donde
|E| es el numero de aristas en el grafo y f el ujo
m aximo en el grafo. Esto es debido a que cada
camino de aumento de ujo puede ser encontrado en
tiempo O(|E|) y aumenta el ujo en una cantidad
entera la cual es mnimo 1.
V. ALGORITMO PARALELO
La idea b asica del algoritmo paralelo es que todas
las aristas en E son procesados simultaneamente
en el Paso 2. A continuaci on se detalla el m etodo:
Paso1. Inicializa, etiqueta la fuente (s, l(s) = );
Paso2. Para cada arista (u, v) E, solo pueden
ocurrir dos situaciones:
u esta estiquetado y no-visitado, v
esta no-etiquetado y f(u, v) < c(u, v).
Si esto ocurre, entonces asignamos la
etiqueta (u, +, l(v)) al nodo v. Donde
l(v) = min(l(u), c(u, v) f(u, v))
dejando u etiquetado y visitado, y v
etiquetado y no-visitado.
v esta estiquetado y no-visitado, u
esta no-etiquetado y f(u, v) > 0.
Si esto ocurre, entonces asignamos la
etiqueta (v, +, l(u)) al nodo u. Donde
l(u) = min(l(v), f(u, v)) dejando v
etiquetado y visitado, y u etiquetado
y no-visitado.
Si el nodo destino t es etiquetado entonces
ir al paso 3, sino ir al paso 2.
3
Paso3. Sea x = t, entonces hacer el siguiente
trabajo hasta que x = s.
If la etiqueta de x es (y, +, l(x)),
entonces f(y, x) = f(y, x) + l(t)
If la etiqueta de x es (y, , l(x)),
entonces f(x, y) = f(x, y) l(t)
x = y
Ir al paso 1.
VI. DISCUSIONES Y TRABAJO FUTURO
En este artculo se propuso un algoritmo
paralelo para resolver el Problema del Flujo
M aximo, aprovechando el paralelismo para
mejorar el redimiento de la soluci on, calculando
simultaneamente los caminos de aumento para cada
arista. Se espera implementar el algoritmo y hacer
una comparaci on de rendimientos para corroborar
la mejora del rendimiento del algoritmo paralelo.
REFERENCES
[1] Ford.L.R can and D.R. Fulkerson, Maximal Flow Through a
Network. Can. J. Math. 8,399-404, 1956.
[2] J. Zhipeng, H. Xiaodong and G. Suixiang, A Parallel
Ford-Fulkerson Algorithm For Maximum Flow Problem.
INTERNATIONAL CONFERENCE ON PARALLEL
AND DISTRIBUTED PROCESSING TECHNIQUES AND
APPLICATIONS.
[3] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest,
Clif- ford Stein, Introduction to Algorithms (2 ed.) The MIT
Press.
[4] DINICE.A. Algorithm for Solution of a Problem of Maximum
Flow in Networks With Power Estimation Soviet Math. Dokl.
11, 1277- 1280. 1970.