Service Oriented Architecture for Research (an example in Evolutionary Computation)

Past week I presented my research line to other young researchers of the CITIC-UGR, inside the CITICoffee meetings (a Science Coffee to discuss about our work, without bosses or pressure, but with coffee and pastries!).

Although the slides are in Spanish, there are also diagrams with text in English, so it is not difficult to follow. They also include a Jackie Chan meme!

If you are interested in this kind of research (further results are now in the revision process), check this preliminary paper: draft or published version in Springer Link.

MorAnts. Mi primera investigación ‘rentable’

Pues si. :D

Recientemente y compaginando, por una parte el I Hackatón del reto de inteligencia artificial de Google en la UGR, propuesto por la Oficina de Software Libre de dicha universidad, y por otra el Google AI Challenge 2011, me decidí a participar en ambos ‘concursos’, creando un bot capaz de jugar de forma autónoma (y combatir contra otros rivales) al juego ANTS, implementado para la ocasión por el Computer Science Club de la Universidad de Waterloo.

Grosso modo, se trata de un juego de estrategia en tiempo real en el que debemos dirigir a una serie de hormigas en mapas generalmente laberínticos, con el objetivo de eliminar a todas sus rivales, principalmente los nidos de los que salen. Para ello deberemos buscar comida (para generar nuevas hormigas), sortear obstáculos en el mapa y aplicar reglas algo complejas en los enfrentamientos, para los que es conveniente moverse en grupos.

En la siguiente presentación, que yo mismo hice durante la introducción a dicho Hackaton, se pueden ver los pormenores de la competición:

En definitiva, a pocos días de la finalización del plazo de ambos concursos, diseñé un bot con una sencilla máquina de estados finitos, en la cual se tenían 4 estados básicos. A modo de resumen:

  •  Explorando -> estado en el que las hormigas se mueven de forma pseudoaleatoria, ya que según su ID (módulo 4) se mueven en una dirección, consiguiendo que éstas se agrupen al tiempo que exploran zonas diferentes del mapa.
  •  Ir hacia comida -> las hormigas se mueven hacia la unidad de comida más cercana.
  •  Ataque a enemigo -> todas las hormigas que lo vean se dirigen hacia un enemigo.
  •  Ataque a colinas -> todas las hormigas que la vean se dirigen hacia una colina enemiga.

En dichos estados se hacían varias consideraciones, como evitar obstáculos (con movimientos simples) o evitar el choque entre hormigas propias (que supone la ‘muerte’ de las mismas).

El bot lo bautizé como MorAnts (original, ¿verdad? :D) y lo liberé con una licencia GPL en la Forja de Rediris, dado que era requisito imprescindible del concurso de la OSL-UGR. ;)
El paquete con los fuentes, así como varios ejemplos de uso y el juego ANTS, se puede decargar -> aquí <-

Por falta de tiempo (en gran parte debido a los requititos de mi nenita, Julia :)), no pude hacer una mejor aproximación, dejando para un futuro mejoras (sustanciales) de los estados, como por ejemplo: búsqueda de caminos mínimos, rodear obstáculos, evaluar enemigos antes de atacar (número, agrupación), etc.

Además, como ‘buenos’ investigadores que somos, queda pendiente la aplicación de técnicas de las que a nosotros nos gustan, es decir, cosicas de Soft Computing (Algoritmos Genéticos, Algoritmos basados en Colonias de Hormigas o Redes Neuronales, por ejemplo). :D

Finalmente y yendo a la parte pragmática del trabajo, el caso es que aún siendo mi bot bastante ‘regulero’ (en comparación con otros del AI Challenge de Google), conseguí ganar el concurso propuesto por la Oficina de Software Libre de la UGR, cuyo premio consistía en un cheque regalo para coger ‘material’ en una tienda de informática. :D

Para los interesados diré que mis regalos fueron un e-reader y un disco duro multimedia, Yuhuuuuuu! :D

Así da gusto investigar. ;)

Estudio de un Operador de Mutación para Algoritmos Genéticos Basado en la Teoría de la Criticalidad Auto-Organizada

Our studies on the sandpile mutation operator were extended, presented at MAEB2012 and published in the proceedings (in spanish). The abstract:

La mutación montón de arena es un operador para Algoritmos Genéticos basado en un modelo de Criticalidad Auto-Organizado con el mismo nombre. El operador ha sido desarrollado con el objetivo de resolver problemas con función objetivo variable. Este artículo propone un estudio del operador y la optimización de su desempeño, experimentando diferentes estrategias que conectan el modelo auto-organizado y el Algoritmo Genético. Las pruebas sobre el algoritmo se desarrollan con un gran conjunto de problemas dinámicos, diseñados con un generador de problemas a partir de funciones-base no dinámicas. Las mejores configuraciones del algoritmo son comparadas con dos AGs recientemente propuestos para optimización dinámica. Demostramos que un AG con el operador de mutación montón  de arena es eficiente para el conjunto de pruebas que es propuesto.

Using free cloud storage services for distributed evolutionary algorithms in GECCO 2011

Esta semana ha sido el GECCO en Dublin. Yo he asistido desde el jueves 14 hasta el sábado 16 y aunque no he podido ir a la totalidad del congreso si me ha dado tiempo a ver el ambiente general.
En este congreso he presentado el artículo titulado Using free cloud storage services for distributed evolutionary algorithms. Y la presentación la podéis encontrar en SlideShare.

En este artículo podéis encontrar cómo hemos usado Dropbox para crear un multicomputador que evoluciona un conjunto de islas que cooperan para resolver un Algoritmo Evolutivo Paralelo que actúa sobre dos problemas típicos de Computación Evolutiva (MMDP y 4-TRAP) y que, hasta el número de computadores donde lo hemos probado, es escalable puesto que los tiempos de evaluación de los individuos disminuyen a medida que añadimos nodos de computación al multi-computador.

Después de la presentación algunos de los asistentes realizaron algunas preguntas que os puedo aclarar por si os surge la duda. La primera era si todo el tráfico que se genera en la red que comparten los nodos del multi-computador llega al servidor de Dropbox para después distribuirse. Y la respuesta a esta pregunta es claramente “no”. Está claro que a la vista de los resultados de este artículo y el presentado en Nueva Orleans en CEC (Cloud-based Evolutionary Algorithms: An algorithmic study) Dropbox distribuye los datos primero a los ordenadores donde está sincronizado y después de eso al servidor de Dropbox.

Respecto a la segunda pregunta, estaba relacionada con el esquema de evolución de las islas y en el artículo podéis encontrar cómo está especificado con detalle. Una descripción general sería que cada isla evoluciona una población de individuos con un esquema generacional y un algoritmo evolutivo clásico con un operador de cruce uniforme y un mutador tipo flip-flop para codificación binaria.

The bestest MasterMind Algorithm ever

Well, by now, you must be a bit tired of Mastermind papers but we are not, since we are obtaining the best results ever. After introducing end games to streamline the end of the algorithms, we have tweaked the evolutionary algorithm, adding a permutation operator, for instance, to reduce the number of evaluations needed to find the solution. The results is the best yet, but, of course, there’s more to come in the future.
This paper was presented at CEC 2011 in the games session, and raised quite a bit of interest. The paper will be available from IEEExplore soon, but you can request copies now if you want

From Emergence to Emergency (exit)

Despite the hotel’s firealarm, which forced us all to leave the room, out to the “pleasant” New Orleans’ weather, when I was on slide 12, I eventually finished the presentation of this paper in the 2011 Congress on Evolutionary Computation:

Fernandes, Isidoro, Barata, Merelo, Rosa, From Pherographia to Color Pherographia – Color Sketching with Artificial Ants

Abstract—Ant algorithms are known to return effective results in those problems that may be reduced to finding paths through a graph. However, this class of bio-inspired heuristics have raised the interest of the artistic community as well, namely of the artists that work on the blurred border between art and science. This paper describes an extension of an ant algorithm that, although has been designed as an edge detection tool and a model for collective perception, has also been used for creating artworks that were exhibited to a heterogeneous audience. The algorithm is a self-organized and stigmergic social insects’ model that is able to evolve lines along the contours of an image, in a decentralized and local manner. The result is the emergence of global patterns called pheromone maps. These maps – which were later named with the term pherographia – are grayscale sketches of the original black-and-white image on top of which the model evolves. This work goes beyond grayscale images and addresses colored pherographia, by proposing several image transformation and border selection methods based on behavioral variations of the basic algorithm.

Parallel Ants at IWANN 2011

Some days ago we presented at the IWANN Conference our new work devoted to study the parallelization of Multi-Objective Ant Colony Optimization algorithms (MOACOs) following different schemes.

It was a very funny presentation (and very interesting, of course :D), because the slides included some CC memes. ;)

These are the slides:

The whole paper can be found here.

Enjoy them! ;)

About Game Bots and Ambient Assisted Living

Last week we were in IWANN Conference, held in Torremolinos (Málaga), presenting two different works. The first one is about evolving IA bots for playing games in the Google AI Challenge. The basic idea is to improve the parameters of a hard-coded bot. Results shown that the default parameters we thought are important may be not work so good, and we can learn a lot of emerging behavior of the trained bot.

Here is the presentation:

Citation is here

The second one, is about a project I was working in last year. It’s about Ambient Assisted Living, Context-awareness and other stuff like that. The presentation is not so awesome. It was presented in the satellite workshop IWAAL.

You can download the paper in Springerlink here.

Going a bit farther (and a bit faster) solving MasterMind using evolutionary algorithms

We left MasterMind last year in a good state using estimation of distribution algorithms; however, if we want to find a solution for higher dimensions (more colors, more pegs) we have to improve the number of evaluations. In this case we use something we call endgames; same as chess playing algorithms use a database of endgames for ending a game in a straightforward way, in MasterMind we can recognize a few occasions in which the search space is reduced drastically and it’s better either change the strategy or just change the search space. When we know the colors (that is, we obtain as many white+blacks as the length of the combination) the best is to just revert to exhaustive search over combination space; when the answer is 0 whites/blacks we can also exclude those colors from the search space and start, maybe with a smaller population.
This is what we do in the paper Improving and Scaling Evolutionary Approaches to the MasterMind Problem , which was presented a short time ago in the EvoGames workshop in Torino
IMG_1235
During the presentation, Carlos Cotta and Carlos Fernandes played the game shown above.
Here’s the presentation, which you can download at ease. Picture credits are included in the notes.

The Sandpile Mutation Operator at Torino, Italy

Last thursday morning, at the Evo* congress, I was presenting our study on the mutation rates evolved by the Sandpile Mutation Operator, an alternative mutation scheme for GAs, specifically designed for Dynamic Optimization Problems, based on the Self-Organized Criticality Theory and the Bak-Tang-Wiesenfeld Sandpile Model.