barbara martina rodeker universidad nacional del centro de la pcia. de buenos aires...

24
Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires [email protected] El problema del viajante Una implementación del esquema de aproximación propuesto por Sanjeev Arora

Upload: zarita-nava

Post on 28-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Barbara Martina RodekerUniversidad Nacional del Centro de la Pcia. de Buenos Aires

[email protected]

El problema del viajanteUna implementación del esquema de

aproximaciónpropuesto por Sanjeev Arora

Page 2: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Formulación del problema

“ Sean N ciudades de un territorio. El objetivo es encontrar un camino que, comenzando y terminando en una ciudad concreta, pase una sola vez por cada una de las ciudades minimizando la distancia recorrida por el viajante “

C2c3

c4

c6

c5

c1

Page 3: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Consideraciones del problema

C2

c1

•Se conocen las ciudades

•Se conoce la distancia entre ellas

•A todo camino se le asocia un costo que es la suma de las distancias recorridas

costoC12

Page 4: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Breve clasificación

Simétricola distancia de A a Bes la misma que de B a A

Asimétricola distancia de A a B no es la misma que de B a A

c1

c2

c3

c4

c1

c2

c3

c4

Page 5: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Casos especialesCasos especiales

Desigualdad TriangularDesigualdad Triangular

TSP EuclídeoTSP Euclídeo(PTAS (PTAS

Arora)Arora)

AA

BB

CC

d(a,b) <= d(a,c) + d(c,b)

d(a,b) = ( a2 + b2 ) 1/2

Page 6: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Soluciones aproximadas

HEURÍSTICAS

•Soluciones cercanas a la óptima•Obtenidas en menor tiempo•Varían en su distancia al óptimo

Nearest Neighbour GreedyAlgoritmos genéticosAlgoritmos de colonia de hormigasEsquemas de aproximación

Page 7: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Esquemas de aproximación

• Conjunto de algoritmos trabajando juntos• El procesamiento se divide en varias etapas• La salida de una de las etapas sirve de base para la siguiente

Page 8: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Sanjeev Arora

http://www.cs.princeton.edu/~arora/

• Profesor de Cs. De la Computaciónde la Universidad de Princeton

•Trabaja en el área teórica de Cs. De la Computación.

•Sus intereses de investigación incluyen áreas como complejidad computacional, soluciones aproximadas a problemas NP, pruebas probabilísticas.

Page 9: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Pasos del esquema

•PERTURBACIÓN

•QUADTREE

•PORTALIZACIÓN

•PROGRAMACIÓN DINÁMICA

•TRIMMING

Page 10: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Perturbación

• Se realiza una grilla sobre el plano donde están los nodos.•Cada nodo se ubica en el punto más cercano de esa grilla•El objetivo es modificar las coordenadas de los nodos para un posterior procesamiento

Page 11: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

• Se seleccionó como modificación del algoritmo original la menor distancia entre nodos en ambos ejes

Page 12: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Regrillado

•Con el objetivo de que la mínima distancia entre nodos sea 2, cada una de las coordenadas de los nodos se multiplica por 2c

Shift de coordenadas

•Corrimiento en una unidad de cada uno de los nodos

•Las coordenadas de los mismos serán impares

•No chocarán con las líneas de división del Quadtree

Page 13: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

 Complejidad

Leer los nodos desde archivo O ( N ) con N #nodos.Perturbación O ( N ) con N #nodos.  Cualquiera de métodos en este paso del algoritmo implica un recorrido de los n nodos de entrada, de 

Page 14: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Quadtree

• El plano se va dividiendo en cuatro partes iguales ( Cuadrantes )•Se avanza en la división hasta que dentro de un cuadrante queda solo un nodo ( Hoja )•Así tenemos registradas las hojas donde se ubican los nodos•Esta estructura de datos permite recorrer espacios del plano

Page 15: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Enclosing Box

•Es el cuadrado más pequeño posible, de dimensiones 2K que contenga a todos los nodos

•Desde él se construye el Quadtree

Page 16: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Portalización

• Se necesita que cada cuadrante pueda comunicarse con sus vecinos•Un portal es lo que permite la comunicación•Se ubican en los bordes de los cuadrantes•Son la base para construir la tabla de soluciones

Page 17: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

• Originalmente se tomaba un conjunto de m-portales distribuidos uniformemente

Page 18: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Programación dinámicaApareos

Cuadrantes

Subsolución

• Se construye una tabla de tamaño cuadrantes x apareos•Un apareo es una asociación entre dos portales•La solución se construye desde las hojas•Se prosigue de forma bottom-up hasta la raíz

Page 19: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Estructurade las celdas

Page 20: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

 Complejidad

Número de Cuadrantes = Nc <= 4log2L , con L = largo del

Enclosing Box

Número de Apareos = Na #portales x #portales

Tamaño de la Tabla = Nc x Na

Costo Programación Dinámica O ( Nc x Na x c ) 

Page 21: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Trimming

• Se reconstruye el camino•Se sigue el camino indicado por la tabla resultado de la programación dinámica•Se van mapeando los nodos encontrados con los nodos originales

Page 22: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

Datos útiles• Concorde:

- programa que implementa varias heurísticas - útil para comparaciones de resultados- http://www.tsp.gatech.edu/

•Tiempos de ejecución C++: LARGE_INTEGER frecuencia;

QueryPerformanceFrequency(&frecuencia); unsigned __int64 frec=frecuencia.QuadPart;

LARGE_INTEGER x;LARGE_INTEGER z;

QueryPerformanceCounter(&x); p=new Perturbacion(&archivoOpen,c); QueryPerformanceCounter(&z);

unsigned __int64 dif=z.QuadPart-x.QuadPart; tiempoPert=(long double)dif/(long double)frec;

Page 23: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación

QueryPerformanceFrequency(LARGE_INTEGER *n)

da como resultado la cantidad de ciclos por segundoa la que funciona el procesador

QueryPerformanceCounter(LARGE_INTEGER *n)

informa la cantidad de ciclos que han transcurrido desde que se inicio el sistema

Más información sobre TSP

http://www.ing.unlp.edu.ar/cetad/mos/TSPBIB_home.html

Page 24: Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires brodeker@alumnos.exa.unicen.edu.ar El problema del viajante Una implementación