Algoritmos de aproximación

Documentos relacionados
NP-Completeness: Universidad Autónoma de Nuevo León Facultad de Ingeniería Mecánica y Eléctrica División de Posgrado en Ingeniería de Sistemas

Algoritmos aleatorizados

Análisis de Algoritmos Problemas de grafos

Algoritmos pseudo-polinomiales

Análisis de Algoritmos Teoría de grafos

COMPUTACIÓN ALEATORIZADA

Dividir-conquistar y podar-buscar

Estructuras de datos Grafos

Algoritmos y problemas

Problemas NP-completos

Tema 5: Problemas de Optimización

Complejidad amortizada

! Las mismas ideas buenas sirven para desarrollar. ! Por eso es útil estudiar las estratégias clásicas del. Dividir y conquistar Algoritmo euclideano

Metaheurísticas y heurísticas. Algoritmos y Estructuras de Datos III

Grafos Eulerianos y Hamiltonianos. Algoritmos y Estructuras de Datos III

Programación dinámica p. 1

Estructuras de datos Listas y árboles

The Traveling Salesperson Problem. D.Moshkovitz Complexity

Estructuras de datos Árboles B

Escuela de algoritmos de aproximación

Universidad Autónoma de Nuevo León

3-Coloring es NP-Completo

Parte de Algoritmos de la asignatura de Programación Master de Bioinformática. Grafos

obtenido de la fusión de dos rutas y la posterior asignación a un vehículo con capacidad disponible.

Escuela de algoritmos de aproximación

MARITZA HERRERA FLOREZ YUDY MARCELA BOLAÑOS RIVERA

ALGORITMOS HEURÍSTICOS Y APROXIMADOS. Análisis y diseño de algoritmos II- 2009

Complejidad Computacional

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

ARBOLES GENERADORES. Orlando Arboleda Molina. 16 de septiembre de Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle

Problema Robusto de Diseño de Red Capacitada Multiproducto

Teoría de grafos y optimización en redes

Complejidad computacional (Análisis de Algoritmos)

5.6 Árbol generador de un grafo

Algoritmo de Kruskal

Representación y manipulación de grafos: caminos, expansión, cortes y flujos

! !

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

RAMIFICAR-ACOTAR Y PLANOS DE CORTE

C a l ses P P y y NP C a l se P C a l se N P N P [No N n o -De D te t rmin i i n s i ti t c i Polynomial-tim i e]

Apuntes de Teórico de Programación 3. Apuntes de Teórico PROGRAMACIÓN 3. Greedy. Versión 1.1

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

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

ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES

Introducción a la Computación (Matemática)

Universidad de Managua Curso de Programación Lineal

Árboles de Expansión Mínima. Matemática Discreta. Agustín G. Bonifacio UNSL

NP-Completitud. Agustín J. González ELO320: Estructura de Datos y Algoritmos 1er. Sem ELO320 1

4. Complejidad computacional

Algoritmos mas complejos. Algoritmos y Estructuras de Datos II (Programación I) Mgter. Vallejos, Oscar A.

INAPROXIMABILIDAD. Curso: Algoritmos de aproximación Docente: Pablo Romero Estudiante: Daniel La Buonora Octubre de 2016

Backtracking: Esquema General

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

Algoritmos Voraces. Diseño y Análisis de Algoritmos

Modelos de transporte: Problema del vendedor viajero. M. En C. Eduardo Bustos Farías

Algoritmos de Aproximación

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

Algoritmos voraces (greedy)

Algoritmo de Fleury. por. Ramón Espinosa Armenta

ALGORÍTMICA

Heurísticas y Metaheurísticas

Tablas de dispersión

Clases de complejidad

LAS CIENCIAS DE LA PLANIFICACIÓN

Algoritmos para determinar Caminos Mínimos en Grafos

Coloreo de Grafos. Algoritmos y Estructuras de Datos III

Recorridos de Gráficas. comp-420

Motivación: Problemas de optimización

Modelos de Informática TeóricaCapítulo 4 - demostración de NP-completitud p.1/68

A5 Introducción a la optimización en redes

Algorítmica y Lenguajes de Programación. Complejidad computacional

Clasificación de Sistemas. Clasificación de Sistemas. Clasificación de Sistemas. Clasificación de Sistemas

Máquinas de Turing no-determinísticas (MTND)

Algoritmos de Aproximación

Uso de grafos para localizar el sanitario más cercano desde un punto de FIME mediante el Algoritmo de Dijkstra

Optimización en redes sensoras

TEMA IV TEORÍA DE GRAFOS

3.1 Descripción del problema del Agente Viajero (PAV).

MATROIDES Y EL ALGORITMO VORAZ

IN34A - Optimización

1. Inducción Inducción básica. Universidad de la República Cálculo 1 Facultad de Ingeniería - IMERL Primer semestre 2017

INGENIERÍA DE SISTEMAS INVESTIGACIÓN OPERATIVA

Algoritmos Heurísticos en Optimización Combinatoria

Grafos. Amalia Duch Brown Octubre de 2007

Tema 4y 5. Algoritmos voraces. Algoritmos sobre grafos

Algoritmos de búsqueda exhaustiva

Teoría de Grafos. Herramientas de programación para procesamiento de señales

Investigación de Operaciones en Acción: Heurísticas para la Solución del TSP

El TAD Grafo. El TAD Grafo

Unidad 2: Problemas de camino mínimo

Curso: Métodos de Monte Carlo Unidad 3, Sesión 7: Problemas de conteo

Problemas de decisión y su complejidad computacional

Tema 1. Heurísticos en Optimización Combinatorial

Introducción a la Teoría de Grafos

Introducción a la Teoría de Grafos

Análisis de algoritmos

Universidad Nacional Autónoma de Nicaragua UNAN-Managua. Curso de Investigación de Operaciones

1. Caminos Mínimos en un Grafo sin Pesos 2. Caminos Mínmos en un Grafo ponderado. 1. Algoritmo de Dijkstra

EL PROBLEMA DE TRANSPORTE

Complejidad Computacional

Transcripción:

Técnicas de diseño de algoritmos Algoritmos de aproximación Dra. Elisa Schaeffer elisa.schaeffer@gmail.com PISIS / FIME / UANL Algoritmos de aproximación p. 1

Soluciones no-óptimas En situaciones donde todos los algoritmos conocidos son lentos, vale la pena considerar la posilibidad de usar una solución aproximada, o sea, una solución que tiene un valor de la función objetivo cerca del valor óptimo, pero no necesariamente el óptimo mismo. Depende del área de aplicación sí o no se puede hacer esto eficientemente. En muchos casos es posible llegar a una solución aproximada muy rápidamente mientras encontrar la solución óptima puede ser imposiblemente lento. Algoritmos de aproximación p. 2

Determinismo Un algoritmo de aproximación puede ser determinista o no determinista. Si el algoritmo de aproximación no es determinista y ejecuta muy rápidamente, es común ejecutarlo varias veces y elegir el mejor de las soluciones aproximadas así producidas. Algoritmos de aproximación p. 3

Factor de aproximación Un algoritmo de aproximación bien diseñado cuenta con un análisis formal que muestra que la diferencia entre su solución y la solución óptima es de un factor constante. Este factor se llama el factor de aproximación. < 1 para maximización > 1 para minimización Depende de la aplicación qué tan cerca debería ser la solución aproximada a la solución óptima. Algoritmos de aproximación p. 4

Tasa de aproximación El valor extremo del factor sobre el conjunto de todas las instancias del problema es la tasa o índice de aproximación (inglés: approximation ratio). Un algoritmo de aproximación tiene tasa constante si el valor de la solución encontrada es por máximo un múltiple constante del valor óptimo. Algoritmos de aproximación p. 5

Eficiencia También habrá que mostrar formalmente que el algoritmo de aproximación tiene complejidad polinomial. En el caso de algoritmos de aproximación probabilistas, basta con mostrar que sea polinomial con alta probabilidad. Algoritmos de aproximación p. 6

Esquemas de aproximación Si existe un método sistemático para aproximar la solución a factores arbitrarios, ese método se llama una esquema de aproximación (de tiempo polinomial) (inglés: (polynomial-time) approximation scheme). Tiempo polinomial: PTAS. Un libro de texto recomendable sobre algoritmos de aproximación es lo de Vazirani. Algoritmos de aproximación p. 7

Bin packing El problema de empaquetear a cajas: Dado: un conjunto finito de objetos Φ = {ϕ 1,ϕ 2...,ϕ N }, cada uno con un tamaño definido t(ϕ i ) R. Pregunta: Cómo empaquetear en cajas de tamaño fijo T los objetos así que T máx{t(ϕ i ) ϕ i Φ} y que el número de cajas utilizadas sea mínima. Este problema también es NP-completo. Algoritmos de aproximación p. 8

Algoritmo de aproximación 1. Ordenar las cajas en una fila. 2. Procesamos los objetos en orden. 3. Primero intentamos poner el objecto actualmente procesado en la primera caja de la fila. 4. Si cabe, lo ponemos allí, y si no, intentamos en la siguiente caja. 5. Iterando así obtenemos alguna asignación de objetos a cajas. Algoritmos de aproximación p. 9

Calidad de la solución Denotamos con OPT(Φ) el número de cajas que contienen por lo menos un objeto en la asignación óptima. Se puede mostrar que el algoritmo de aproximación simple utiliza al máximo 17 OPT(Φ)+2 cajas. 10 Esto significa que nunca alejamos a más de 70 % de la solución óptima. Algoritmos de aproximación p. 10

Mejora Podemos mejorar aún por ordenar los objetos así que intentamos primero el más grande y después el segundo más grande. Para este caso se puede mostrar que llegamos a utilizar al máximo 11 OPT(Φ)+4 cajas, que nos da una distancia 9 máxima de unos 22 % del óptimo. Algoritmos de aproximación p. 11

Problema del viajante Una versión los pesos un grafo completo ponderado son distancias entre los vértices d(v, w) que cumplen con la desigualdad de triángulo d(v,u) d(v,w)+d(w,u). También es un problema NP-completo. Algoritmos de aproximación p. 12

Algoritmo de aproximación 1. Construye un árbol de expansión mínimo en tiempo O(mlogn). 2. Elige un vértice de inicio cualquiera v. 3. Recorre el árbol con DFS en tiempo O(m+n) e imprime cada vértice a la primera visita (o sea, en preorden). 4. Imprime v en tiempo O(1). Algoritmos de aproximación p. 13

Análisis El DFS recorre cada arista del árbol 2 veces; podemos pensar en el recorrido como una ruta larga R que visita cada vértice por lo menos una vez, pero varias vértices más de una vez. Cortamos de la ruta larga R cualquier visita a un vértice que ya ha sido visitado, así logrando el mismo efecto de imprimir los vértices en preorder. Por la desigualdad de triángulo, sabemos que la ruta cortada R no puede ser más cara que la ruta larga R. Algoritmos de aproximación p. 14

Óptimos y árboles El costo total de R es dos veces el costo del árbol cubriente mínimo. Para lograr a comparar el resultado con el óptimo, hay que analizar el óptimo en términos de árboles cubrientes. Si eliminamos cualquier arista de la ruta óptima R OPT, obtenemos un árbol cubriente. Algoritmos de aproximación p. 15

La tasa El peso de este árbol es por lo menos el mismo que el peso de un árbol cubriente mínimo C. Entonces, si marcamos el costo de la ruta R con c(r), hemos mostrado que necesariamente c(r) c(r ) = 2C 2c(R OPT ). Algoritmos de aproximación p. 16

Búsqueda local Cuando hemos obtenido una solución heurística y aproximada de manera cualquiera a un problema de optimización, podemos intentar mejorarla por búsqueda local. Aplicamos operaciones pequeñas y rápidamente realizadas para causar cambios pequeños en la solución así que la solución mantiene factible y puede ser que mejora. Libros buenos de búsqueda local incluyen el libro de de Aarts y Lenstra y el libro de Hoos y Stützle. Algoritmos de aproximación p. 17

Un ejemplo: 2-opt Aplicada en el problema del viajante en un grafo ponderado no dirigido G = (V,E). El costo de una arista {v,w} es c(v,w) > 0. Elegimos (al azar) 2 aristas de la ruta R: {s,t} y {u,v}. Algoritmos de aproximación p. 18

Notaciones Marcamos el segmento de la ruta entre t y u por A y el otro segmento entre v y s por B así que A = [tr 1 r 2...r k u] B = [vw 1 w 2...w l s] R = [tr 1 r 2...r k uvw 1 w 2...w l st] Algoritmos de aproximación p. 19

Candidato a intercambio Si el grafo G también contiene las aristas {v,t} y {s,u}, evaluamos si c(s,t)+c(u,v) > c(s,u)+c(v,t). Si es así, podemos llegar a un costo total menor por reemplazar las aristas originales por las aristas más baratas {v,t} y {s,u}: R = [tr 1 r x 2...r k usw l w l 1...w 2 w 1 vt]. Algoritmos de aproximación p. 20

Ilustración...... Algoritmos de aproximación p. 21