Red de flujo

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

En teoría de grafos, una red de flujo es un grafo dirigido donde existen dos vértices especiales, uno llamado fuente, al que se le asocia un flujo positivo y otro llamado sumidero que tiene un flujo negativo y a cada arista se le asocia cierta capacidad positiva. En cada vértice diferente a los dos especiales se mantiene la ley de corrientes de Kirchoff, en donde la suma de flujos entrantes a un vértice debe ser igual a la suma de flujos que salen de él. Puede ser utilizada para modelar el tráfico en un sistema de autopistas, fluidos viajando en tuberías, corrientes eléctricas en circuitos eléctricos o sistemas similares por lo que viaje algo entre nodos.

Descripción matemática[editar]

Una red de flujo es un grafo dirigido G = (V,E) en donde cada arco (u,v) \in E tiene una capacidad no negativa  c(u,v) \ge 0.

Se distinguen dos vértices: la fuente s y el destino t.

Se supone que cada vértice se encuentra en alguna ruta de s a t.

Un flujo en G es una función f: V \times V \mapsto R tal que

  • Restricción de capacidad: \forall \quad u,v \in V,\quad f(u,v) \le c(u,v)
  • Simetría: f(u,v) = - f(v,u) \,
  • Conservación: \forall u \in V - \left \{ s,t \right \} \quad \sum_{v \in V} f(u,v) = 0

El valor del flujo es |f| = \sum_{v \in V}f(s,v)

El problema del flujo máximo trata de maximizar este flujo.

Algoritmo de flujo máximo[editar]

Tenemos el conocido problema de flujo máximo o maximal: ¿cuál es la tasa mayor a la cual el material puede ser transportado de la fuente al sumidero sin violar ninguna restricción de capacidad?

En otras palabras, el problema consiste en determinar la máxima capacidad de flujo que puede ingresar a través de la fuente y salir por el nodo de destino.

El procedimiento para obtener el flujo máximo de una red, consiste en seleccionar repetidas veces cualquier trayectoria de la fuente al destino y asignar el flujo máximo posible en esa trayectoria.

Capacidad residual: es la capacidad adicional de flujo que un arco puede llevar:
c_{f}(u,v)= c(u,v) - f(u,v) \,
  • Dada una red de flujo máximo, plantee la red residual asociada.
  • Encuentre la trayectoria de la fuente al destino con capacidad de flujo estrictamente positivo (si no existe alguno, es por que se ha encontrado el óptimo).
  • Examine estas trayectorias para encontrar la rama o arco con la menor capacidad de flujo restante e incremente en éste valor, la capacidad del flujo en sentido contrario.
  • Determine todas las trayectorias estrictamente positivas, hasta que no se permita flujo del nodo a un nodo destino.


Podemos, mediante el Algoritmo de Ford-Fulkerson, encontrar el flujo máximo de una red.