Muchos algoritmos de flujo máximo que comúnmente veo implementados, el algoritmo de Dinic, el relé de empuje y otros, pueden mejorar su costo de tiempo asintótico a través del uso de árboles dinámicos (también conocidos como árboles de corte de enlace).
- Push reetiquetado se ejecuta normalmente en u u , pero con árboles dinámicos
- El algoritmo de Dinic se ejecuta en , pero con árboles dinámicos
Sin embargo, las implementaciones prácticas de algoritmos de flujo máximo en la mayoría de las bibliotecas no parecen hacer uso de esta estructura de datos. ¿Se utilizan árboles dinámicos en la práctica para el cálculo del flujo máximo? ¿O llevan demasiados gastos generales para ser útiles para los problemas del mundo real?
¿Hay otros dominios problemáticos en los que se usan árboles de corte de enlace?
Esta pregunta está relacionada con una pregunta que hice en teoría: ¿Son prácticos algunos de los algoritmos de flujo máximo de última generación?