Flujo Máximo. Agustín J. González ELO320: Estructura de Datos y Algoritmos 1er. Sem. 2002



Documentos relacionados
Modelos de Redes: Problema del flujo máximom. M. En C. Eduardo Bustos Farías

Tema 6: Problemas Especiales de Programación Lineal

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1

Clase martes 27 de noviembre 2007 (problemas de repaso)

Algoritmos sobre Grafos

Informática Aplicada a la Gestión de Empresas (IAGE) Parte III Excel e Internet Tema 2

FUNDACIÓN UNIVERSITARIA LUÍS AMIGÓ

Introducción a la Teoría de Grafos

OPTIMIZACIÓN Y SIMULACIÓN PARA LA EMPRESA. Tema 2 Programación Lineal

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III

Unidad II: Análisis de Redes

_ Antología de Física I. Unidad II Vectores. Elaboró: Ing. Víctor H. Alcalá-Octaviano

Unidad 5 Utilización de Excel para la solución de problemas de programación lineal

MICROECONOMÍA II PRÁCTICA TEMA III: MONOPOLIO

Ejercicios de Programación Lineal

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

Teoría del Juego - Juegos Combinatoriales Imparciales

Tipo de máquina Tiempo disponible. (h/maq. Por semana) Fresadora 500 Torno 350 Rectificadora 150

Resolución de Problemas

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1

Para poder tener una buena imagen de las empresas y plena confianza en lo que nos presentan éstas deben:

Experimento 6 LAS LEYES DE KIRCHHOFF. Objetivos. Teoría. Figura 1 Un circuito con dos lazos y varios elementos

Planificación y administración de redes

Comente: Los bancos siempre deberían dar crédito a los proyectos rentables. Falso, hay que evaluar la capacidad de pago.

C. Elaboración de la respuesta a la primera cuestión: Segundo paso. A. Lectura comprensiva de la segunda pregunta:

❷ Aritmética Binaria Entera

Método PERT-CPM y gráficas GANTT

35 Facultad de Ciencias Universidad de Los Andes Mérida-Venezuela. Potencial Eléctrico

CLASE # 5 TÉCNICAS DE CAJA BLANCA

Resumen de técnicas para resolver problemas de programación entera Martes, 9 de abril. Enumeración. Un árbol de enumeración

Tarea 7 Soluciones. Sol. Sea x el porcentaje que no conocemos, entonces tenemos la siguiente. (3500)x = 420. x = = 3 25

U.D.5: Diagramas de Gantt y PERT

Curso de Excel Avanzado

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres

Programación Lineal Continua/ Investigación Operativa. EJERCICIOS DE INVESTIGACIÓN OPERATIVA. Hoja 1

POR QUÉ EL VALOR PRESENTE NETO CONDUCE A MEJORES DECISIONES DE INVERSIÓN QUE OTROS CRITERIOS? ( Brealey & Myers )

3. MODELO MACROECONOMICO. 3.1 Oferta y demanda agregada nacional y su efecto en la economía internacional

1. LA EVALUACION DEL DESEMPEÑO LABORAL. 1.2 Objetivos de la evaluación del desempeño laboral.

4. SISTEMAS DE COSTOS P OR PROCESOS

A.2. Notación y representación gráfica de vectores. Tipos de vectores.

Tema 7: Optimización sobre Redes Muchos de los problemas de Investigación Operativa pueden modelizarse y resolverse sobre un grafo: conjunto de

Matrices Invertibles y Elementos de Álgebra Matricial

Nivelación de Matemática MTHA UNLP 1. Vectores

Capítulo 3. Cómo evaluar un proyecto de inversión.

Ejemplo del modelo de generaciones solapadas

Tema 4: Ahorro óptimo y crecimiento económico

Apuntes de Grafos. 1. Definiciones

Curso Taller de Matemáticas Olímpicas. Principio Fundamental del Conteo

Unidad 3 Direccionamiento IP (Subnetting)

VECTORES. Se representa gráficamente por medio de una flecha, por ejemplo: Todos los vectores poseen las siguientes características:

1. Vectores 1.1. Definición de un vector en R2, R3 (Interpretación geométrica), y su generalización en Rn.

Funciones definidas a trozos

EL MÉTODO SIMPLEX ALGEBRAICO: MINIMIZACION. M. En C. Eduardo Bustos Farías

Guía del docente. 1. Descripción curricular:

Unidad III: Programación no lineal

Desarrollos de los trabajos para la certificación del Emprendimiento de Calidad en Extremadura Emprendimiento de Calidad. BADAJOZ Julio 2014

Módulo 9 Sistema matemático y operaciones binarias

El modelo EOQ básico (Economic Order Quantity) es el más simple y fundamental de todos los modelos de inventarios.

2.2 Transformada de Laplace y Transformada Definiciones Transformada de Laplace

1. Magnitudes vectoriales

EL MÉTODO DE LA BISECCIÓN

SISTEMAS DE INFORMACIÓN CONTABLE Y ADMINISTRATIVO.

Estructuras de Datos y Algoritmos. Árboles de Expresión

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014

Proyecto Help Desk en plataforma SOA Alcance del Sistema Versión 1.2. Historia de revisiones

CADENA DE VALOR ALGUNOS PUNTOS IMPORTANTES

TEMA 3 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 3. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

PLANIFICACIÓN DE LA SESIÓN DE APRENDIZAJE. Duración: 2 horas pedagógicas. Cuidamos nuestra salud

Tema 1:La empresa y el sistema económico

Notas de Clase. Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia. 21 de febrero de 2004

Ventajas: Es posible llevar los mensajes de un nodo a otro por diferentes caminos. No puede existir absolutamente ninguna interrupción en las

El mediador es un programa escrito en Java diseñado para interactuar con un servidor

MÁQUINAS DE VECTORES DE SOPORTE

Guía breve para la. Versión abreviada del Manual para la. evaluación de desempeño y potencial

INFORME SOBRE LA NATURALEZA Y MAGNITUD ASOCIADAS AL SUBSIDIO DE LA GASOLINA EN VENEZUELA

Problemas del transporte

Optimización, Solemne 2. Semestre Otoño 2012 Profesores: Paul Bosch, Rodrigo López, Fernando Paredes, Pablo Rey Tiempo: 110 min.

OPCION A ECONOMÍA Y ORGANIZACIÓN DE EMPRESAS - JUNIO DE

PARTE 3 ECUACIONES DE EQUIVALENCIA FINANCIERA T E M A S

d s = 2 Experimento 3

ANÁLISIS DE DATOS NO NUMERICOS

a < b y se lee "a es menor que b" (desigualdad estricta) a > b y se lee "a es mayor que b" (desigualdad estricta)

CAPÍTULO 4: ALGORITMOS DE APRENDIZAJE

INTRODUCCIÓN A LA ECONOMIA II

Teoría de las decisiones y de los juegos Grupo 51 Ejercicios - Tema 3 Juegos dinámicos con información completa (0, 2) 2 D (3, 0) 1 B I

Aplicación de la inteligencia artificial a la resolución del problema de asignación de estudiantes del departamento de PDI

HERRAMIENTAS DE EXCEL PARA EL ANALISIS Y VALORACION DE PROYECTOS DE INVERSION (I)

Tema 2 Límites de Funciones

ÍNDICE DE CONTENIDOS. Concepto de Economía La curva de Transformación Problemas económicos. fundamentales LA EMPRESA Y EL SISTEMA ECONÓMICO

PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ

4.3 INTERPRETACIÓN ECONÓMICA DE LA DUALIDAD

Programación I: Funciones y módulos

Programación Lineal Entera

Tema 5. Diseño detallado.

Análisis de propuestas de evaluación en las aulas de América Latina

4.0 Inducción hacia atrás y Equilibrio de Nash Perfecto en

Unidad IV. Volumen. Le servirá para: Calcular el volumen o capacidad de diferentes recipientes o artefactos.

ENSEÑA A TU HIJO HABILIDADES SOCIALES Y A SOLUCIONAR SUS PROBLEMAS

Programación Genética

Transcripción:

Flujo Máximo Agustín J. González ELO320: Estructura de Datos y Algoritmos 1er. Sem. 2002 1

Introducción Así como modelamos los enlaces de una red y sus nodos como un grafo dirigido, podemos interpretar el grafo como una red de flujo de algún material. Una fuente produce material en forma estacionaria y un resumidero lo consume. Cada arco puede ser considerado como un conducto de cierta capacidad. Como con la ley de corrientes de Kirchhoff, la suma de flujos entrantes a un vértice debe ser igual a la saliendo del vértice. Problema de flujo máximo: Cual es la tasa mayor a la cual el material puede ser transportado de la fuente al resumidero sin violar ninguna restricción de capacidad? 2

Redes de flujo Una red de flujo es un grafo dirigido G=(V,E) en donde cada arco (u,v) E tiene una capacidad no negativa c(u,v) 0. Se distinguen dos vértices: la fuente s y el resumidero t. Se asume que cada vértice se encuentra en alguna ruta de s a t. Un flujo en G es una función f: VxV----> R tal que Restricción de capacidad: u,v en V, f(u,v) c(u,v) Simetría: f(u,v) = - f(v,u) Conservación: u en V-{s,t v en V f(u,v) = 0 El valor del flujo es f = v en V f(s,v) El problema del flujo máximo trata de maximizar este flujo. 3

Ejemplo 16 v1 12 v3 20 s 10 4 9 7 t 13 4 v2 14 v4 11/16 v1 12/12 v3 15/20 s 10 1/4 4/9 7/7 t 8/13 v2 11/14 v4 4/4 f(u,v)/c(u,v) si f(u,v) 0 no se anota 4

Múltiples fuentes y resumideros Si hay múltiples fuentes y resumideros, el problema se puede reducir al caso simple previo de una fuente y un resumidero. Supongamos que se tiene {s1,s2,s3,..sm fabricas y {t1,t2,t3,..,tn puntos de venta. s1 t1 s s2 t2 t s3 t3 s4 5

Método de Ford-Fulkerson Este método depende de tres ideas importantes: Camino de aumento y red residual. Este método es iterativo. Se comienza con f(u,v) =0 para cada par de nodos. En cada iteración 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: c f (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 G f =(V,E f ), con E f ={(u,v) VxV: c f (u,v)>0 6

Ejemplo: Red residual / camino de aumento Red previa Red residual para a) Capacidad residual Flujo resultante al aumentar capacidad residual Red residual inducida por c) Capacidad residual: es la capacidad adicional de flujo que un arco puede llevar: c f (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 G f =(V,E f ), con E f ={(u,v) VxV: c f (u,v)>0 7

Camino de aumento Es un camino de aumento p es un camino simple de s a t en el grafo residual G f Por definición de red residual, cada arco (u,v) sobre el camino aumentado admite algún flujo neto positivo desde u a v sin violar la restricción de capacidad. El flujo adicional máximo está dado por: c f (p)= min{c f (u,v) : (u,v) está sobre p 8

Algoritmo básico Ford-Fulkerson Ford-Fulkerson(G,s,t){ for (cada arco (u,v) de E) { f[u,v]= 0; f[v,u]= 0; while (exista un camino p desde s at en la red residual G f ) { c f (p) = min{c f (u,v) : (u,v) está sobre p; for (cada arco (u,v) en p) { f[u,v]= f[u,v] + c f (p) ; f[v,u]= - f[u,v]; 9

Ford-Fulkerson(G,s,t){ for (cada arco (u,v) de E) { f[u,v]= 0; f[v,u]= 0; while (exista un camino p desde s at en la red residual G f ) { c f (p) = min{c f (u,v) : (u,v) está sobre p; for (cada arco (u,v) en p) { f[u,v]= f[u,v] + c f (p) ; f[v,u]= - f[u,v]; Ejemplo: Algoritmo básico Ford- Fulkerson a) a d) son las iteraciones del loop while. Lado izquierdo están las redes residuales con al camino de aumento A la derecha las red resultante al agregar el flujo f p La última red residual no tiene camino de aumento, luego la red de la cual se induce es de flujo máximo 10

Análisis de Ford-Fulkerson Si el camino de aumento es elegido usando breadth-first search (o búsqueda por niveles o amplitud), el algoritmo corre en tiempo polinomial. En este caso el método de Ford-Fulkerson es conocido como algoritmo de Edmonds-Karp. El algoritmo tiene un costo inicial O(E) El cuerpo del loop toma un tiempo O(E) dado que en el ciclo for se procesa cada arco del camino de aumento. Luego se puede demostrar que el numero de aumentos de flujo esta acotado por O(VE). Esta cota es obtenida considerando que al aumentar el flujo al menos un arco del camino de aumento desaparece (el que tenia capacidad residual mínima. La eliminación de arcos hace aumentar la distancia desde el nodo de partida. El mismo arco podría reaparecer posteriormente, pero con distancia aun mayor de la fuente. Así el numero de veces que un arco pude aparecer esta acotado por el numero de nodos -2 (distancia máxima posible). Como hay E arcos, el numero total de caminos de aumentos es O(VE). Así el costo del algoritmo es O(VE 2 ) 11 Hay otros algoritmos que obtienen O(V 2 E) y otro O(V 3 ).

Asociación bipartita máxima Dado un grafo no dirigido G=(V,E), una asociación es un subconjunto de arcos M E tal que para cada vértice v de V, a lo mas un arco de M es incidente sobre v. La máxima asociación es la asociación de cardinalidad máxima. Restringiremos el problema a encontrar la asociación máxima en un grafo bipartito. En este se puede particionar V en V=L R, donde L y R son disjuntos y todos los arcos de E están entre L y R. L pueden ser maquinas y R tareas y se desea asociarlas para desarrollarlas en paralelo. 12

Búsqueda de la Asociación bipartita máxima Es posible usar el método de Ford-Fulkerson. El turco es construir la red de flujo G =(V,E ) para el grafo bipartito G=(V,E). V = V {s,t E = {(s,u) : u E { (u,v): u L, v R, y (u,v) E {(v,t): v R Se asigna capacidad unitaria a cada arco de E Se aplica así el método Ford-Fulkerson y se obtiene la asociación máxima. 13