Buenas,
Tengo un par de dudas respecto a estos dos ejercicios.
Ej1) Me quedó la duda leyendo libro, si para encontrar un corte mínimo es necesario previamente correr Ford-Fulkerson. Entiendo que si ya se corrió FF, se puede hacer BFS o DFS y encontrar todos los nodos alcanzables por el nodo fuente s en el grafo residual, pero en ese caso no estaría entendiendo el fín de encontrar el corte mínimo más que para dar una cota más ajustada que la de la suma de las capacidades saliendo de s = C.
Dicho de otra manera, ¿que utilidad tendría encontrar un corte de capacidad mínima si ya conozco el valor del flujo máximo (encontrado por ejemplo por el algoritmo de FF)?.
En el caso del ejercicio 1, en la parte b, ¿cómo yo podría saber a priori que el flujo no es máximo en base al corte A={s} y B=V-A de capacidad 3. No me vería obligado a correr FF para realmente hallar ese flujo?.
Ej3) Para demostrar la corrección del algoritmo, ¿Es necesario probar que se cumplen las condiciones de capacidad y de conservación?. Lo que creo que habría que demostrar es que el algoritmo termina y que devuelve la respuesta correcta (true si hay una forma de realizar un traslado, false de lo contrario).
Luego, el tiempo de ejecución me quedó acotado por O(n^{2} x k) ya que el grafo modelado tiene n x k aristas y se ejecuta por a lo sumo por n iteraciones del While de Ford-Fulkerson, ya que el grafo tiene un nodo por cada paciente (esto sería el X del grafo bipartito), y cada arista de p_i a h_j tiene capacidad 1, al igual de las que van de s a cada p_i. ¿Esta cota es correcta para el tiempo?.
Desde ya muchas gracias,
Marco.