MCOM1 _U3_A2_LUHM



Comments



Description

1Computacion I Unidad 3. Redes Actividad 2. Teoremas y algoritmos de flujo Investiga sobre los siguientes temas: a. Algoritmo de Ford-Fulkerson. i. Descripcion. El algoritmo de Ford-Fulkerson propone buscar caminos en los que se pueda aumentar el flujo, hasta que se alcance el flujo maximo. Es aplicable a los Flujos maximales. La idea es encontrar una ruta de penetracion con un flujo positivo neto que una los nodos origen y destino. Su nombre viene dado por sus creadores, L. R. Ford, Jr. y D. R. Fulkerson. Considerese cualquier camino dirigido del origen al destino en la red de flujos. Sea x la minima de las capacidades de las aristas no usadas en el camino. Es posible incrementar el flujo de la red al menos en x, incrementando el flujo de las aristas del camino en dicho monto. De esta forma se obtiene el primer intento de flujo en la red. Luego debemos encontrar otro camino, incrementar el flujo en el camino, y continuar hasta que todos los caminos del origen al destino tengan al menos una arista llena (el flujo usa toda la capacidad de la arista). Las siguientes figuras ilustran el funcionamiento de esta estrategia sobre el grafo de ejemplo. La secuencia de ilustraciones va de izquierda a derecha Aunque esta estrategia calcula el flujo maximo en varios casos, tambien falla en muchos otros. Para mejorar el algoritmo de tal manera de que siempre encuentre el flujo maximo, se debe considerar una manera mas general de incrementar el flujo de origen a destino a traves del grafo no dirigido subyacente. Las aristas de cualquier camino del origen al destino avanzan o retroceden. Las aristas que avanzan van con el flujo y las que retroceden van en sentido contrario al flujo. Ahora bien, para cada camino que no tenga aristas llenas que avancen ni aristas vacfas (flujo cero) que retrocedan, podemos incrementar la cantidad de flujo en la red incrementando el flujo en las aristas que avanzan y decrementando lo en las aristas que retroceden. La cantidad en la que el flujo puede ser incrementado esta limitada por la minima capacidad que no haya sido usada en las aristas que avanzan y los flujos de las aristas que retroceden. Las siguientes figuras ilustran el funcionamiento de esta ultima estrategia en un nuevo grafo de ejemplo. La secuencia de ilustraciones va de izquierda a derecha y de arriba hacia abajo. 2 Hasta este punto no se han tomado en cuenta las aristas en retroceso y se tiene un flujo cuyo valor es 6. Ahora tratemos el camino 0 -1-2-3, pero usando la arista 2-1 que va en direccion contraria al flujo. cap. flujo Observese que se le resto valor al flujo que retrocede para agregarselo a los que avanzan. Aquf se obtiene un flujo de 7, que es el flujo maximo de esta red. En este momento ya no hay mas caminos que no tengan aristas llenas que avancen o aristas vacfas que retrocedan y el algoritmo culmina su ejecucion. Este proceso describe la base para el algoritmo clasico de Ford-Fulkerson (aumenting-path method) para problemas de flujo maximo en redes. En resumen: Se comienza con flujo nulo en todas partes. Luego se incrementa el flujo a lo largo de cualquier camino de origen a destino que no tenga aristas llenas que avancen o aristas vacfas que retrocedan. Se continua hasta que no haya mas caminos como estos en la red. Este metodo siempre encuentra el flujo maximo, sin importar como se escojan los caminos. Cuando las capacidades son valores enteros, el flujo se incrementa en al menos una unidad en cada iteracion, asf que la terminacion es finita. Mas aun, para un grafo con V nodos y A aristas con capacidades enteras positivas, el algoritmo ejecuta un maximo de V*A iteraciones para encontrar el flujo maximo. Metodo Algoritmo de Ford-Fulkerson • Este metodo depende de tres ideas importantes: Camino de aumento y red residual. • Este metodo es iterativo. Se comienza con f(u,v) =0 para cada par de nodos. • En cada iteracion se incrementa el valor del flujo buscando un camino de aumento, el cual es un camino desde la fuente al resumidero que puede conducir mas flujo. Ford-Kulkerson_method(G,s,t) inicializar flujo f a 0; while (existe un camino de aumento p) do aumentar el flujo f a lo largo de p; return f; * Se repite el proceso previo hasta no encontrar un camino de aumento. • Capacidad residual : es la capacidad adicional de flujo que un arco puede llevar: cf(u,v)= c(u,v)- f(u,v) • Dado una red de flujo G=(v,E) y un flujo f, la red residual : inducida por f es Gf=(V,Ef), con Ef={(u,v) VxV: Cf(u,v)>0} 3 2 2-1 1 0 2-3 3 2 Computacion I Unidad 3. Redes Actividad 2. Teoremas y algoritmos de flujo 3 Computacion I Unidad 3. Redes Actividad 2. Teoremas y algoritmos de flujo ii. Pseudocodigo Es un lenguaje artificial e informal que ayuda a los programadores a desarrollar algoritmos. El Pseudocodigo es similar al lenguaje cotidiano; es comodo y amable con el usuario, aunque no es realmente in verdadero lenguaje de computadora. No se ejecutan en las computadoras mas bien sirven para ayudar al programadora razonar un programa antes de intentar escribirlo en algun lenguaje. Un programa ejecutado en Pseudocodigo puede ser facilmente convertido en un programa en C++, si es que esta bien elaborado. Por ejemplo supongamos que la nota para aprobar un examen es de 60. El enunciado en Pseudocodigo seria: Si calificacion >= 60 entonces Mostrar "Aprobado" FinSi El mismo enunciado se puede escribir en C++ como: if ( calif >= 60 ) cout << "Aprobado"; http://flujomaximo.wikispaces.com/Algoritmo+de+Ford-Fulkerson http://www.omijal.org/pagina c/algo.html http://algoritmoyseudocodigoyaac.bligoo.com.co/media/users/33/1657103/files/616703/dalgoritmosalgoej emplos-100528064701-phpapp01.pdf
Copyright © 2024 DOKUMEN.SITE Inc.