Análisis de Algoritmos Problemas de grafos

Documentos relacionados
Teoría de grafos y optimización en redes

Introducción a la Teoría de Grafos

Estructuras de datos Árboles B

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.

OPTIMIZACIÓN VECTORIAL

Programación dinámica p. 1

Complejidad amortizada

Introducción a la Teoría de Grafos

Flujos de redes (Network Flows NF)

Tema 3: El Método Simplex. Algoritmo de las Dos Fases.

Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE

2007 Carmen Moreno Valencia

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} }

Dibujo Técnico Sistema diédrico.- Cambios de plano, giros y ángulos. ÁNGULOS.

El método simplex 1. 1 Forma estándar y cambios en el modelo. 2 Definiciones. 3 Puntos extremos y soluciones factibles básicas. 4 El método simplex.

Grafos. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Grafos 1 / 30

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

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

Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

Solución de un sistema de desigualdades

Grafos. Amalia Duch Brown Octubre de 2007

LAS CIENCIAS DE LA PLANIFICACIÓN

EL PROBLEMA DE TRANSPORTE

Algebra lineal y conjuntos convexos

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo.

Minicurso de Teoría de Gráficas Escuela de Verano 2014 por María Luisa Pérez Seguí Facultad de Ciencias Físico-Matemáticas, Universidad Michoacana

Introducción a la programación lineal

Ejercicios de Lógica Proposicional *

Á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.

Cálculo Diferencial: Enero 2016

Complejidad computacional (Análisis de Algoritmos)

TEMA 1. Números Reales. Teoría. Matemáticas

Algoritmos para determinar Caminos Mínimos en Grafos

Convertir un AFND a un AFD

El TAD Grafo. El TAD Grafo

Aritmética de Enteros

Espacios Vectoriales

OPTIMIZACIÓN Y SIMULACIÓN PARA LA EMPRESA. Tema 4 Optimización no Lineal

Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos

TEMA 1. Números Reales. Teoría. Matemáticas

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

Análisis y síntesis de circuitos con elementos de memoria. Proceso de Análisis y síntesis de circuitos con elementos de memoria

1 NOCIONES BÁSICAS SOBRE CONJUNTOS. SÍMBOLOS.

Grafos. Algoritmos y Estructuras de Datos III

open green road Guía Matemática tutora: Jacky Moreno .cl

Lo que se hace entonces es introducir variables artificiales ADAPTACIÓN A OTRAS FORMAS DEL MODELO.

Coloración. Unos cuantos problemas. Asignación de frecuencias de radio. Gregorio Hernández Peñalver. Unos cuantos problemas. Unos cuantos problemas

Soluciones básicas factibles y vértices Introducción al método símplex. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Análisis de Algoritmos

SISTEMA DE MONOMIOS PARA UN CUERPO RESIDUAL REAL CERRADO

Análisis y síntesis de sistemas digitales combinacionales

Conjuntos, relaciones y funciones Susana Puddu

Coordenadas de un punto

SEGUNDA OLIMPIADA ESTATAL DE MATEMÁTICAS

Probabilidad es una manera de indicar la posibilidad de ocurrencia de un evento futuro

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

Eliminación de cuantificadores

Método de Sustitución

Ejercicios del Tema 2: Estructuras algebraicas básicas

ESTRUCTURA Y TECNOLOGÍA DE LOS COMPUTADORES I. TEMA 4 Algebra booleana y puertas lógicas

IN Guía de Problemas Resueltos de Geometría de Programación Lineal v1.0

CONJUNTOS CONJUNTOS NUMÉRICOS

ANGULOS. La unidad de medida es el grado sexagesimal. La "circunferencia completa " mide 360º (grados sexagesimales). Además considere que.

Capítulo 2: Inducción y recursión Clase 2: El principio de Inducción Fuerte

33. SISTEMA PLANOS ACOTADOS

Universidad Tec Milenio: Profesional HG04002 Análisis de Decisiones I

Triángulos. Definición y clasificación

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

27/01/2011 TRIGONOMETRÍA Página 1 de 7

PROGRAMACIÓN LINEAL ENTERA

Soluciones oficiales Clasificación Olimpiada Nacional Nivel Mayor

Tema: Los Grafos y su importancia para la optimización de redes.

Espacios Vectoriales Asturias: Red de Universidades Virtuales Iberoamericanas 1

XXV Olimpiada Mexicana de Matemáticas en Tamaulipas Examen Selectivo 2 de octubre de 2011

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS.

Sesión del día 11 de Marzo del 2011 y tutoría del día 12 de Marzo del 2011

Con miras a conocer la metodología que se aplica en el Método SIMPLEX, tenemos a continiacion un ejemplo:

PLs no acotados El método símplex en dos fases PLs no factibles. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Complejidad de los Algoritmos

Caminos y Flujos optimales. Introducción a la Investigación de Operaciones 2007

Genética de polinomios sobre cuerpos locales

Formulación del problema de la ruta más corta en programación lineal

Algebra Lineal. Gustavo Rodríguez Gómez. Verano 2011 INAOE. Gustavo Rodríguez Gómez (INAOE) Algebra Lineal Verano / 21

Capítulo 3: Técnicas de Conteo Clase 2: Permutaciones y Combinaciones, Coeficientes Binomiales y Aplicaciones a Probabilidad Discreta

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50

Álgebra Booleana y Simplificación Lógica

TEMA 1: GEOMETRÍA EN EL ESPACIO

Grupos libres. Presentaciones.

Simulación I. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

4.1. Polinomios y teoría de ecuaciones

FACTORIZACIÓN. De acuerdo con lo anterior, el resultado de una factorización siempre será un producto.

1.1. Los números reales

SEGUNDA OLIMPIADA ESTATAL DE MATEMÁTICAS

Espacios vectoriales

Teorías decidibles. Definición. Ejercicio

TEMA 1: NÚMEROS NATURALES. SISTEMA DE NUMERACIÓN

Álgebra de Boole. Valparaíso, 1 er Semestre Prof. Rodrigo Araya E.

Inducción Matemática Conjuntos Funciones. Matemática Discreta. Agustín G. Bonifacio UNSL. Repaso de Inducción, Conjuntos y Funciones

Transcripción:

Análisis de Algoritmos Problemas de grafos Dra. Elisa Schaeffer elisa.schaeffer@gmail.com PISIS / FIME / UANL Problemas de grafos p. 1

INDEPENDENT SET es NP-completo Necesitamos un gadget : el triángulo. Si el grafo de entrada contiene un triángulo, es decir, una camarilla de tres vértices, solamente uno de los tres participantes del triángulo puede ser considerado para formar un conjunto independiente, porque en un conjunto independiente, ningún par de vértices puede compartir una arista. Problemas de grafos p. 2

Restricción Consideramos grafos los vértices de cuales se puede dividir en triángulos disjuntos. Es decir, cada vértice del grafo solamente puede tomar parte en un triángulo y cada vértice tiene que ser parte de un triángulo. Denotamos el número de tales triángulos por t. Problemas de grafos p. 3

Análisis Por construcción, ningún conjunto independiente puede tener cardinalidad mayor a t. Un conjunto independiente de cardinalidad t existe solamente si las otras aristas del grafo permiten elegir un vértice de cada triángulo sin que tengan aristas en común los vértices elegidos. Problemas de grafos p. 4

Reducción de 3SAT cláusula C i de φ, generamos un triángulo en el grafo G = R(φ). Sean a i, b i y c i las tres literales de una cláusula C i. Entonces, habrán vértices v ai, v bi y v ci en el grafo G y además las tres aristas {v ai,v bi }, {v ai,v ci } y {v bi,v ci } que forman el triángulo de los tres vértices de la cláusula C i. Problemas de grafos p. 5

Variables compartidas v i de C i y v j de C j, donde i j, están conectadas por una arista Los literales a cuales corresponden v i y v j son de la misma variable, pero el literal es positivo en C i y negativo en C j Problemas de grafos p. 6

Ejemplo (tarea en clase) Construir un grafo que corresponde a φ = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) ( x 1 x 2 x 3 ). Problemas de grafos p. 7

Reducción correcta Con el grafo G y la cota (la cardinalidad del conjunto independiente) siendo k = t, tenemos definida la reducción. Habrá que mostrar que es correcta la reducción: existe un conjunto independiente I V en G = R(φ) tal que I = k y φ tiene k cláusulas si y sólo si φ es satisfactible. Problemas de grafos p. 8

Comienzo de (= ) Suponga que tal conjunto I existe. = φ tiene k cláusulas y I = k. Por construcción I necesariamente contiene un vértice de cada uno de los k triángulos. Problemas de grafos p. 9

(= ) continua I no puede contener ningún par de vértices que corresponda una ocurrencia positiva de un variable x y una ocurrencia negativa x de la misma variable. I define una asignación de valorest v I y v corresponde a una ocurrencia positiva de la variable x, x T. Problemas de grafos p. 10

Consistencia Cada par de literales contradictorios está conectado en G por una arista, y entonces la asignación T así definida es consistente. Problemas de grafos p. 11

Consistencia Cada par de literales contradictorios está conectado en G por una arista, y entonces la asignación T así definida es consistente. Como I contiene un vértice de cada triángulo, y cada triángulo es una cláusula, cada cláusula tiene exactamente un literal con el valor, porque necesariamente T(x) = o T( x) = que implica que T(x) = para la variable x el vértice de cual estáincluido en el conjunto independiente I. Problemas de grafos p. 11

( =) con el mismo truco Si φ es satisfactible, dada la T que la satisface, identificamos cuáles literales tienen el valor en T. Elegimos de cada cláusula un literal con el valor. Los vértices que corresponden a estos forman I. Son uno por cláusula. Entonces, I = k si φ tiene k cláusulas. Problemas de grafos p. 12

Flujo máximo Dado un grafo dirigido con capacidades en las aristas y un flujo no-óptimo, se puede aumentar el flujo que cruza un corte desde el lado de s al lado de t o alternativamente por disminuir el flujo desde el lado de t al lado de s. Para empezar, podemos elegir el flujo cero, donde el flujo por cada arista es cero no rompe con ninguna restricción, por lo cual es un flujo factible, aunque no óptimo. Problemas de grafos p. 13

Camino aumentante Para aumentar el flujo, buscamos un camino aumentante C de s a t en el cual de puede viajar por las aristas según su dirección o en contra. Las aristas v,w incluidas serán tales que si se viaja en la dirección original, aplica que f(v,w) < c(v,w), pero si se viaja en contra, f(v,w) > 0. Problemas de grafos p. 14

Función auxiliar δ(v,w) = Sea δ = mín C {δ(v,w)}. { c(v,w) f(v,w), si v,w E, f(v,w), si w,v E, El flujo se aumenta por añadir δ en todos los flujos que van según la dirección de las aristas en el camino C y restarδde todos los flujos que van en contra en C. Problemas de grafos p. 15

Terminación Este procedimiento se itera hasta que ya no existan caminos aumentantes. Cuando ya no existe camino aumentante ninguno, el flujo es maximal. La eficiencia del método presentado depende de cómo se construye los caminos aumentantes. Problemas de grafos p. 16

Algoritmo polinomial La mayor eficiencia se logra por elegir siempre el camino aumentante de largo mínimo; el algoritmo que resulta es polinomial, O(nm 2 ) = O(n 5 ). Es posible que hayan más que un camino de largo mínimo aplicándolos todos al mismo paso resulta en un algoritmo de complejidad asintótica O(n 3 ). Problemas de grafos p. 17

Grafo residual Primero construyamos un grafo residual que captura las posibilidades de mejoramiento: G f = (V,E f ) del grafo G = (V,E) con respeto a f tiene { {v,w} E ( (f(v,w) < c(v,w)) (f(w,v) > 0) )}. Problemas de grafos p. 18

Capacidad de aumento La capacidad de aumento de la arista {v,w} E f es c (v,w) = { c(v,w) f(v,w) si {v,w} E, f(w,v) si {w,v} E. Cada camino simple entre s y t en el grafo residual G f es un camino aumentante de G. El valor de δ es igual al capacidad de aumento mínimo del camino. Problemas de grafos p. 19

BFS Para elegir los caminos aumentantes más cortos en el grafo residual, utilizamos BFS desde s. En subgrafo formado por los caminos cortos en G f se llama la red de capas (inglés: layered network) G f. Problemas de grafos p. 20

Red de capas Se asigna a cada vértice un valor de capa que es su distancia desde s. Solamente vértices con distancias finitas están incluidas. {v,w} de G f se incluye en G f solamente si el valor de capa de w es el valor de capa de v más uno. En el grafo G f, cada camino de s a t tiene el mismo largo. Problemas de grafos p. 21

Flujo mayor El mejor aumento sería igual al flujo máximo en G f, pero en el peor caso es igual en complejidad al problema original. Entonces construyamos una aproximación: definimos el flujo mayor en G f como un flujo que ya no se puede aumentar con caminos que solamente utilizan aristas que avanzan hacía t. Problemas de grafos p. 22

Flujo posible Definimos como el flujo posible de un vértice es el mínimo de la suma de las capacidades de las aristas que entran y de la suma de las capacidades de las aristas que salen: v f = mín {u,v} G f c (u,v), {v,w} G f c (v,w). Problemas de grafos p. 23

El algoritmo 1. Sacar de G f todos los vértices con flujo posible cero y cada arista adyacente a estos vértices. 2. Identificar el vértice v con flujo posible mínimo. 3. Empujar una cantidad de flujo igual al flujo posible de v desde v hacía t. 4. Retirar flujo a v de sus aristas entrantes por construir caminos desde s a v hasta que se satisface la demanda de flujo que sale de v a t. 5. Actualizar las capacidades de las aristas afectadas. 6. Memorizar el flujo generado y el camino que toma. 7. Computar de nuevo los flujos posibles y eliminamos de nuevo vértices con flujo posible cero juntos con sus aristas adyacentes. 8. Si s y t quedaron fuera, el flujo construido es el flujo mayor en G f. 9. Si todavía están, repetimos el proceso. Problemas de grafos p. 24

Complejidad asintótica La construcción de G f toma tiempo O(n2 ). Problemas de grafos p. 25

Complejidad asintótica La construcción de G f toma tiempo O(n2 ). La distancia entre s y t está en el peor caso O(n). Problemas de grafos p. 25

Complejidad asintótica La construcción de G f toma tiempo O(n2 ). La distancia entre s y t está en el peor caso O(n). Cada iteración de construcción de una red de capas G f utiliza caminos más largos que el anterior, por lo cual la construcción se repite O(n) veces. Problemas de grafos p. 25

Complejidad asintótica La construcción de G f toma tiempo O(n2 ). La distancia entre s y t está en el peor caso O(n). Cada iteración de construcción de una red de capas G f utiliza caminos más largos que el anterior, por lo cual la construcción se repite O(n) veces. Las operaciones de empujar y retirar flujo son ambas O(n) y de ejecutan en total O(n) veces. Problemas de grafos p. 25

Complejidad asintótica La construcción de G f toma tiempo O(n2 ). La distancia entre s y t está en el peor caso O(n). Cada iteración de construcción de una red de capas G f utiliza caminos más largos que el anterior, por lo cual la construcción se repite O(n) veces. Las operaciones de empujar y retirar flujo son ambas O(n) y de ejecutan en total O(n) veces. Entonces, el algoritmo del flujo mayor tiene complejidad asintótica O(n 3 ). Problemas de grafos p. 25

Corte mínimo El problema es igual al problema del flujo máximo: se resuelve por fijar un vértice s cualquiera y después resolver el flujo máximo entre s y todos los otros vértices. El valor mínimo de los flujos máximos corresponde al corte mínimo del grafo entero. algoritmos polinomiales para el problema de flujo máximo, y solamente repetimos n 1 veces su ejecución = corte mínimo P. Problemas de grafos p. 26

MAXCUT Dado: un grafo G = (V,E) no dirigido y no ponderado y un entero k Pregunta: existe un corte en G con capacidad k? MAXCUT es NP-completo Problemas de grafos p. 27

Demostración Para multigrafos a con una reducción desde NAESAT. Para una conjunción de cláusulas φ = C 1... C r, construimos un grafo G = (V,E) tal que G tiene capacidad de corte 5r si y sólo si φ es satisfactible en el sentido de NAESAT. a Un grafo simple es un caso especial de multigrafos. Problemas de grafos p. 28

Construcción Los vértices = los literales x 1,...,x n, x 1,..., x n donde x 1,...,x n son las variables de φ. a Problemas de grafos p. 29

Construcción Los vértices = los literales x 1,...,x n, x 1,..., x n donde x 1,...,x n son las variables de φ. Para cada cláusula α β γ, incluimos las aristas del triángulo entre los vértices α, β y γ. a Problemas de grafos p. 29

Construcción Los vértices = los literales x 1,...,x n, x 1,..., x n donde x 1,...,x n son las variables de φ. Para cada cláusula α β γ, incluimos las aristas del triángulo entre los vértices α, β y γ. Si la cláusula tiene solamente dos literales, ponemos dos aristas entre los vértices que corresponden a. a Mejor convertir cada cláusula a uno con tres literales por repetir un literal según necesidad. Problemas de grafos p. 29

Construcción Los vértices = los literales x 1,...,x n, x 1,..., x n donde x 1,...,x n son las variables de φ. Para cada cláusula α β γ, incluimos las aristas del triángulo entre los vértices α, β y γ. Si la cláusula tiene solamente dos literales, ponemos dos aristas entre los vértices que corresponden a. = tenemos en total 3r ocurrencias de variables. a Mejor convertir cada cláusula a uno con tres literales por repetir un literal según necesidad. Problemas de grafos p. 29

Construcción Los vértices = los literales x 1,...,x n, x 1,..., x n donde x 1,...,x n son las variables de φ. Para cada cláusula α β γ, incluimos las aristas del triángulo entre los vértices α, β y γ. Si la cláusula tiene solamente dos literales, ponemos dos aristas entre los vértices que corresponden a. = tenemos en total 3r ocurrencias de variables. Además, incluyemos n i copias de {x i, x i } donde n i es el número total de ocurrencias de los literales x i y x i en φ. a Mejor convertir cada cláusula a uno con tres literales por repetir un literal según necesidad. Problemas de grafos p. 29

Construcción correcta Suponga que existe un corte (S,V \S) con capacidad 5r o mayor. Si un literal que corresponde a v i participa en n i cláusulas, v i tiene al máximo 2n i aristas a otros vértices además de las n i aristas a su negación. Se supone que una variable y su negación no aparecen en la misma cláusula porque así la cláusula sería una tautología. = Los dos vértices representando a x i y x i tienen en total al máximo 2n i aristas a vértices que representan a otros literales. Problemas de grafos p. 30

El corte Si estuvieran cada variable y su negación las dos en el mismo lado, su contribución a la capacidad del corte sería por máximo 2n i. Si cambiamos al otro lado el vértice con menos aristas externas, la contribución al tamaño de corte del par no puede disminuir (las aristas n i entre los dos vértices cruzarían el corte después del cambio). = Asumir que caigan en lados distintos. Problemas de grafos p. 31

Asignación y el corte Sea S el conjunto de literales asignadas, por lo cual V \S contiene los literales que tienen asignado el valor. Cada variable y su negación están el lados diferentes = contribuyen una arista por ocurrencia en φ: en total 3r aristas. Problemas de grafos p. 32

Triángulos separados Para lograr que sea mayor o igual a 5r la capacidad del corte, habrá que ser 2r aristas que son aristas de los triángulos representando a las cláusulas cruzando el corte. Cada triángulo tiene que estar separado Cada uno de los r triángulos necesariamente contribuye dos aristas. Por lo menos un vértice de cada cláusula pertenece a T y por lo menos un vértice no pertenece al T, T satisface a φ en el sentido de NAESAT. Problemas de grafos p. 33

La otra dirección Dada una asignación T a φ en el sentido de NAESAT, podemos agrupar los vértices a darnos un corte con capacidad mayor o igual a 5r. Problemas de grafos p. 34

MAX BISECTION versus MAXCUT La reducción de MAXCUT a MAX BISECTION por modificar la entrada: Añadimos n vértices no conectados a G. Cada corte de G se puede balancear a ser una bisección por organizar los vértices no conectados apropiadamente a los dos lados. Entonces, el grafo original tiene un corte (S,V \S) de tamaño k o mayor si y sólo si el grafo modificado tiene un corte de tamaño k o mayor con S = V \S. Problemas de grafos p. 35

MINCUT versus MIN BISECTION MINCUT P, MIN BISECTION es NP-completo MIN BISECTION: Dado: un grafo no dirigido y un entero k Pregunta: existe una bisección con cardinalidad menor o igual a k? Problemas de grafos p. 36

Una reducción de MAX BISECTION La instancia es un grafo G = (V,E) con un número par de vértices n = 2c. Ese grafo tiene una bisección de tamaño k o más si y sólo si el grafo complemento Ḡ tiene una bisección de tamaño c 2 k o menos. Problemas de grafos p. 37

3MATCHING es NP-completo Dado: conjuntos A, B y C, cada uno con n elementos y una relación ternaria T A B C Pregunta: existe un conjunto de n triples (a,b,c) en T que no comparten ningún componente entre cualesquiera dos triples? Una reducción sería de 3SAT. Problemas de grafos p. 38