Para el problema del flujo máximo , parece haber una serie de algoritmos muy sofisticados, con al menos uno desarrollado tan recientemente como el año pasado. El flujo máximo de Orlin en tiempo O (mn) o mejor da un algoritmo que se ejecuta en O (VE).
Por otro lado, los algoritmos que veo más comúnmente implementados son (no pretendo haber hecho una búsqueda exhaustiva; esto es solo por observación casual):
- Edmonds-Karp: ,
- Push-relabel: u usando la selección de vértice FIFO,
- Algoritmo de Dinic: .
¿Los algoritmos con mejor tiempo de ejecución asintótico simplemente no son prácticos para los tamaños de problemas en el mundo real? Además, veo que los "árboles dinámicos" están involucrados en bastantes algoritmos; ¿Se utilizan alguna vez en la práctica?
Nota: esta pregunta se hizo originalmente en el desbordamiento de pila, aquí , pero me dijeron que encajaría mejor aquí.
EDITAR : Hice una pregunta relacionada sobre cs.stackexchange , específicamente sobre los algoritmos que usan árboles dinámicos (también conocidos como árboles de enlace cortado), que pueden ser de interés para las personas que siguen esta pregunta.
fuente
Respuestas:
Soy uno de los autores del artículo vinculado anteriormente.
Solo quiero mencionar que usamos `` estado del arte '' para referirnos a algoritmos (con implementaciones disponibles públicamente) que funcionan bien en instancias de flujo máximo que surgen en la visión por computadora.
También me gustaría agregar que dentro de ese contexto estrecho (pero práctico), a menudo los algoritmos que funcionan bien son los que tienen pocas garantías teóricas. Por ejemplo, la referencia [5] de nuestro artículo (algoritmo Boykov-Kolmogorov) se usa ampliamente en la comunidad de visión por computadora, pero no tiene un límite de tiempo de ejecución fuertemente polimétrico.
Finalmente, en caso de que alguien esté interesado, los datos de nuestros experimentos están disponibles aquí: http://ttic.uchicago.edu/~dbatra/research/mfcomp/index.html
El código también estará disponible pronto.
fuente
Hay varias formas de responder esta pregunta, pero no necesariamente una respuesta consensuada. En general, los algoritmos que se han implementado y lanzado para distribución pública son "prácticos". sin embargo, algunos algoritmos que se han ideado pero aún no implementados pueden ser prácticos, pero "el jurado está fuera" de ellos, por así decirlo. **
Una buena estrategia para fines prácticos es buscar una encuesta. También para aquellos interesados en algoritmos prácticos, los puntos de referencia contra datos del mundo real pueden ser una pauta excelente en cuanto a su comportamiento esperado del "mundo real".
Una encuesta de evaluación comparativa puede ser suficiente, pero errará en el lado de los algoritmos viables. Este es un análisis empírico reciente y exhaustivo de 14 algoritmos de flujo máximo "de última generación" comparados empíricamente con instancias de procesamiento de visión, donde el flujo máximo tiene muchas aplicaciones. "estado del arte" se toma para referirse a algoritmos "implementados".
[1] MaxFlow Revisited: una comparación empírica de algoritmos de Maxflow para problemas de visión densa por Verma y Batra, 2012
** algunos algoritmos teóricos están cada vez más en una categoría en la comunidad de TCS a la que se hace referencia informalmente como "galáctico", pero desafortunadamente, los autores de TCS actualmente no auto etiquetan sus algoritmos en esta categoría, y no hay criterios publicados o generalmente aceptados para algoritmos "galácticos", aunque hay referencias en blogs .
La practicidad en este sentido es posiblemente una nueva dimensión emergente para el estudio teórico. idealmente habría una encuesta de algoritmos de flujo máximo específicamente en este eje / criterio "práctico", pero es probable que no exista al momento de la escritura. es un concepto más recientemente reconocido / reconocido en TCS que aún no se ha formalizado completamente (a diferencia de, por ejemplo, la aceptación generalizada de los algoritmos P como "eficientes").
fuente
Es posible que le interesen los flujos máximos por amplitud incremental-Búsqueda por Goldberg, Hed, Kaplan, Tarjan y Werneck
http://research.microsoft.com/pubs/150437/ibfs-proc.pdf http://www.cs.tau.ac.il/~sagihed/ibfs/
fuente