Su problema puede reducirse al problema del problema de flujo de costo mínimo.
Deje que [math] f (u, v) [/ math] sea el flujo a través del borde [math] uv [/ math] y [math] c (u, v) [/ math] sea la capacidad del borde.
Como en una unidad de tiempo, exactamente una unidad de flujo puede fluir a través de un borde, sabemos que si [math] f (u, v) [/ math] es el flujo a través del borde [math] uv [/ math], debe fluir en [math] f (u, v) [/ math] unidades de tiempo.
Entonces, el problema de optimización que estamos tratando de resolver es minimizar [math] \ sum \ limits_ {uv \ in E} ^ {} f (u, v) [/ math] dado que también satisfacemos las limitaciones de capacidad [math] f (u, v) \ le c (u, v) [/ math] y otras propiedades de flujo necesarias. Esto se debe a que en lugar de minimizar la suma del tiempo necesario, simplemente podemos minimizar la suma de los flujos (ya que son iguales).
- ¿Cuáles son algunas características de los datos de imágenes faciales que se pueden utilizar para alimentar los algoritmos de aprendizaje automático?
- ¿Resolver problemas en Topcoder / Codeforces es una buena manera de aprender Java Collections Framework?
- ¿Cómo se distribuye el pagerank?
- ¿Debería concentrarme en dominar algoritmos y estructuras de datos o desarrollar una buena aplicación? ¿Qué es más necesario a largo plazo?
- ¿Cuáles son las ventajas y desventajas de la búsqueda A * y el algoritmo de Dijkstra? ¿Cuándo se debe usar cada uno?
Este problema descrito anteriormente es exactamente el problema del flujo de costo mínimo donde asignamos un costo [matemático] a (u, v) = 1 [/ matemático].
Entonces, nuestro costo total [matemáticas] \ sum \ limits_ {uv \ en E} ^ {} a (u, v) f (u, v) = \ sum \ limits_ {uv \ en E} ^ {} f (u, v) [/ matemáticas]
El problema del flujo de costo mínimo también se puede resolver de manera eficiente en [matemáticas] O (m ^ 2) [/ matemáticas] y creo que hay algoritmos más recientes que se ejecutan aún más rápido.