Aplicando algoritmos genéticos a un controlador ‘fuzzy’ para una gestión adaptativa del tráfico

Recientemente se ha aceptado el artículo “A hybrid Fuzzy Genetic Algorithm for an adaptive traffic signal system” en la revista open-access Advances in Fuzzy Systems. En él participamos varios de los investigadores de GeNeura.

El abstract es:

This paper presents a hybrid algorithm that combines Fuzzy Logic Controller (FLC) and Genetic Algorithms (GAs) and its application on a traffic signal system. FLCs have been widely used in many applications in diverse areas, such as control system, pattern recognition, signal processing, and forecasting. They are, essentially, rule-based systems, in which the definition of these rules and fuzzy membership functions is generally based on verbally formulated rules that overlap through the parameter space. They have a great influence over the performance of the system. On the other hand, the Genetic Algorithm is a metaheuristic that provides a robust search in complex spaces. In this work, it has been used to adapt the decision rules of FLCs that define an intelligent traffic signal system, obtaining a higher performance than a classical FLC-based control. The simulation results yielded by the hybrid algorithm show an improvement of up to 34% in the performance with respect to a standard traffic signal controller, Conventional Traffic Signal Controller (CTC), and up to 31% in the comparison with a traditional logic controller, FLC.

Esperamos que os guste (y que lo citéis, claro :D).

Advertisements

Charla sobre Ciencia y Videojuegos en la Universidad de Cádiz

El viernes pasado, Pablo García (aka Dr. Fergu) y yo mismo (aka Dr. Mora) dimos con éxito la charla “La Ciencia y los Videojuegos” en la Escuela Superior de Ingeniería de la Universidad de Cádiz.

Fuimos invitados por el Dr. Manuel Palomo Duarte y muy bien acogidos, tanto por él, como por el resto de sus compañeros. ;D

En la primera parte, conté la relación existente entre ciencia y videojuegos (con mi clásica presentación), con una parte centrada en la interacción autoática y la extracción de información en videojuegos para la creación o mejora de aspectos de los mismos (Inteligencia Artificial, Generación Procedural de Contenidos, etc).

La presentación es:

En la segunda parte, Pablo explicó varios de los desarrollos e investigación del grupo GeNeura en el ámbito de los videojuegos, aplicando Algoritmos Evolutivos a juegos como Unreal, Planet Wars, Super Mario o StarCraft.

Su presentación es:

Esperamos que os gustase (u os guste, si las veis ahora). ;)

How I stayed in Granada for 15 days and failed to visit the Alhambra

Let me introduce myself: I am Alberto Tonda, a computer scientist originally from Italy, now working in a French national research center. In the picture below, there’s me looking extremely professional, with a lightsaber. I was at a wedding. Wedding with lightsabers are the best!In 2014, the University of Granada (UGR) hosted the international conference EvoSTAR: me and my co-authors won the Best Paper award, and as a prize we received funding to work with a research team at UGR.

I then contacted the GeNeura team to start a cooperation, and a few months later I was in Granada. I was extremely impressed with how welcoming the GeNeura guys were! They took care of all the administrative business (and, as researchers, we know how much this can be annoying :-D), they showed me around the city, they fed me delicious tapas, and they were an all-around pleasant people.

Here is me again, presenting my work to the team (by the way, here is a link to the presentation). It took us a while to find a common topic to work on, with lots of stimulating brainstorming, and evenalberto-geneuratually we started an exciting work on machine learning. I worked more in direct contact with Pablo Garcia and Antonio “Antares” Ares, but all people from GeNeura pitched in their ideas and were extremely helpful: J. J. Merelo, Antonio Mora, Pedro Castillo, and all the others I am forgetting (sorry, I am terrible with names!).

So, my only regret is that I didn’t visit the renown Alhambra, the beautiful fortress-palace Granada is famous for.Looks awesome. I had even bought a ticket (!) and was preparing for a late afternoon visit after work, when something every computer scientist dreads happened: the program I wrote with Pablo was almost working. So, since that was our last working day before I left, and our task was so engaging, I decided to stay and make it work. And by evening, we made it work, so at least giving up the visit was worth something!

In conclusion, I’d definitely recommend cooperating with GeNeura. And since our work together is far from finished, I have a good excuse to come back and finally visit the Alhambra :-)

Tenemos el segundo bot más humano DEL MUNDO…

…jugando a Unreal Tournament 2004. :D

José L. Jiménez, estudiante de informática de la Universidad de Málaga, dirigido por Antonio Fernández Leiva y por mí ha creado un bot, llamado NizorBot, a partir del ExpertBot que hicieron Francisco Aisa y Ricardo Caballero, que ha obtenido el segundo puesto (considerando la humanidad (humanness) del mismo) en el BotPrize 2014, celebrado dentro del CIG 2014.

Human or Bot competition (BotPrize)

Resultados de la competición BotPrize 2014 (primeros puestos)

La competición se basa en un Test de Turing que los bots deben pasar frente a jueces humanos. Éstos se enfrentarán a los bots en combates (Deathmatch) dentro del juego Unreal Tournament 2004. Durante dichos combates (en varias tandas), los jueces marcarán a cada uno de sus rivales como humano o bot en base a su criterio sobre el comportamiento que observen en el jugador.

Además, este año se ha añadido la presencia de un gran número de jueces off-line, es decir, ‘fuera del juego’, que visualizan los enfrentamientos y deciden también qué jugadores son humanos y cuáles no.

Esto le da más valor al resultado que otros años, ya que estos jueces cuentan con un punto de vista ‘menos limitado’ que los participantes en el juego.

El bot ha sido implementado mediante algoritmos evolutivos interactivos, en los que un controlador humano interviene cada cierto tiempo en dos sentidos:

  • Ajustando parámetros del algoritmo (controlador experto en el algoritmo)
  • Respondiendo a cuestiones sobre el jugador y el juego (controlador experto en el juego).

En ambos casos, el desarrollo del algoritmo (su ejecución) se ve afectado y dirigido por este controlador, lo que hace que el bot evolucione de una forma más acorde con lo que éste espera. En este caso, para comportarse de la manera más humana posible.

José está en proceso de escritura de su Proyecto Fin de Carrera y, a continuación, los tres trabajaremos en un artículo describiendo todo el proceso.

¡Estad atentos! :D

Charla “Ciencia y Videojuegos” en el Curso de Almuñecar 2012

El pasado viernes (27 de Julio), presenté una charla dentro del curso Animación y Videojuegos, ofrecido por el Centro Mediterráneo de Almuñécar.

En ella comenté en tono desenfadado las relaciones existentes entre ambos mundos, considerando tanto las aportaciones de los sistemas de videojuegos al entorno científico, como los avances en investigación dentro del campo de los videojuegos.

Podéis encontrarla en Slideshare y aquí mismo (:D):

Que la disfrutéis. ;)

Además, nos hicieron una ‘super-entrevista’ mientras hacíamos networking (:P) y la publicaron en la edición online de Ideal Costa:

http://almunecar.ideal.es/actualidad/517-curso-de-animacion-y-videojuegos-en-almunecar.html

Saludos.

Presentando el algoritmo genético basado en CouchDB

Se trata básicamente de usar CouchDB, una base de datos NoSQL basada en almacenar claves/valores, como base para un algoritmo genético basado en pool. Estos algoritmos desacoplan la población del programa, colocándola en un almacén persistente.

El trabajo ha sido presentado en el congreso MAEB de metaheurísticas y algoritmos evolutivos y bionspirados, y es el primero de una serie. El código os lo podéis descargar de el repositorio junto con los datos y demás; os podéis también descargar el trabajo completo
Aquí tenemos un video del algoritmo funcionando:

Optimizando algoritmos de optimización

Llevamos programando algoritmos evolutivos desde que casi echamos los dientes en la universidad, y sin embargo la preocupación y la investigación va más por el camino de cambiar el algoritmo, y no cambiar la implementación, y eso que tanto los lenguajes como las librerías como las prácticas de programación han cambiado enormemente en estos años. En este artículo, que se va a presentar en el congreso de Metaheurísticas, Algoritmos Evolutivos y Bioinspirados que se integra dentro del CEDI que se está celebrando en Valencia, tratamos de hacer precisamente eso: abordar un algoritmo evolutivo (hecho en Perl desde el punto de vista de la programación, y demostrar que las mejoras en tiempo de ejecución que se pueden obtener alcanzan, en ocasiones, varios órdenes de magnitud.
El trabajo se titula

Optimizando la implementación de algoritmos evolutivos. JJ Merelo, Pedro Castillo, Juan Luís Jiménez Laredo and María Isabel García Arenas

Tenéis la presentación

Y también el código cuyas mejoras podéis visualizar a través de las diferencias entre las versiones de fichero que te permite hacer Launchpad