¿Cuál es la explicación intuitiva para agregar flujo en bordes inversos en el algoritmo de flujo máximo? ¿Por qué necesitamos eso?

El algoritmo maxflow calcula el flujo en estado estacionario , no el volumen de fluido.

Si comprende la afirmación anterior, también podrá comprender la intuición.

Considere las capacidades de red dadas.

Podemos ver que hay 4 caminos en aumento

  1. E-> C-> A-> S
  2. E-> C-> D-> B-> S
  3. F-> D-> C-> A-> S
  4. F-> D-> B-> S

Elija la ruta 2, es decir: E-> C-> D-> B-> S

Claramente, esto agrega 10 unidades al flujo estable (bordes verdes), pero no es lo mejor, ya que ahora no nos quedan rutas de aumento debido al cuello de botella en C-> D, pero podríamos haber tenido Un flujo estable de 20 unidades.

Aquí surge la idea de maximizar el flujo estable, sin tener en cuenta el volumen de fluido en la red. Después de insertar 10 unidades de fluido verde en la ruta E-> C-> D-> B-> S, podemos comenzar a insertar fluido rojo en el borde F-> D 1 unidad a la vez, hasta 10 unidades. Los fluidos verde y rojo no se mezclan entre sí. Veamos cómo se ve la red después de inyectar 1 unidad de líquido rojo en F-> D.

Tenga en cuenta que los números en los bordes denotan la presión ejercida en ese borde por los fluidos. por ejemplo: c-> d tiene 10 unidades de presión ya que el nodo C recibe 10 unidades de fluido.

Después de inyectar 10 unidades de fluido, tendremos la siguiente red:

Y esa es la intuición detrás de los bordes inversos. En palabras simples, empuja el líquido hacia atrás, forzándolo en un camino diferente y dejando algo de líquido estancado en la red mientras lo hace.

More Interesting

¿Existe un formato estandarizado para representar las funciones de la computadora como algoritmos matemáticos?

¿Qué son las estructuras autorreferenciales?

¿Es necesario pensar en una solución recursiva primero antes de proceder a resolver un problema de DP?

¿Qué estructuras de datos y algoritmos deben conocer todos los estudiantes de ciencias de la computación / ingeniería?

¿Puede enumerar algunos de los libros más importantes / definitivos sobre informática, algoritmos, diseño de software, estructuras de datos, redes?

¿Cuál es el peor caso, el caso promedio y la mejor complejidad de tiempo de un algoritmo?

¿Se conoce algún algoritmo general para factorizar números muy grandes?

¿Podría dar un algoritmo que calcule la puntuación máxima de la mejor alineación de secuencia (S ', T') de S y T?

Ahora he leído sobre algoritmos y estructuras de datos como Al Klein me dijo. ¿Qué lenguaje de programación debo aprender?

Cómo elegir el algoritmo de selección de funciones correcto

¿Cómo asigno enteros de o a n en una matriz bidimensional en Java?

¿Puedo adoptar un enfoque de alto nivel para aprender Machine Learning sin molestar a los matemáticos detrás de los algoritmos de ML?

Cómo encontrar la submatriz cuadrada máxima con todas en una matriz booleana de tamaño mxn

¿Cómo debo comenzar a aprender estructuras de datos y algoritmos? ¿Cuáles son algunos buenos libros, cursos en línea e idiomas preferidos?

¿Cuál es la forma más fácil de animar el algoritmo de Dijkstra para Power Point Presentation?