Algoritmos de emparejamiento

Documentos relacionados
Grafos. Algoritmos y Estructuras de Datos III

Multiplicación de matrices simétricas

Grafos. Suponiendo que e = [u, v]. Entonces los nodos u y v se llaman extremos de e y u y v se dice que son nodos adyacentes o vecinos.

Matemáticas Discretas L. Enrique Sucar INAOE. Teoría de Grafos. Problema de los puentes de Königsberg [Euler]

Introducción a la Teoría de Grafos

Capítulo 4: Grafos Clase 2: Caminos, Circuitos Eulerianos y Hamiltonianos

Tema: Algoritmos para la ruta más corta en un Grafo.

UNIVERSIDAD NACIONAL DE INGENIERÍA UNI-RUACS. Investigación de Operaciones

Capítulo 3: Grafos Clase 1: Grafos: Modelos, tipos, representación e isomorfismo

Tema: Algoritmos para la ruta más corta en un Grafo.

Un grafo G = (V, E) se dice finito si V es un conjunto finito.

Nicolás Rivera. 23 de Junio de 2011

Sesión 4: Teoría de Grafos

1. Recuerdo del algoritmo de KRUSKAL

1. GRAFOS : CONCEPTOS BASICOS

Es un conjunto de objetos llamados vértices o nodos unidos por enlaces llamados aristas o arcos, que permiten representar relaciones binarias entre

Introducción a la Teoría de Grafos

Árboles. Un grafo no dirigido es un árbol si y sólo si existe una ruta unica simple entre cualquiera dos de sus vértices.

Teoría de grafos y optimización en redes

Definiciones y ejemplos.

Algoritmo de Verificación para CTL IIC3800

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Algoritmos de Aproximación para el problema de Corte de Multicaminos (Multiway Cut)

Tema 5 Árboles y Grafos.

Un GRAFO O GRAFO NO ORIENTADO es una terna G = {V, A,ϕ } conv

OBJETIVOS ÍNDICE BIBLIOGRAFÍA

Los elementos de V son los vértices (o nodos) de G y los elementos de A son las aristas (o arcos) de G.

Tema 4: Redes y flujos

Arboles. Definiciones formales: 1) un árbol es un grafo acíclico finito T (P, E) tal que. P = E + 1 => todo arco es desconectante.

Definiciones: conjuntos, grafos, y árboles. Agustín J. González ELO 320: Estructura de Datos y Algoritmos. 2002

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

El origen: Los puentes de Königsberg. Grafos. Algoritmos y Estructuras de Datos III. Leonhard Euler ( )

TÉCNICAS DE CAJA BLANCA

Hamilton, Euler y Dijkstra

INDICE INTRODUCCION1 DESARROLLO2 GRAFOS (CONCEPTO).2 ARISTAS...2 VERTICES2 CAMINOS.3 CLASIFICACION DE GRAFOS...3 GRAFOS EULERIANOS.

Este material es de uso exclusivo para clase de algoritmos y estructura de datos, la información de este documento fue tomada textualmente de varios

Pruebas de caja blanca

Tema 1: Introducción a la Teoría de Grafos

Verificación y Validación de Software

AnAnálisis de redes de transporte Tr. Muchas veces se utiliza en aplicaciones que nada tienen que ver con el transporte

Grafos. Amalia Duch Brown Octubre de 2007

Problemas en P y NP. Marcos Kiwi. Semestre Otoño U. Chile

Algoritmos y Estructuras de Datos II

Algebra Matricial y Teoría de Grafos

Se puede dibujar la siguiente figura, empezando y terminando en el mismo punto, sin levantar e lápiz del papel?

Formulando con modelos lineales enteros

Flujos de redes (Network Flows NF)

Se puede dibujar la siguiente figura, empezando y terminando en el mismo punto, sin levantar e lápiz del papel?

Francis Guthrie Planteo el problema de los cuatro colores, después de colorear el mapa de Inglaterra 9/15/2015 3

Relaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad

Máximo Flujo (Maximum Flow) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE

Introducción. Algoritmos y Complejidad. Algoritmos y Algoritmia. Introducción. Problemas e instancias. Pablo R. Fillottrani

Algoritmo de Fleury. por. Ramón Espinosa Armenta

MARITZA HERRERA FLOREZ YUDY MARCELA BOLAÑOS RIVERA

Coloreo de vértices Definiciones: Coloreo de Grafos. Cotas para χ Proposición: Si H es un subgrafo de G entonces χ(h) χ(g).

Elemento crítico para la garantía de calidad del software y representa una revisión final de las especificaciones, del diseño y de la codificación.

Los grafos son estructuras de datos Representan relaciones entre objetos. Son aplicables en. Relaciones arbitrarias, es decir No jerárquicas.

Coloreo de vértices. Coloreo de Grafos. Cota superior para χ(g) Algoritmos y Estructuras de Datos III. Definiciones:

Estructura de Datos Página 1 de 13 ESTRUCTURA DE DATOS

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

Análisis de Algoritmos Teoría de grafos

GRAFOS BIPARTITOS SOBRE CURVAS CONVEXAS PARALELAS MIGUEL GÓMEZ DOMÍNGUEZ JOSÉ LUIS ROSADO OLMO

Capítulo 4: Grafos Clase 4: Árboles

Relaciones y teoría de grafos a través de Mathematica

Fundamentos de Investigación de Operaciones Modelos de Grafos

En la fig. 1 se representa el grafo, G=(V,A) donde: V = {1, 2, 3, 4, 5, 6} A = { {1,2}, {1,3}, {1,5}, {3}, {3,4}, {4,5}, {5,6} }

Coloreo de Grafos. Algoritmos y Estructuras de Datos III

TÓPICOS AVANZADOS EN TEORÍA DE GRAFOS. F.C.E.I.A. - Universidad Nacional de Rosario Escuela de Posgrado y Ed. Continua

2007 Carmen Moreno Valencia

Tema 2: Grafos y Árboles. Algoritmos y Estructuras de Datos 3

PROGRAMA DE CURSO. Electivo para Especialidad Valido Malla versión 3 y versión 4 Programación Lineal Mixta: Teoría y Laboratorio MA4702 o Autor

Caminos y Flujos optimales. 2da y 3er clase 2007

Algoritmos Elementales de Grafos. Agustín J. González ELO-320: Estructura de Datos Y Algoritmos 1er.Sem. 2002

Criptografía de clave pública Sistemas basados en el problema de la mochila

Cuadrados mágicos y matrices de permutación

Grafos. CCIR / Depto Matemáticas CB102

Análisis de Algoritmos Problemas de grafos

Algoritmos heurísticos y aproximados. Clase 6/10/09

Acerca del Algoritmo de Dijkstra

Teoría de Grafos Introducción Grafos isomorfos

A5 Introducción a la optimización en redes

MA37A Sesión #3 Minimización en un intervalo

Algoritmos de Aproximación

Tema 1 Introducción. José R. Berrendero. Departamento de Matemáticas Universidad Autónoma de Madrid

Conjuntos y expresiones regulares. Propiedades de las expresiones regulares (1) Propiedades de las expresiones regulares (2)

Objetivos formativos de Matemática Discreta. Tema 1: Conjuntos, aplicaciones y relaciones

Estructuras de Datos Orientadas a Objetos. Pseudocódigo y aplicaciones en C#.NET. Capítulo 9.- Grafos

Árboles abarcadores mínimos: algoritmo de Prim y algoritmo de Kruskal.

TEORIA DE GRAFOS. Estructuras Discretas Ing. Jenny Paredes Aguilar

Dimensionamiento y Planificación de Redes

Tema 5: Grafos. CIS - UABJB - Estructura de Datos II Ing. Freddy Melgar Algarañaz 1

Análisis de algoritmos

Transcripción:

Algoritmos de emparejamiento Mager, Jesús 1 Universidad Autónoma Metropolitana Unidad Azcapozalco 2015

Introducción El presente trabajo es un resumen del libro Combinatorial Optimization. Algorithms and Complexity escrito por Christos H. Papadimitriou y Kenneth Steiglitz. Un emparejamiento en un grafo es un conjunto de aristas que no comparten un mismo nodo. Buscaremos la mejor combinación para tener el máximo número de emparejamientos posible. También podemos agregar pesos a las aristas, donde el reto sería encontrar el conjunto de aristas que contengan el peso mayor. Estos algoritmos pueden ser consideras instancias del concepto camino de incremento usado en. Se tratarán los grafos bipartitos primero por ser más sencillos para su resolución.

Conceptos Un emparejamiento M es un subconjunto de G = (V, E) con la propiedad de que ningún par de aristas comparten algún nodo. Un emparejamiento máximo es el que más se acerque a V /2. Dado G, el problema del emparejamiento es encontrar un emparejamiento máximo M sobre G. Cuando la cardinalidad de un emparejamiento es V /2, el emparejamiento mas grande posible en un grafo de V nodos, decimos que el emparejamiento es completo o perfecto. Los arcos en M serán llamados arcos emparejados; los restantes nodos libres. Si un camino contiene nodos libres entonces será llamado un camino alternativo. Los vértices que se encuentran en caminos alternativos comenzando con un vértice expuesto y tienen un rango impar en este camino son llamados exteriores; que tienen un rango par se llaman interiores.

Con esto, planteamos: Lema: Sea P un conjunto de arcos en un camino de incremento p = [u 1, u 2,..., u 2k ] en un grafo G con respecto al emparejamiento M. Entonces M = M P es una cardinalidad de emparejamiento M + I. (El operador S T denota la diferencia simétrica de S y T, definida como S T = (S T ) (T S) ) Teorema: Un M de emparejamiento en un grafo G es máximo, si y sólo si, no existe un camino de incremento en G respecto a M. Por esto, será posible plantear que dado un emparejamiento, se puede buscar caminos de aumento, hasta que ya no exista alguno nuevo, con lo que se resolverá el problema.

Algoritmo de emparejamiento bipartita Entrada: Un grafo bipartita B = (V, U, E). Salida: El máximo emparejamiento de B representado como un arreglo mate. for all v V U do mate[v] 0 Inizializando for all v V do exposed[v] 0 A Construimos el grafo auxiliar for all [v, u] E do if mate[u] = 0 then exposed[v] u else if mate[u] then A A (v, mate[u]) Q for all v V do if mate[v] = 0 then Q Q {v}, label[v] 0 Continua en la siguente página.

Algoritmo de emparejamiento bipartita (Continuación) while Q do Sea v un nodo de Q remueve v de Q if exposed[v] 0 then augment(v), goto estado else for all dov s / label tal que (v, v ) A: label[v ] v, Q Q {v } end while function augment(v) if label[v] = 0 then mate[v] exposed[v], mate[exposed[v]] v else exposed[label[v]] mate[v] mate[v] exposed[v] mate[exposed[v]] v augment(label[v]) end function

Cada incremento también incrementa la cardinalidad del emparejamiento en uno, por lo que podemos tener a lo mucho mín( V, U ) estados. La complejidad de cada estado es de O( E ). La contrucción del grafo auxiliar y el calculo del arreglo expuesto requiern O( E ), ya que E arcos deben de considerarse. Por lo que el algoritmo resuele correctamente el problema del emparejamiento sobre un grafo bipartito B = (V, U, E) en O(mín( V, U ) E )).

El resultado de O(mín( V, U ) E )) se puede mejorar. Se puede recudir el problema de del emparejamiento bipartito a un problema de max-flow para redes sencillas. Para el grafo bipartita B = (V, U, E) definimos la siguente red N(B) = (s, t, W, A), donde s y t son dos nodos nuevos, W es la unión entre {s, t}, V y U, y A, es un conjunto de arcos consistentes de tres categorías: Los arcos (s, v) para todo v V Los arcos (u, t) para todo u U Los arcos (v, u) para todo v V y v V tal que [v, u] E.

Apareamiento no bipartito: blossoms Lema: La cardinalidad del máximo apareamiento de un grafo bipartita B equivale al valor del máximo flujo s t Teorema: Podemos resolver el porblmea del emparejameiento bipartita en O( V 1/2 E ).

Teorema: Suponga que mientras se busca po run camino de incremento desde un no do expuesto en un grafo G con respecto al apareamiento M, descubrimos un blossom en b. Entonces, existe un camino alternativo desde u a cualquier nodo en b, terminando en un arco apareado. Teorema: Suponga que, mientras se busca por un camino de incremento desde un nodo u de un grafo G con respecto al emparejamiento M, se descubre un blossom b. Entonces ixiste un camino de aumento desde u G con respecto a M hay uno de u (v b si u está en la base de b) en G/b con respecto a M/b.

El algoritmo para la solución del problema de apareamiento no bipartita es de O( V 4 ). Se utiliza el algoritmo del caso bipartita, junto a los métodos necesarios para enfrentarse a los blossoms. Se va a usar el digrafo auxiliar como en el primer algoritmo y se va a realizar un vértice expuesto a la vez. Teorema: Suponga que un grafo G no existe un camino de incremento desde un vértice expuesto u con respecto al apareamiento M. Sea p un camino de aumento que termina en otros nodos expustas v y w. Entonces no existe un camino de incremento desde u respecto a M P tampoco. Crolario: Si en algún estado no existe un camino de aumento desde un nodo u, entonces nunca habrá caminos de aumento desde u. Por lo tanto, si la búsqueda falla en encontrar un camino de incremento desde el nodo u, u nunca volverá a ser considerado como un potencial punto de partida. Se mantendrá esto en un registro llamado considered[u] 1

Algoritmo no bipartita de emparejamiento Entrada: Un grafo G = (V, E) Salida: Un emparejamiento máximo de G en terminos del arreglo mate. for all v V do mate[v] 0, considered[v] 0 estado: while v V con considered[u] = 0 y mate[u] = 0 do considered[] 1, A for all v V do exposed[v] 0 for all [v, w] E do if mate[w] = 0 y w u then exposed[v] w else if mate[w] v then A A (v, mate[w]) for all v V do seen[v] 0 Q u, label[u] 0 Continúa... end while

Algoritmo no bipartita de emparejamiento. Continuación... while Q do Sea v un nodo de Q Remueve v de Q for all los nodos no etiquetados w V tales que (v, w) A do Q Q w, label[w] v seen[mate[w]] 1 if exposed[w] 0 then augment(w) goto estado if seen[w] = 1 then blossom(w) end while Teorema: El algoritmo encuentra correctamente el emparejamiento máximo en un grafo G = (V, E) en O( V 4 )