La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires El problema del viajante Una implementación.

Presentaciones similares


Presentación del tema: "Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires El problema del viajante Una implementación."— Transcripción de la presentación:

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 del esquema de aproximación propuesto por Sanjeev Arora

2 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 “ C2 c3 c4 c6 c5 c1

3 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

4 Breve clasificación Simétrico la distancia de A a B es la misma que de B a A Asimétrico la distancia de A a B no es la misma que de B a A c1 c2 c3 c4 c1 c2 c3 c4

5 Casos especiales Desigualdad Triangular TSP Euclídeo (PTAS Arora) A A B B C C d(a,b) <= d(a,c) + d(c,b) d(a,b) = ( a 2 + b 2 ) 1/2

6 Soluciones aproximadas HEURÍSTICAS Soluciones cercanas a la óptima Obtenidas en menor tiempo Varían en su distancia al óptimo Nearest Neighbour Greedy Algoritmos genéticos Algoritmos de colonia de hormigas Esquemas de aproximación

7 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

8 Sanjeev Arora http://www.cs.princeton.edu/~arora/ Profesor de Cs. De la Computación de 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.

9 Pasos del esquema PERTURBACIÓN QUADTREE PORTALIZACIÓN PROGRAMACIÓN DINÁMICA TRIMMING

10 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

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

12 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

13 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

14 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

15 Enclosing Box Es el cuadrado más pequeño posible, de dimensiones 2 K que contenga a todos los nodos Desde él se construye el Quadtree

16 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

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

18 Programación dinámica Apareos 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

19 Estructura de las celdas

20 Complejidad Número de Cuadrantes = Nc <= 4 log2L, 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 )

21 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

22 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;

23 QueryPerformanceFrequency(LARGE_INTEGER *n) da como resultado la cantidad de ciclos por segundo a 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

24


Descargar ppt "Barbara Martina Rodeker Universidad Nacional del Centro de la Pcia. de Buenos Aires El problema del viajante Una implementación."

Presentaciones similares


Anuncios Google