Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
ALGORITMOS
APROXIMADOS.
TSP GEOMÉTRICO
Análisis y diseño de algoritmos II- 2009
Referencias1. Arora; S. “Approximation schemes for NP-hard geometric optimization
problems: A survey”. Math Programming, 97 (1,2) 2003. www.cs.princeton.edu/~arora
2. Abercrombie, K. ,Cranshaw, J. “Polynomial-time Approximation Scheme
for Euclidean TSP”. 2007.www.math.gatech.edu/~randall/Algs07/tsp.pdf
3. Gutin, G., Punnen, A. (Eds.) “The Traveling Salesman Problem and Its
Variations”. Kluwer Academic Publishers, 2004.
4. Concorde Software, 2009 http://www.tsp.gatech.edu/concorde/index.html
5. TSPLIB, Traveling salesman problem library, 2009
www.iwr.uniheidelberg.de/groups/comopt/software/TSPLIB95/
6.Rodeker, B.; Cifuentes, M. V.; Favre, L. “An Empirical Analysis of
Approximation Algorithms for Euclidean TSP”. Proceedings 2009 International
Conference on Scientific Computing (CSC'09), ISBN 1-60132-098-1, 190-196,
CSREA Press, Las Vegas, USA, 2009.
TSP geométrico
El enfoque de Sanjeev Arora
Existen diferentes variaciones del TSP. El
libro “The Traveling Salesman Problem and
Its Variations” [3] describe los algoritmos más
relevantes que aparecieron antes del 2004.
Varios trabajos están relacionados con
versiones restringidas del TSP, por ejemplo TSP-
geométricos, y en particular el TSP-euclidiano.
TSP Geométricos
El TSP euclideano considera n vértices en R2 (o
en general Rd) y el costo de un arco entre nodos
(x1,y1) y (x2,y2) es ((x1-x2)2 + (y1-y2)
2)1/2
Sanjeev Arora [1] propuso un esquema de
aproximación acotado polinomialmente para el
TSP euclideano. (Polynomial-time
Approximation Scheme- PTAS)
TSP geométricos
Por muchos años las mejores aproximaciones
eran FACTOR 1.5 en tiempo polinomial usando el
algoritmo de Christofides [2][3]
Arora diseñó un esquema de aproximación para TSP
geométricos que para cada ε >o calcula solucionesaproximadas FACTOR (1+ ε), es decir el costo es
(1+ ε) OPT.La complejidad temporal está acotada por
n (log n) O(1/ ε) [1]
Problema del viajante geométrico
El enfoque de Sanjeev Arora
Arora propone dividir recursivamente el problema
en subproblemas TSP débilmente dependientes que son
resueltos usando programación dinámica para encontrar
circuitos parciales que luego son combinados para
obtener los circuitos solución en los distintos niveles de
recursión.
Problema del viajante geométrico
El enfoque de Sanjeev Arora
El esquema propuesto por Arora es el esquema
asintóticamente más eficiente para el TSP euclideano.
Sin embargo no es usado en la práctica por razones
de implementación.
La “constante de proporcionalidad” en la complejidad
temporal cobra más importancia que la complejidad
teórica.
Problema del viajante geométrico
El enfoque de Sanjeev Arora
Los pasos propuestos para encontrar un
circuito son:
� Perturbación
� Partición random
� Construcción de circuitos”parciales”
� Reconstrucción del circuito global
Arora TSP Euclideano
El cuadrado mínimo que contiene a los nodos
se denomina “bounding box”
Una disección de un cuadrado es una partición
recursiva en cuadrados.
ARORA TSP - Perturbación
� Todos los nodos tienen
coordenadas enteras
� Cada distancia entre
nodos (>0) es al menos
de 2 unidades
� La distancia máxima
entre nodos es O(n)
Arora TSP Euclideano
Disección randomizada
Sea P ∈ R2 el extremo más a la izquierda del
“bounding box” y la longitud de los lados del
cuadrado l. El “bounding box” es encerrado en
un cuadrado más grande llamado “enclosing
box” de lado L=2 l. El “enclosing box” se ubica de
forma tal que P esté a una distancia a del lado izquierdo
del cuadrado y b del lado más abajo, donde los enteros
a,b ≤ l son elegidos al azar.
ARORA TSP euclideano
Disección randomizada
ARORA TSP euclideano
Los nodos de la entrada y la unidad de la
cuadrícula son fijos. Sólo el “enclosing box” y su
disección son randomizadas. Se asume que L es
potencia de 2.
ARORA TSP-Disección
(a) la disección y (b) su correspondiente quadtree
La disección randomizada es la partición recursiva del “enclosing box” en cuadrantes hasta que a lo sumo exista un nodo en cada cuadrícula.
ARORA TSP Euclideano
Partición recursiva y el árbol de disección
ARORA TSP – Portales
Los portales son puntos especiales sobre las líneas de la grilla y son usadospara calcular circuitos especiales (portal-respecting tour)
válido
ARORA TSP- Portales
Un circuito basado en portales es un circuito que
cuando cruza una línea lo hace en un portal. Al
cruzarla, puede tener que desviarse del camino
directo entre los nodos.
inválido válido
ARORA TSP
Circuito basado em portales
Un circuito que cruza cada lado de cada cuadrado de
la disección a lo sumo k veces es llamado k-ligth.
Eliminando visitas repetidas puede concluirse que un
circuito óptimo que pasa por portales no necesita
visitar un portal más de dos veces.
Un circuito está bien-formado si tienen nodos y un
subconjunto de portales. No admite intersecciones.
ARORA TSP- Portales
Un algoritmo basado en programación dinámica
encuentra el circuito óptimo.
ARORA TSP
Portales
ARORA TSP - Reconstrucción
La reconstrucción del circuito se basa en la tabla
que genera el algoritmo de programación dinámica.
Problema del viajante geométricoEl artículo siguiente artículo describe una implementación del
TSP euclidiano que se basa en los pasos esenciales propuestos por Arora e
incorpora algunas heurísticas para mejorar el tiempo de ejecución.
Se implementó en C++ y se analizó su performace usando Concorde Solver y TSPLIB.
“ An empirical Analysis of Approximation Algorithms for Euclidean TSP”
(Rodeker, B.;Cifuentes,V.; Favre, L.)
Proceedings 2009 International Conference on Scientific Computing (CSC'09),
ISBN 1-60132-098-1, pág. 190-196, CSREA Press, Las Vegas, USA, Julio de
2009.
Implementación de ARORA TSP
geométrico
Diagrama de clases
Implementación ARORA TSP
geométrico
Implementación ARORA TSP
geométrico
Implementación ARORA TSP
geométrico
Conclusiones
La implementación mostró que es factible. Sin embargo,
los resultados prácticos no se acercan a la cota teórica.
Esto se debe a decisiones de implementación.
¿Cómo intentar mejorarlo?
Analizar otras representaciones para los TDA, refinar
y/o probar otras heurísticas para seleccionar portales en
el circuito.
Un desafío…
Analizar las bases propuestas por Arora, la
implementación lograda y desarrollar una nueva
implementación intentando mejorar la existente.
Otros desafíos…
Implementar otros problemas NP-HARD a partir de
estas ideas
Minimum Steiner Tree
Dado un grafo no-orientado G=(V,E) con arcos de
costos positivos y cuyos vértices están particionados en
dos conjuntos “required” y “Steiner”, encontrar un árbol
de recubrimiento de mínimo costo en G que contenga a
todos los vértices “required” de G y a algún subconjunto
de los vértices de Steiner.
Otros desafíos…
k-TSP
Dados n puntos y un número k, encontrar el
circuito de mínimo costo que visite k puntos