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

Transcript of Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires...

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.