11
UN ALGORITMO EVOLUTIVO PARALELO MIXTO PARA EL TSP CARLOS FIGUEREDO Departmento de Computaci´ on – FACYT Universidad de Carabobo Valencia, Estado Carabobo, Venezuela email: [email protected] PATRICIA ROSARIO Departmento de Computaci´ on – FACYT Universidad de Carabobo Valencia, Estado Carabobo, Venezuela email: [email protected] JAQUELINE LOYO Departamento de Computaci´ on – FACYT Universidad de Carabobo Valencia, Estado Carabobo, Venezuela email: [email protected] GERMAN LARRAZABAL Departamento de Computaci´ on – FACYT Universidad de Carabobo Valencia, Estado Carabobo, Venezuela email: [email protected] RESUMEN En este trabajo se propone el desarrollo de un al- goritmo evolutivo paralelo mixto que sea capaz de resolver instancias del TSP (Travelling Sales- man Problem) de gran tama˜ no, minimizando a su vez el tiempo de respuesta. Las herramien- tas a utilizar para alcanzar el paralelismo mixto son el paso de mensajes usando MPI y la progra- maci´ on multihilos usando openMP. La platafor- ma computacional usada fue un cluster dual con 32 procesadores. Los resultados muestran la su- perioridad del programa paralelo sobre su versi´ on secuencial para los problemas tratados en este trabajo. PALABRAS CLAVE Algoritmo Evolutivo, Problema del Agente Via- jero, Programaci´ on de Hilos, Paso de Mensajes. ABSTRACT In this work the development of a Mixed Par- allel Evolutive Algorithm is proposed to solve TSP (Traveling Salesman Problem); one able to solve large instances of this problem and lower the execution time at the same time. The tools used in order to reach the mixed parallelism are Message Passing using MPI and Multi-Threading Programming using openMP. The computational plataform used was a dual cluster with 32 proces- sors. The results show a better performance of the parallel algorithms in respect to the sequential al- gorithms KEY WORDS Evolutive Algorithm, Traveling Salesman Prob- lem, Multi-Threading Programming, Message Passing 1. INTRODUCCI ´ ON En muchos ´ ambitos de la Industria y la Tec- nolog´ ıa la resoluci ´ on de problemas complejos de optimizaci´ on combinatoria es la base para el au- mento de la productividad y la calidad del pro- ducto. Uno de los problemas de optimizaci´ on combinatoria m´ as conocido y estudiado a lo largo de la historia es el llamado TSP (Traveling Sales- man Problem) o Problema del Agente Viajero. Este trabajo supone un aporte a la industria venezolana, debido a la gran aplicabilidad direc- ta que brinda este problema, ya que el TSP surge naturalmente como un subproblema en muchas aplicaciones de log´ ıstica y transporte. Estas apli- caciones involucran la entrega de comida a domi- cilio, las rutas de camiones de entrega de paque- tes, entre otros, lo cual redunda en beneficios a los diferentes ´ ambitos sociales. Tambi´ en existen otras ´ areas interesantes donde se aplica este problema, un ejemplo cl´ asico es establecer el orden en que una m´ aquina taladra agujeros en una tabla de circuitos u otros objetos, donde los agujeros ser´ ıan las ciudades y el costo del viaje es el tiempo que toma la cabeza

UN ALGORITMO EVOLUTIVO PARALELO MIXTO PARA EL TSP

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

CARLOS FIGUEREDO Departmento de Computacion – FACYT
Universidad de Carabobo Valencia, Estado Carabobo, Venezuela
email: [email protected]
Universidad de Carabobo Valencia, Estado Carabobo, Venezuela
email: [email protected]
Universidad de Carabobo Valencia, Estado Carabobo, Venezuela
email: [email protected]
Universidad de Carabobo Valencia, Estado Carabobo, Venezuela
email: [email protected]
RESUMEN En este trabajo se propone el desarrollo de un al- goritmo evolutivo paralelo mixto que sea capaz de resolver instancias del TSP (Travelling Sales- man Problem) de gran tamano, minimizando a su vez el tiempo de respuesta. Las herramien- tas a utilizar para alcanzar el paralelismo mixto son el paso de mensajes usando MPI y la progra- macion multihilos usando openMP. La platafor- ma computacional usada fue un cluster dual con 32 procesadores. Los resultados muestran la su- perioridad del programa paralelo sobre su version secuencial para los problemas tratados en este trabajo. PALABRAS CLAVE Algoritmo Evolutivo, Problema del Agente Via- jero, Programacion de Hilos, Paso de Mensajes.
ABSTRACT In this work the development of a Mixed Par- allel Evolutive Algorithm is proposed to solve TSP (Traveling Salesman Problem); one able to solve large instances of this problem and lower the execution time at the same time. The tools used in order to reach the mixed parallelism are Message Passing using MPI and Multi-Threading Programming using openMP. The computational plataform used was a dual cluster with 32 proces- sors. The results show a better performance of the parallel algorithms in respect to the sequential al- gorithms
KEY WORDS Evolutive Algorithm, Traveling Salesman Prob- lem, Multi-Threading Programming, Message Passing
1. INTRODUCCION
En muchos ambitos de la Industria y la Tec- nologa la resolucion de problemas complejos de optimizacion combinatoria es la base para el au- mento de la productividad y la calidad del pro- ducto. Uno de los problemas de optimizacion combinatoria mas conocido y estudiado a lo largo de la historia es el llamado TSP (Traveling Sales- man Problem) o Problema del Agente Viajero.
Este trabajo supone un aporte a la industria venezolana, debido a la gran aplicabilidad direc- ta que brinda este problema, ya que el TSP surge naturalmente como un subproblema en muchas aplicaciones de logstica y transporte. Estas apli- caciones involucran la entrega de comida a domi- cilio, las rutas de camiones de entrega de paque- tes, entre otros, lo cual redunda en beneficios a los diferentes ambitos sociales.
Tambien existen otras areas interesantes donde se aplica este problema, un ejemplo clasico es establecer el orden en que una maquina taladra agujeros en una tabla de circuitos u otros objetos, donde los agujeros seran las ciudades y el costo del viaje es el tiempo que toma la cabeza
del taladro de un agujero a otro.
La estructura del TSP tambien ocurre en el analisis de la estructura de cristales, la evaluacion de motores de turbinas de gas, en reducir proble- mas de almacenamiento, el secuenciamiento de trabajos en una maquina y en asignacion de rutas a flotas aereas.
Como los antecedentes mas recientes para este trabajo se cuenta con el desarrollo de P. Jog, J. Suh, y D. Van Gucht [1] quienes en 1991 pro- ponen la aplicacion de un algoritmo genetico par- alelo para el TSP, posteriormente en 1992 P. P. Mutalik, L. R. Knight, J. L. Blanton y R. L. Wain- wright [2] plantean un enfoque bastante intere- sante y novedoso al introducir el concepto de un algoritmo basado en Anelo Simulado Paralelo y Algoritmos Geneticos Paralelos para la resolu- cion de problemas de Optimizacion Combinato- ria. Este mismo ano S. Tschoke, R. Luling, M. Racke y B. Monien [3] proponen un algoritmo de Ramificar y Acotar paralelo en una red de 1024 procesadores. Posteriormente, en 1994 Schwehm [4] presenta un interesante trabajo, en donde ex- pone los diferentes modelos de poblacion para algoritmos geneticos paralelos; finalmente en el ano de 1998 L. Villamizar [5] plantea un algorit- mo genetico celular paralelo para el TSP, obte- niendo como resultado una clara superioridad del algoritmo genetico celular paralelo sobre uno se- cuencial.
En los anos sesenta ya se haban prop- uesto metodos de busqueda aleatoria, sin em- bargo, no tuvieron mayor influencia en las ten- dencias seguidas por los cientficos en el area de investigacion. En tiempos recientes, un grupo de investigadores encabezados por John Holland de la Universidad de Michigan, han reconocido que las impresionantes potencialidades del proce- so de evolucion natural pueden ser aprovechadas como metodologa de resolucion de problemas complejos. Para ello es necesario enfocar el pro- ceso de resolucion como una dinamica evolutiva y emular consecuentemente los mecanismos nat- urales de seleccion y reproduccion, de esta forma el proceso de resolucion procede de una manera auto–organizativa, sin necesidad de forzar tipo al- guno de entrenamiento, en base a la accion de un
ambiente convenientemente definido [5]. El termino algoritmo evolutivo se usa
para designar a un conjunto de tecnicas que basan su funcionamiento en metaforas de los procesos biologicos como los principios geneticos y evolucion natural. Emplean una busqueda aleatoria de varios puntos concur- rentemente sobre un espacio de soluciones factibles; surgen como una herramienta poderosa para hallar soluciones muy cercanas a las optimas en problemas que anteriormente se haban considerados complejos, ademas se pueden ajustar bien para tratar con problemas de optimizacion combinatorios eficientemente [6].
Los algoritmos evolutivos requieren de mu- cho poder de computo y recurso de memoria, lo cual los hace interesantes para ser paraleliza- dos. De hecho, el uso de computadoras paralelas puede acelerar la ejecucion de estos algoritmos y proporcionar el espacio de memoria requerido. Los algoritmos evolutivos tienen la habilidad de explorar varias regiones del espacio de busque- da concurrentemente, debido a la evolucion casi independiente de los individuos de la poblacion. Esto muestra un paralelismo inherente existente en ellos, cuya analoga se basa en que millones de personas de una poblacion evolucionan unas independientes de otras; lo cual indica que existe un grado de paralelismo que es directamente pro- porcional al tamano de la poblacion usada en la busqueda genetica [7].
Para una informacion mas detallada y ex- haustiva sobre los Algoritmos Evolutivos es re- comendable referirse a bibliografa reconocida en esta area, tal como [8],[9],[10].
En este trabajo se plantea la realizacion de un Algoritmo Evolutivo Paralelo Mixto, que sea capaz de obtener buenos resultados para instan- cias o benchmarks del TSP de grandes dime- siones.
2. EL PROBLEMA DEL TSP
Uno de los problemas de optimizacion com- binatoria mas conocido y estudiado a lo largo de la historia es el llamado TSP (Traveling Salesman Problem) o Problema del Agente Viajero.
El problema del TSP puede ser enuncia- do como: “Dado un numero finito de ciudades as como tambien el costo asociado de viajar entre cada par de estas cuidades, encontrar el camino con menor costo asociado, de manera tal que se recorran todas las ciudades y se regrese a la ciudad origen”[11].
La manera formal de enunciar el problema es: “Dado un grafo completo y pesado G=(N,E,d) donde,
es el numero de nodos, es el conjun-
to de arcos que conectan completamente a los no- dos, y es una funcion que asigna un vector a cada arco , donde cada elemento cor- responde a una cierta medida (costo, distancia) entre y , entonces el problema es encontrar el circuito Hamiltoniano mnimo del grafo. En este estudio se consideraran problemas simetricos, es decir, para todo par de nodos ”[12].
3. DESARROLLO
Con el proposito de estudiar la diversidad de comportamiento de los algoritmos evolutivos cuando estos sufren cambios en su estructura, y poder conseguir una combinacion de elemen- tos que proveen el mejor desempeo posible, se realizaron tres diferentes versiones. La variante principal entre estos algoritmos es el uso de Gap Generacional (porcentaje de reemplazo de indi- viduos en cada generacion) y el criterio de in- sercion de la descendencia en las nuevas pobla- ciones.
La version 1 es un algortimo generacional con elitismo, es decir, la poblacion cambia com- pletamente de generacion en generacion preser- vando solamente el mejor individuo, con el ob- jetivo de asegurar que el mejor individuo en cada generacion prevalezca, y posee un crite- rio de insercion basado en insertar en la nue- va poblacion solo a aquel individuo (hijo) que presente una mejor aptitud que el peor individ- uo de la poblacion anterior. Las versiones 2 y 3 poseen Gap Generacional, donde solo un por- centaje de la poblacion es reemplazada en cada generacion, presentando como variante el crite- rio de insercion de la descendencia en las nuevas poblaciones. En la version 2 dicho criterio, al
igual que la version 1, se basa en insertar en la nueva poblacion solo a aquel individuo (hijo) que presente una mejor aptitud que el peor individ- uo de la poblacion anterior. Por ultimo, la ver- sion 3 se basa en insertar en la nueva poblacion solamente al individuo cuya aptitud sea mejor a la de aquel que se encuentre en la posicion (TamanoPoblacion - GapGeneracional), es decir, al mejor individuo del porcentaje de reemplazo de la poblacion.
Mediante la realizacion de pruebas experi- mentales se pudo determinar que el metodo de seleccion de Whitley[13] aportaba mejoras signi- ficativas en la version 1 de los algoritmos. Mien- tras que en las versiones 2 y 3, el metodo de se- leccion de la Rueda de la Ruleta arrojo mejor de- sempeno.
Un importante elemento incorporado a to- das las versiones de los algortimos propuestos, es un parametro que determina la maxima cantidad de intentos que se generan para conseguir un in- dividuo que cumpla con el criterio de insersion en la nueva poblacion. Terminado el intento de busqueda orientado por este parametro y dado el caso de no haberse cumplido el criterio de inser- cion, se insertara entonces a la nueva poblacion aquel padre que posea mejor aptitud.
3.1. Esquema de Paralelizacion Propuesto
El diseno del algoritmo paralelo propuesto se centra en el llamado Modelo de Islas. Di- cho modelo se basa en la existencia de una poblacion global la cual se encuentra dividida en subpoblaciones. Cada subpoblacion evoluciona en un procesador de manera independiente. Tran- scurrido un numero determinado de generaciones (dicho perodo es conocido como perodo de mi- gracion), se lleva a cabo la migracion del mejor individuo de cada subpoblacion hacia un proceso maestro o centralizador. Una vez recibidos estos individuos por el proceso centralizador, se lleva a cabo un proceso de cruce entre ellos, sin ser reemplazados. Se maneja como criterio de de- cision, el individuo mejor adaptado, entre aque-
llos que migraron as como los resultantes del cruce; el cual procedera a reemplazar al peor in- dividuo de las subpoblaciones, as como al del proceso centralizador.
Es importante destacar que con la intencion de llevar a cabo una exploracion mas exhausti- va del espacio de busqueda, se decidio agregar al proceso centralizador un efecto de ruido. Este efecto consiste en modificar la probabilidad de mutacion de este proceso a un valor elevado, de- jando intactos el resto de los parametros.
En la figura 1 se puede observar grafica- mente como se lleva a cabo el proceso descrito anterior mente.
Figura 1. Proceso de Migracion
3.2. Pseudo-Codigos de los Algorit- mos Evolutivos
La figura 2 muestra el esquema general de los algoritmos isecuenciales implementados.
El algoritmo paralelo consiste en la par- alelizacion del algoritmo secuencial tratado an- teriormente. Este hecho conlleva a compartir una estructura similar as como todos aquellos oper- adores geneticos que influyen en la ejecucion del algoritmo en cada subproceso. En la figura 3 se muestra como se efectua la comunicacion entre los procesos involucrados (MPI), y en la figura 4 se muestra la paralelizacion de grano fino realiza- do al algoritmo secuencial (OpenMP).
Inicio ;
Inicializar P( t ); Evaluar P( t ); Ordenar P( t ); Para
hasta (Num Generaciones) hacer
Mientras (Se Genera Nueva Pobl) hacer Mientras (No Condicion Insercion) hacer
Seleccion P( t ) de P( );
Cruce PMX P( t ); Mutacion P( t ); Evaluar P( t ); Si (Criterio Insercion) entonces
Insertar Indv P( t ); Si (No Criterio Insercion) entonces
Insertar Mejor Padre P( t ); Ordenar P( t ); Fin
Figura 2. Algoritmo Secuencial Propuesto
3.3. Pruebas Experimentales
Los algoritmos propuestos fueron desarrol- lados bajo el lenguaje de programacion ANSI C, en una plataforma Unix (Linux), y usando com- piladores desarrollados por Portland Group Com- piler. La arquitectura utilizada para llevar a cabo las pruebas es un Cluster Beowulf llamado Ba- bieca, con sistema operativo Linux que consta de 16 nodos duales Intel Xeon, conectadas a traves de una red Myrinet de alta velocidad, que soporta aplicaciones paralelas con MPI y OpenMP. Este Cluster esta ubicado en el Computational Science Research Center de la San Diego State Universi- ty, San Diego, California, USA.
Inicio ;
Inicializar P( t ); Evaluar P( t ); Ordenar P( t ); Para
hasta (Num Generaciones) hacer
Si (Es Centralizador) entonces Recibir Mejores Ind Cruzar Mejores Ind Seleccionar Mejor Ind Enviar Mejor Ind a Subprocesos
Sino Enviar Mejor Ind a Centralizador Recibir Mejor Ind de Centralizador
Fin
Figura 3. Esquema de Comunicacion del Algorit- mo Paralelo Propuesto
3.3.1. Casos de Estudio
Las instancias del TSP utilizadas en este trabajo como casos de estudio tienen su ori- gen en problematicas planteadas en la vida real. Todas las instancias fueron obtenidas de la biblioteca TSPLIB (http://www.iwr.uni- heidelberg.de/groups/comopt/software/TSPLIB95/).
Nombre Tamano Tipo de Problema pcb442 442 Problema de Perforacion rat783 783 Trazado de Malla pr1002 1002 Recorrido de Ciudades rl1304 1304 Recorrido de Ciudades
Cuadro 1. Casos de Estudio Utilizados en las Pruebas
Cabe destacar que el numero de nodos de
Inicio ;
Inicializar P( t ); Evaluar P( t ); Ordenar P( t ); Para
hasta (Num Generaciones) hacer
Mientras (Se Genera Nueva Pobl) hacer Mientras (No Condicion Insercion) hacer
Seleccion P( t ) de P( );
Cruce PMX P( t ); #PRAGMA OMP PARALLEL SECTION
Mutacion P( t ); Evaluar P( t ); Si (Criterio Insercion) entonces
#PRAGMA OMP PARALLEL SECTION FOR Insertar Indv P( t );
Si (No Criterio Insercion) entonces #PRAGMA OMP PARALLEL SECTION FOR
Insertar Mejor Padre P( t ); Ordenar P( t );
Fin
Figura 4. Subrutina Paralela del Algoritmo Se- cuencial
cada instancia se traduce en la cantidad de ciu- dades a ser visitadas para completar el camino.
3.3.2. Parametros de los Algoritmos Evolutivos
Los parametros utilizados para las ejecu- ciones de los algoritmos secuenciales se pueden observar en el cuadro 2. Como se puede ver, estos tipos de parametros son comunes para cualquier algoritmos evolutivo.
Los parametros utilizados en las ejecu- ciones de los algoritmos paralelos se pueden apreciar en el cuadro 3. Se puede observar que
Tamano de la Poblacion 400 Numero de Generaciones 20.000
Probabilidad de Cruce 0,85 Probabilidad de Mutacion 0,15
Gap Generacional (Version 2 y 3) 0,30 Numero de Corridas 20
Cuadro 2. Param. de los Algoritmos Secuenciales
este conjunto de parametros difieren del caso tradicional. Parametros de usuario tales como perodo de migracion, probabilidad de cruce de centralizador y probabilidad de mutacion de cen- tralizador son nuevos elementos que se intro- ducen en las versiones paralelas.
Tamano Global de la Poblacion 400 Numero de Generaciones 20.000
Probabilidad de Cruce 0,85 Probabilidad de Mutacion 0,15
Gap Generacional (Version 2 y 3) 0,30 Numero de Corridas 20
Perodo de Migracion 20 Prob. de Cruce de Centralizador 0,25
Prob. de Mutacion de Centralizador 0,75
Cuadro 3. Param. de los Algoritmos Paralelos
4. RESULTADOS
En esta seccion se muestran y discuten los resultados obtenidos de las ejecuciones en las arquitecturas paralelas. Esto resultados se basan en las ejecuciones realizadas con 4 y 8 procesos MPI; todos con una poblacion global de in- dividuos.
En las siguientes figuras se muestra la con- vergencia del promedio de los mejores individ- uos de todas las versiones de los algoritmos se- cuenciales y paralelos. En las figuras 5, 6, 7 y 8 se utilizan 4 procesos (subpoblaciones), con un tamano de cada subpoblacion igual a in- dividuos. En las figuras 9, 10, 11 y 12 se uti-
lizan 8 procesos, con un tamano de cada sub- poblacion igual a individuos. Estos prome- dios se obtuvieron en base a 20 ejeciciones real- izadas. Los algoritmos version 1 se referencian en las figuras como Sec Simple y Par Simple para las versiones secuenciales y paralelas respectiva- mente. Los algoritmos version 2 se referencian como Sec sin Presion y Par sin Presion, y final- mente, los algoritmos version 3 se referencian co- mo Sec con Presion y Par con Presion. Para to- das las graficas que se muestran el eje de las ab- cisas representa el numero de generaciones real- izadas, y el eje de las ordenadas los logaritmo en base 10 del promedio del valor objetivo de los in- dividuos en cada iteracion.
En estas figuras se puede observar que el algoritmo evolutivo paralelo mixto que obtuvo una mejor solucion es la version 3 paralela, el cual se encuentra estructurado con un gap gen- eracional de y posee un criterio de presion en el proceso evolutivo. Por ejemplo, en la grafica 5, al final de las 20.000 iteraciones el algoritmo secuencial version 3 consigue el valor objetivo 151.138,4 mientras que la version paralela ya lo- gra conseguir dicho valor en la iteracion 6.653, y finalmente converge al valor objetivo 136.741,15.
5
5,1
5,2
5,3
5,4
5,5
5,6
5,7
5,8
5,9
6
Generaciones
Paralelo_con_Presión Paralelo_sin_Presión
Par_Simple Sec_Simple
Figura 5. Algs Secuenciales vs. Algs Paralelos (442 nodos – 4 procesos)
4,4
4,5
4,6
4,7
4,8
4,9
5
5,1
5,2
5,3
5,4
1 2001 4001 6001 8001 10001 12001 14001 16001 18001
Generaciones
Sec_sin_Presión Sec_con_Presión Sec_Simple Par_sin_Presión Par_con_Presión Par_simple
Figura 6. Algs Secuenciales vs. Algs Paralelos (783 nodos – 4 procesos)
6
6,1
6,2
6,3
6,4
6,5
6,6
6,7
6,8
6,9
1 2250 4499 6748 8997 11246 13495 15744 17993 Generaciones
L o
g (V
a lo
r_ O
b je
tiv o
Sec_con_Presión Par_Simple
Par_sin_Presión Par_con_Presión
Figura 7. Algs Secuenciales vs. Algs Paralelos (1002 nodos – 4 procesos)
4.1. Tiempos de Ejecucion
A continuacion, en los cuadros compara- tivos 4 y 5 se muestran los tiempos promedio de ejecucion obtenidos para todas las versiones de los algoritmos desarrollados.
Se puede observar que el algoritmo que pre- senta un menor tiempo de respuesta para todas las instancias estudiadas es el paralelo mixto ver- sion 2, el cual se escuentra estructurado con un gap generacional de y no posee ningun cri- terio de presion en el proceso evolutivo. Sin em-
6,2
6,4
6,6
6,8
7
7,2
1 1979 3957 5935 7913 9891 11869 13847 15825 17803 19781
Generaciones
Sec_Simple Sec_sin_Presión Sec_con_Presión Par_Simple Par_sin_Presión Par_con_Presión
Figura 8. Algs Secuenciales vs. Algs Paralelos (1304 nodos – 4 procesos)
5
5,1
5,2
5,3
5,4
5,5
5,6
5,7
5,8
5,9
6
1 2389 4777 7165 9553 11941 14329 16717 19105 Generaciones
L o g (V
Sec_Simple
Figura 9. Algs Secuenciales vs. Algs Paralelos (442 nodos – 8 procesos)
bargo, como se observo en la seccion anterior, el algoritmo que arroja mejores resultados es la ver- sion 3, aun con un tiempo de ejecucion cercano al obtenido por la version 2.
Para calcular la aceleracion obtenida por el algoritmo evolutivo paralelo mixto propuesto so- bre su version secuencial, se utiliza la version 3 de los algoritmos desarrollados, por ser estos los que proveen una mejor calidad de solucion con un buen tiempo de respuesta.
La aceleracion obtenida por el algoritmo paralelo mixto se calcula a traves de la siguiente
4,4
4,5
4,6
4,7
4,8
4,9
5
5,1
5,2
5,3
5,4
1 2001 4001 6001 8001 10001 12001 14001 16001 18001
Generaciones
Sec_sin_Presión Sec_con_Presión Sec_Simple Par_sin_Presión Par_con_Presión Par_simple
Figura 10. Algs Secuenciales vs. Algs Paralelos (783 nodos – 8 procesos)
6
6,1
6,2
6,3
6,4
6,5
6,6
6,7
6,8
6,9
1 2198 4395 6592 8789 10986 13183 15380 17577 19774
Generaciones
Sec_con_Presión Par_Simple
Par_sin_Presión Par_con_Presión
Figura 11. Algs Secuenciales vs. Algs Paralelos (1002 nodos – 8 procesos)
formula:
(1)
donde
es el tiempo que tarda el algoritmo se- cuencial en llegar a su mejor solucion, y
es
el tiempo tomado por el algoritmo paralelo en al- canzar este mismo valor.
En el cuadro 6 se muestra la aceleracion obtenida por el algoritmo evolutivo paralelo mix- to version 3 para todas las instancias estudiadas con 4 y 8 procesos MPI. Se puede observar que
6,2
6,4
6,6
6,8
7
7,2
1 2028 4055 6082 8109 10136 12163 14190 16217 18244
Generaciones
o )
Sec_Simple
Sec_sin_Presión
Sec_con_Presión
Par_Simple
Par_sin_Presión
Par_con_Presión
Figura 12. Algs Secuenciales vs. Algs Paralelos (1304 nodos – 8 procesos)
442 nodos 783 nodos Sec-Ver. 1 1098.87 segs 3336.80 segs Sec-Ver. 2 318.21 segs 868.46 segs Sec-Ver. 3 343.58 segs 991.57 segs
Par-4procs-Ver. 1 698.98 segs 1786.94 segs Par-4procs-Ver. 2 235.23 segs 660.94 segs Par-4procs-Ver. 3 257.91 segs 757.49 segs Par-8procs-Ver. 1 371.04 segs 1026.39 segs Par-8procs-Ver. 2 123.34 segs 335.06 segs Par-8procs-Ver. 3 131.44 segs 375.93 segs
Cuadro 4. Tiempos de Ejecucion de los Algorit- mos
este algoritmo en todas las instancias y con 4 pro- cesos MPI presenta una aceleracion cuasi–lineal, y para las ejecuciones con 8 procesos MPI se ob- tuvo una aceleracion significativa en relacion a la version secuencial.
4.2. Comparacion de Algoritmo Evo- lutivo Paralelo Mixto vs. Deter- minstico
El algoritmo determinstico seleccionado para llevar a cabo la comparacion planteada es un algoritmo Branch and Bound (Ramificar y Acotar), desarrollado en [14]. Dicho algoritmo
1002 nodos 1304 nodos Sec-Ver. 1 5218.58 segs 8864.75 segs Sec-Ver. 2 1366.91 segs 2234.42 segs Sec-Ver. 3 1612.75 segs 2724.29 segs
Par-4procs-Ver. 1 2729.26 segs 4072.12 segs Par-4procs-Ver. 2 1003.21 segs 1610.45 segs Par-4procs-Ver. 3 1254.04 segs 2129.69 segs Par-8procs-Ver. 1 1529.52 segs 2395.38 segs Par-8procs-Ver. 2 527.01 segs 850.92 segs Par-8procs-Ver. 3 612.24 segs 1027.46 segs
Cuadro 5. Tiempos de Ejecucion de los Algorit- mos
Instancias 4 procs MPI 8 procs MPI 442 nodos 4.00 5.28 783 nodos 3.46 4.98
1002 nodos 3.17 4.76 1304 nodos 3.08 4.55
Cuadro 6. Tabla de Aceleracion
fue disenado e implementado bajo un esque- ma de programacion multihilo, haciendo uso del lenguaje de programacion ANSI C. Se selec- ciono el algoritmo evolutivo paralelo mixto ver- sion 3 para llevar a cabo la comparacion, por ser este el que arroja mejores resultados en todas las versiones paralelas.
Es importante destacar que los dos algo- ritmos involucrados en esta comparacion fueron ejecutados en la misma plataforma computa- cional, ya descrita en el captulo anterior.
En el cuadro 7 se muestran los resultados referentes a los tiempos de respuesta obtenidos por ambos algoritmos. Para el algoritmo evolu- tivo paralelo mixto se utilizo una instancia de 29 nodos, mientras que para el determinstico la prueba se llevo a cabo con una instancia de 17 no- dos, siendo esta la instancia de mayor dimension probada en [14]. La razon por la cual el algoritmo evolutivo paralelo mixto no se estudio con una in- stancia de menor dimension, se debio a la inexis- tencia de dicha instancia en un formato compati- ble con las estructuras de datos manejadas por el
algoritmo. Es importante mencionar que el algo- ritmo evolutivo paralelo mixto llego a la solucion optima de la instancia estudiada.
Algoritmos Tiempos Alg. Determinstico 7309 segs
AE Paralelo Mixto (4 procs) 0.77 segs AE Paralelo Mixto (8 procs) 0.52 segs
Cuadro 7. Tiempos de Ejecucion de los Algorit- mos
En la tabla 7 se puede apreciar que a pesar que la instancia seleccionada para el algoritmo determinstico es menor a la utilizada por el al- goritmo evolutivo paralelo mixto, se observa un tiempo de respuesta mucho menor por parte del algoritmo evolutivo paralelo mixto sobre el de- terminstico.
4.3. Modulo de Visualizacion
Para mejor apreciacion de la evolucion de los algoritmos desarrollados, se creo un modulo de visualizacion. Este modulo se implemento uti- lizando la biblioteca grafica OpenGL. La visu- alizacion se lleva a cabo graficando el mejor camino existente en la poblacion cada k genera- ciones, siendo k un valor previamente estableci- do.
Al momento de la ejecucion de un algorit- mo, la visualizacion de la evolucion del mismo es opcional. Sin embargo, si se selecciona la opcion de no activar el modulo de visualizacion, los al- goritmos devuelven un archivo donde se encuen- tran registrados los mejores caminos encontrados cada k generaciones en el proceso evolutivo. Este archivo permite la posterior activacion de un al- goritmo de graficacion independiente, que forma parte del modulo descrito, para llevar a cabo la visualizacion.
En las figuras 13, 14 se muestra un ejemplo del funcionamiento de este modulo para una in- stancia de 29 ciudades. Estas figuras representan la evolucion secuencial del algoritmo en busque- da de la solucion optima.
Figura 13. Modulo de Visualizacion (1)
Figura 14. Modulo de Visualizacion(2)
AGRADECIMIENTOS
Nosotros queremos agradecer al Consejo de Desarrollo Cientfico y Huanstico de la Univer- sidad de Carabobo por el financiamiento otorga- do a traves de una ayuda menor para la investi- gacion. As mismo, tambien quisieramos agrade- cer al Computational Sciences Research Center (CSRC) de San Diego State University (SDSU), USA, por la colaboracion prestada para la real- izacion de este trabajo.
5. CONCLUSIONES
Luego de realizar las pruebas experimen- tales con las tres versiones de los algoritmos de- sarrollados, en busqueda de un algoritmo evoluti- vo paralelo mixto para el TSP que fuera capaz de
proveer una buena solucion y un reducido tiempo de respuesta, en relacion a su equivalente secuen- cial, se puede concluir que el mejor algoritmo de- sarrollado es la version 3.
En la evaluacion de los algoritmos realiza- dos tambien se pudo observar que el uso de gap generacional en estos, ayuda a lograr una con- vergencia mas rapida, as como la obtencion de un mejor resultado final. De igual manera se aprecio el aporte conseguido mediante la imple- mentacion de un criterio de presion al momento de insertar un nuevo individuo en la poblacion, siendo la presion ejercida, el insertar a un indi- viduo solo si este posee una mejor aptitud que el mejor individuo del porcentaje de reemplazo de la poblacion (TamanoPoblacion - GapGenera- cional).
Se pudo constatar que el uso del paralelis- mo mixto es una herramienta util y aplicable a los algoritmos evolutivos debido al paralelismo intrnseco en el proceso evolutivo. Los elementos utilizados para la construccion del paralelismo mixto (MPI y OpenMP) lograron ambos la acel- eracion del proceso evolutivo, obteniendo tam- bien una mejora en la calidad de solucion. Este ultimo factor se debe al hecho que al trabajar con subpoblaciones que evolucionan de manera inde- pendiente unas de otras, existe mayor diversidad en el espacio de busqueda sobre el cual se traba- ja, siendo este un elemento determinante en todos los procesos de optimizacion combinatoria si se busca obtener una mejor solucion.
Por ultimo, se plantea evaluar para el al- goritmo seleccionado distintos operadores evo- lutivos (cruce, mutacion y seleccion) buscando conseguir una correcta combinacion de estos que sean capaces de aportar mejoras significativas en la solucion. Desde el punto de vista del par- alelismo se propone el estudio y evaluacion de otras estrategias de migracion entre subpobla- ciones, as como tambien, explotar de una manera mas eficiente el paralelismo multihilo esperando obtener tiempos de respuesta mas bajos. Es im- portante aconsejar la evaluacion del efecto de im- plementar distintos esquemas de paralelizacion de grano grueso, como por ejemplo el esquema de Farming. Y finalmente, se propone ampliar
las funcionalidades del modulo de visualizacion, permitiendo el despliegue de informacion rele- vante al proceso evolutivo.
Referencias
[1] J. Suh P. Jog and D. Van Gucht. Parallel genetic algorithms applied to the travel- ing salesman problem. SIAM Journal on Optimization, 1(4):515–529, 1991.
[2] J. L. Blanton P. Mutalik, L. R. Knight and R. L. Wainwright. Solving Combinatori- al Optimization Problems Using Parallel Simulated Annealing and Parallel Genet- ic Algorithms. pages 1031–1038, 1992.
[3] M. Racke S. Tschoke, R. Luling and B. Monien. Solving the traveling sales- man problem with a parallel branch- and-bound algorithm on a 1024 proces- sor network. Technical report, Depart- ment of Mathematics and Computer Sci- ence. University of Paderborn, Germany, 1992.
[4] M. Schwehm. Parallel Population Models for Genetic Algorithms. Technical report, Universitat Erlangen–Nurnberg, Erlangen, Germany, 1994.
[5] L. Villamizar. Optimizacion del Problema del Agente Viajero (TSP) Usando Algo- ritmos Geneticos Paralelos. Master’s the- sis, Facultad de Ingeniera. Universidad de Carabobo. Valencia, Venezuela, 1998.
[6] P. Calgari. Parallelization of Population - Based Evolutionary Algorithms for Com- binatorial Optimization Problems. PhD thesis, Presentee Au Departement DInfor- matique. Ecole Polytechnique Federale de Lausanne. Lausanne - Francia, 1999.
[7] G. Larrazabal. Un Algoritmo Genetico Paralelo Grano Grueso. Technical report, Facultad de Ciencias y Tecnologa. Depar- tamento de Computacion. Universidad de Carabobo. Valencia, Venezuela, 1996.
[8] J. Holland. Adaptation in Natural and Ar- tificial Systems. Ann Harbord. University of Michigan Press, 1975.
[9] Z. Michalewicz. Genetic Algorithms + Data Structures = Evolution Programs. Springer–Verlag, 1996.
[10] D.E. Goldberg and R. Lingle. Alleles, Loci and the TSP.
[11] W. Cook D. Applegate, R. Bixby and V. Chvatal. Finding Cuts in the TSP (a Preliminary Report). Technical report, DIMACS, 1995.
[12] M. Chiarandini L. Paquete and T. Stutzle. A Study of Local Optima in the Biobjective Traveling Salesman Problem. 2002.
[13] M. Gordon and D. Whitley. Serial and Par- allel Genetic Algorithms as Function Op- timizers. Technical report, Department of Computer Science. Colorado State Univer- sity. USA, 1993.