Algoritmos evolutivos distribuidos sobre dispositivos Bluetooth P. Garc´ ıa-S´anchez, J.P. Sevilla, J.J. Merelo, F.A. Casado, P.A. Castillo, J.L.J. Laredo, y A.M. Mora 1 Resumen— En este trabajo se presenta un entorno basado en Java que permite el desarrollo acil de aplicaciones de conectividad entre dispositivos Blue- tooth. Actualmente es muy dif´ ıcil programar aplica- ciones para estos dispositivos, por lo que se hace nece- sario disponer de una API de alto nivel que facilite la creaci´on de aplicaciones en las plataformas Java ME y J2SE, las m´ as extendidas. Se muestra el desarro- llo de un entorno utilizando una arquitectura en ca- pas siguiendo un modelo cliente/servidor, basado en eventos y con comunicaci´on as´ ıncrona. Como ejemplo se muestra la creaci´on de una aplicaci´on que resuelve dos problemasde computaci´onevolutiva conocidos (el problema del viajantede comercio y la funci´on marea) usando un enfoque paralelo distribuido. Palabras clave — Bluetooth, computaci´onevolutiva paralela, algoritmos gen´ eticos I. Introducci´ on E S un hecho innegable que la tecnolog´ ıa m´ ovil est´ a cada vez m´ as presente en la sociedad. A esta presencia, cada vez m´ as patente, se unen las nuevas formas de comunicaci´ on entre estos dispositi- vos, que ofrecen al usuario un gran abanico de posi- bilidades. Estos dispositivos tienen una potencia de omputo comparable a los ordenadores de hace pocos nos, potencia de c´ alculo que en general est´ a de- saprovechada y que con las herramientas adecuadas podr´ ıa utilizarse para resolver problemas complejos. Una de las tecnolog´ ıas que m´ as crecimiento est´ a te- niendo es Bluetooth [1], que permite la comunicaci´ on sin cables entre dispositivos m´ oviles, aunque en dis- tancias no superiores a 100 metros. El porcentaje de nuevos terminales que usan esta tecnolog´ ıa es cada vez mayor, y la distancia de comunicaci´ on est´ a au- mentando, pero sus posibilidades no est´ an siendo aprovechadas en mucha medida, ya que sus usuarios se limitan a usarla en el intercambio de archivos con otros dispositivos, sin llegar a aprovechar sus capaci- dades “interactivas”. La finalidad del entorno presentado en este tra- bajo es facilitar la creaci´ on de aplicaciones de comu- nicaci´ on de manera r´ apida y escalable. El dise˜ no en capas facilita enormemente la estandarizaci´ on y la re- utilizaci´ on a la hora de dise˜ nar una aplicaci´ on [2]. Es- tas aplicaciones pueden ser de cualquier tipo, desde chats hasta videojuegos, pasando por el manejo de otros dispositivos a distancia (como un PC) y el uso de dispositivos m´ oviles en programaci´ on distribuida, como el caso que vamos a presentar. El resto del trabajo se estructura como sigue: primero se describe el estado del arte con algunos ejemplos de aplicaciones basadas en Java existentes 1 Dpto. de Arquitectura y Tecnolog´ ıa de Computadores, Univ. Granada, e-mail: pgarcia@geneura.ugr.es (seccion II). La siguiente secci´on (III) explica las tec- nolog´ ıas utilizadas en el desarrollo de este trabajo. A continuaci´ on mostramos (secci´on V) el dise˜ no de la arquitectura del entorno (llamada Ulfsark) y el desa- rrollode una aplicaci´on de computaci´on distribuida y los experimentos y resultados obtenidos. Finalmente se exponen las conclusiones y las l´ ıneas de trabajo futuro. II. Estado del arte Actualmente existe una gran cantidad de apli- caciones comerciales que utilizan las posibilidades de comunicaci´ on Bluetooth en dispositivos m´ oviles. Muchas son espec´ ıficas de cada fabricante de dispo- sitivos y utilizan lenguajes propietarios y poco acce- sibles. Otras aplicaciones est´an escritas en C++ y olo son v´ alidas en cierto tipo de dispositivos, como BuzzZone 1 . Adem´ as existen algunos proyectos realizados en Java, pero tambi´ en son comerciales, siendo el aximo referente MobiLuck 2 . Simult´ aneamente al desarrollo de nuestro trabajo han surgido otros proyectos para comunicar disposi- tivos Bluetooth con c´odigo abierto basados en Java como Valhalla. 3 Es el proyecto m´as avanzado de todos los encontrados, muy similar al mostrado en este trabajo, pero sin hacer una separaci´onen capas, por lo que la creaci´ on de nuevas aplicaciones es m´ as dif´ ıcil, al estar orientado ´ unicamente a la realizaci´ on de un chat desde el principio de su dise˜ no. En lo relativo a comunicaci´on distribuida uti- lizando dispositivos m´oviles cabe destacar el proyecto Boincoid 4 . Se ejecuta sobre dispositivos que uti- lizan el sistema operativo Android y permite donar el tiempo de inactividad del dispositivo para c´ alculo en proyectos cient´ ıficos, siguiendo la filosof´ ıa del proyecto Boinc [3]. Sin embargo actualmente no se comercializan dispositivos que utilicen dicho sistema operativo. III. Tecnolog´ ıas usadas A continuaci´ on describiremos en detalle los pro- tocolos de comunicaciones y herramientas de progra- maci´ on utilizadas en el desarrollo de nuestro trabajo. Bluetooth es la norma que define un est´ andar global de comunicaci´oninal´ambricaque posibilita la transmisi´ on de voz y datos entre diferentes equipos mediante un enlace por radiofrecuencia [1], [4]. Los 1 http://www.buzzone.net/eng/technologies.html 2 http://www.mobiluck.com/ 3 http://www.valhallachat.com/ 4 http://boincoid.sourceforge.net/index.html