Giter Site home page Giter Site logo

diramtz / practica-1-segunda-parte-diramtz Goto Github PK

View Code? Open in Web Editor NEW

This project forked from optimizacion-2-2021-1-gh-classroom/practica-1-segunda-parte-diramtz

0.0 0.0 0.0 3.15 MB

practica-1-segunda-parte-diramtz created by GitHub Classroom

Jupyter Notebook 82.71% Python 15.63% Dockerfile 1.66%

practica-1-segunda-parte-diramtz's Introduction

Equipo 2

Práctica 1

Segunda Parte

Integrante User Tarea
Ana @AnaTorresR Documentación y uso de paquetes
Dira @diramtz Documentación y uso de paquetes
Iván @IvanSalgadoVel Documentación y uso de paquetes y Project manager

Algoritmo Ford Fulkerson.

Flujo Máximo

El algoritmo de Ford-Fulkerson propone buscar caminos en los que se pueda aumentar el flujo, hasta que se alcance el flujo máximo. Es aplicable a los Flujos maximales. La idea es encontrar una ruta 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.

Sea G(V,E) un grafo, con V vértices, E aristas y donde por cada arista (u,v), tenemos una capacidad c(u,v) y un flujo f(u,v). Se busca maximizar el valor del flujo desde una fuente s hasta un sumidero t.

El método inicia con f(u,v)=0 para toda (u,v) en V. En cada iteración, se incrementa el flujo en G mediante el resultado de una búsqueda de un camino de aumento en una red residual $G_f$. Aunque cada iteración del método Ford-Fulkerson aumenta el valor del flujo. En cada iteración el flujo se aumentará hasta que la red $G_{f}$ no tenga más caminos de aumento.

El flujo a aumentar se debe considerar legal, es decir:

El flujo de para toda arista (u,v) no debe ser mayor que la capacidad de dicha arista.
El flujo que sale de la fuente s debe ser igual al que llega al sumidero t.

Nota: En una red con fuente s y sumidero t único el valor máximo que puede tomar un flujo variable es igual a la capacidad mínima que puede tomar un corte.

Red residual

Definimos una red residual $G_{f}(V,E)$ como la red donde la capacidad de cada una de las aristas se define como $c_{f}(u,v) = c(u,v) − f(u,v)$ , donde c(u,v) es la capacidad de la arista y el flujo f(u,v) es el flujo de la arista (u,v) en el camino de aumento seleccionado.

Intuitivamente, dado el grafo G y un camino de aumento $c_{F}$ , la red residual $G_{f}$ consiste en el grafo que representa el como cambia la capacidad de cada una de las aristas con respecto al flujo del camino de aumento $c_{F}$ en el grafo G.

Caminos de aumento

Un camino de aumento es un camino dirigido de la fuente s al sumidero t en $G_{f}$, donde la capacidad del camino de aumento es el mínimo de las capacidades de sus aristas.

Pseudocódigo

Ford-Fulkerson(G,s,t) { 
Gf = Crear_grafo_residual(G);
for (cada arista (u,v) de E) { 
    f[u,v]= 0;
} 
while (exista un camino p desde s a t en la red residual Gf) { 
    cf(p) = min{cf(u,v): (u,v) está sobre p};
    for (cada arista (u,v) en p) { 
        f[u,v]= f[u,v] + cf(p); 
        f[v,u]= f[v,u] - cf(p); 
    }
    Actualizar_grafo_residual(Gf);
} 

}

Prueba nuestro paquete dando click en el botón de Binder Binder. Puedes jugar con el notebook prueba_paquete.ipynb

Si deseas consultar la documentación de nuestro paquete ffmaxflow da click aquí

Docker

Para correr nuestra imagen de docker sigue las instrucciones que se encuentran en la carpeta dockerfiles

Referencias

Algoritmo Ford Fulkerson

Libro optimización nota 4.2

Ford Fulkerson Python

Sphinx

example-python-package-and-sphinx-doc

practica-1-segunda-parte-diramtz's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.