Búsqueda Tabú Paralela Ángel Luis Calvo Ortega Algoritmos y Programación Paralela Curso 2006-2007 Página 1 Búsqueda Tabú Paralela Introducción Búsqueda Tabú (TS) secuencial: Algoritmo de búsqueda local mejorado Uso de estructuras de memoria (tabú, frecuencia, ...) Meta-heurístico Objetivos de paralelizar TS: Encontrar una solución similar más rápido Encontrar una solución mejor en tiempo similar Página 2 Búsqueda Tabú Paralela Introducción (ii) Algoritmo secuencial: 1.actual 2.mejor HACER-NODO(ESTADO-INICIAL[problema]) actual 3.mejor_costo VALOR[mejor] 2P veces 4.bucle hacer 5. vecino sucesor 6. actual vecino 7. Actualizar H 8. si VALOR(actual) < mejor_costo entonces 9. mejor 10. mejor_costo N*(H, actual) / minimice VALOR(H,actual) actual VALOR[mejor] 11.hasta condición_de_terminación k veces Página 3 Búsqueda Tabú Paralela Clasificación Taxonomía introducida en 1993 para las TS paralelos Consta de 3 criterios También aplicable a otras meta-heurísticas • Control de la cardinalidad ¿Cuantos procesos controlan la búsqueda? 1C: un proceso (dueño-esclavo) pC: varios procesos (que colaboran o no) Página 4 Búsqueda Tabú Paralela Clasificación (ii) 1. Tipo de control y comunicación Organización de la comunicación, sincronización y jerarquía, manejo y compartición de la información RS (Rigid Synchronization): poco intercambio de información KS (Knowledge Synchronization): más sofisticada C (Collegial): comunicaciones asíncronas Página 5 KC (Knowledge Collegial): además la información compartida ayuda a mejorar la solución Búsqueda Tabú Paralela Clasificación (iii) 1. Diferenciación de la búsqueda ¿Cual es la solución inicial de las búsquedas?, ¿se utiliza la misma estrategia en todas las búsquedas? SPSS: mismo punto inicial, mismo tipo de búsqueda SPDS: mismo punto inicial, distintas búsquedas MPSS: múltiples puntos iniciales, mismo tipo de búsqueda MPDS: múltiples puntos iniciales, distintas búsquedas Página 6 Búsqueda Tabú Paralela Tipos de paralelización Bajo nivel: Acelerar tareas con alto coste computacional Evaluación del vecindario Aproximaciones: 1. Dueño-Esclavo Alto nivel: Realizar múltiples búsquedas simultaneas Aproximaciones: 1. Búsquedas independientes 2. Búsquedas cooperativas Página 7 Búsqueda Tabú Paralela Dueño-esclavo Funcionamiento: El vecindario N es dividido en p subconjuntos Ni Cada proceso esclavo evalúa su Ni (N/p) El hilo dueño selecciona el movimiento entre los p posibles 1C/RS/SPSS Speed-up proporcional al número de procesadores Mejoras: Las estructuras de memoria están replicadas Cada hilo ejecuta varias iteraciones (KS) Página 8 Búsqueda Tabú Paralela Búsquedas Independientes Se hacen p búsquedas independientes Cada una trabaja en su propia solución No se comparte el conocimiento pC/RS/{SPDS/MPSS/MPDS} Adecuado cuando se requiere ajuste de parámetros Página 9 Búsqueda Tabú Paralela Búsquedas cooperativas Como las búsquedas independientes, pero: Cuando se encuentra una buena solución se envía al dueño El dueño envía a los esclavos Los esclavos reinician la búsqueda desde la nueva solución La lista tabú no se copia pC/KS/MPSS El conocimiento mejora la solución Página 10 Búsqueda Tabú Paralela Conclusiones Fácil de implementar Paralelizar la evaluación de vecinos Mejora del tiempo Limitado por las comunicaciones Múltiples ejecuciones Mejora del tiempo y/o solución Página 11 Búsqueda Tabú Paralela