Angry Birds meet EAs at EVO* 2019

Last 24 of April we presented the work “Free Form Evolution for Angry Birds Level Generation” at EVOApplications 2019 (EvoGAMES) a conference part of EVO* 2019, held in Leipzig (Germany).

The abstract of the work is:

This paper presents an original approach for building structures that are stable under gravity for the physics-based puzzle game Angry Birds, with the ultimate objective of creating fun and aesthetically pleasing Angry Birds levels with the minimum number of constraints. This approach consists of a search-based procedural level generation method that uses evolutionary algorithms. In order to evaluate the stability of the levels, they are executed in an adaptation of an open source version of the game called Science Birds. In the same way, an open source evolutionary computation framework has been implemented to fit the requirements of the problem. The main challenge has been to design a fitness function that, first, avoids if possible the actual execution of the simulator, which is time consuming, and, then, to take into account the different ways in which a structure is not structurally sound and consider them in different ways to provide a smooth landscape that eventually achieves that soundness. Different representations and operators have been considered and studied. In order to test the method four experiments have been carried out, obtaining a variety of stable structures, which is the first path for the generation of levels that are aesthetically pleasing as well as playable.

@amorag did a short presentation and later ‘defended’ a poster during the reception act. The presentation is a description of the poster:

Actually the poster was selected as the second best of the conference by the attendants. :D

Those interested can found the paper at Springer web: https://link.springer.com/chapter/10.1007/978-3-030-16692-2_9

Enjoy it… and cite us! ;D

Anuncios

Algoritmos evolutivos aplicados a HearthStone en las noticias

Este fin de semana algunas webs se han hecho eco de una noticia originada por la Agencia SINC.

En concreto la noticia se ha titulado La inteligencia artificial imita la evolución biológica para ganar en los videojuegos y resumida como:

Informáticos españoles han aplicado técnicas avanzadas de inteligencia artificial para generar automáticamente los mejores mazos de cartas en Hearthstone, un videojuego en línea con más de 30 millones de jugadores en todo el mundo. Los algoritmos se inspiran en el proceso biológico de la selección natural.

Entre las webs que la han recogido, destacan, por ejemplo la de La Sexta.

Dichas noticias se refieren a nuestro trabajo publicado hace algunos meses en la revista Knowledge-Based Systems y comentado en esta entrada del blog.

 

 

Stateless evolutionary algorithms

Most algorithms keep some kind of state: global variable that holds the optimum, a counter of the number of evaluations, some context every piece algorithm must be aware of. However, this might not be the best when we want to create cloud-native algorithms, and it’s not in the case of cloudy evolutionary algorithms. There was a bit of that in GECCO, but as long as I was attending the Perl Conference in Glasgow, and I was using Perl, I kind of switched focus from the evolutionary part (but there was a bit of that too) to the language-design part and talked about evolutionary algorithms in Perl 6. The presentation is linked from the talk description.
Main problem is that you have to create dataflows that allow the algorithm to progress, as well as work efficiently in that kind of concurrent architecture, which is similar to the serverless architecture that is our eventual target.
We’ll be continuing this research in the workshop on engineering applications in Medellín, where my keynote will deal with this same topic.

Torres de la universidad//embedr.flickr.com/assets/client-code.js

Improved Genetic Fuzzy Drivers presented at CIG 2018

Last week I presented at IEEE CIG 2018 (held in Maastricht, The Netherlands) our following step in our research about autonomous drivers for Car Racing Simulators, such as TORCS, titled “The Evolutionary Race: Improving the Process of Evaluating Car Controllers in Racing Simulators“.

As commented before by @jjmerelo and later by @fergunet, we designed with Mohammed Salem (University of Mascara) a driver’s AI in which two Fuzzy Subcontrollers were hybridized with a Genetic Algorithm.

In this work we present a better evaluation approach for the GA, combining three methods: heuristic track choosing, improved fitness functions, and race-based selection of the best.

The abstract of the work is:

Simulated car races have been used for a long time as an environment where car controlling algorithms can be tested; they are an interesting testbed for all kinds of algorithms, including metaheuristics such as evolutionary algorithms. However, the challenge in the evolutionary algorithms is to design a reliable and effective evaluation process for the individuals that eventually translates into good solutions to the car racing problem: finding a controller that is able to win in a wide range of tracks and with a good quantity of opponents. Evaluating individual car controllers involves not only the design of a proper fitness function representing how good the car controller would be in a competitive race, but also the selection of the best solution for the optimization problem being solved; this decision might not be easy when uncertainty is present in the problem environment; in this case, weather and track conditions as well as unpredictable behavior of other drivers. Creating a methodology for the automatic design of the controller of an autonomous driver for a car racing simulator such as TORCS is an optimization problem which offers all these challenges. Thus, in this paper we describe an analysis and some proposals to improve the evaluation of optimized fuzzy drivers for TORCS over previous attempts to do so. It builds on preliminary results obtained in previous papers as a baseline and aims to obtain a more competitive autonomous driver via redesign of the fitness evaluation procedure; to this end, two different fitness functions are studied in several experiments, along with a novel race-based approach for the selection of the best individual in the evolution.

And the presentation is:

You can check our paper in the proceedings of the conference.

Enjoy it!

(And cite us as usual :D)

On Volunteer-Computing and Self-driving car fuzzy controllers in the sunny Cádiz

Every two years, the International Conference on Information Processing and Management of Uncertainty in Knowledge-Based Systems (IPMU) brings together the most important researchers in the area of uncertainty and fuzzy systems. As I am working in Cadiz, it was a great opportunity to present some of the latest work that the Geneura group has recently developed.

The first of these has been developed together with the Technical Institute of Tijuana and describes the social behaviour of users of a voluntary computer system. It is very interesting to discover how the use of a leaderboard makes users spend more time collaborating. Take  a look to the presentation:

Mario García Valdez, Juan Julián Merelo Guervós, Lucero Lara, Pablo García-Sánchez:
Increasing Performance via Gamification in a Volunteer-Based Evolutionary Computation System. IPMU (3) 2018: 342-353

Here is the abstract:

Distributed computing systems can be created using volunteers, users who spontaneously, after receiving an invitation, decide to provide their own resources or storage to contribute to a common effort. They can, for instance, run a script embedded in a web page; thus, collaboration is straightforward, but also ephemeral, with resources depending on the amount of time the user decides to lend. This implies that the user has to be kept engaged so as to obtain as many computing cycles as possible. In this paper, we analyze a volunteer-based evolutionary computing system called NodIO with the objective of discovering design decisions that encourage volunteer participation, thus increasing the overall computing power. We present the results of an experiment in which a gamification technique is applied by adding a leader-board showing the top scores achieved by registered contributors. In NodIO, volunteers can participate without creating an account, so one of the questions we wanted to address was if the need to register would have a negative impact on user participation. The experiment results show that even if only a small percentage of users created an account, those participating in the competition provided around 90% of the work, thus effectively increasing the performance of the overall system.

 

The second work uses an evolutionary algorithm to optimize the parameters of a fuzzy controller that drives a car in the TORCS video game and continues our previous work. We have been collaborating with Mohammed Salem of University of Mascara along this line for a while.

Mohammed Salem, Antonio Miguel Mora, Juan Julián Merelo Guervós, Pablo García-Sánchez: Applying Genetic Algorithms for the Improvement of an Autonomous Fuzzy Driver for Simulated Car Racing. IPMU (3) 2018: 236-247

Games offer a suitable testbed where new methodologies and algorithms can be tested in a near-real life environment. For example, in a car driving game, using transfer learning or other techniques results can be generalized to autonomous driving environments. In this work, we use evolutionary algorithms to optimize a fuzzy autonomous driver for the open simulated car racing game TORCS. The Genetic Algorithm applied improves the fuzzy systems to set an optimal target speed as well as the instantaneous steering angle during the race. Thus, the approach offer an automatic way to define the membership functions, instead of a manual or hill-climbing descent method. However, the main issue with this kind of algorithms is to define a proper fitness function that best delivers the obtained result, which is eventually to win as many races as possible. In this paper we define two different evaluation functions, and prove that fine-tuning the controller via evolutionary algorithms robustly finds good results and that, in many cases, they are able to play very competitively against other published results, with a more relying approach that needs very few parameters to tune. The optimized fuzzy-controllers (one per fitness) yield a very good performance, mainly in tracks that have many turning points, which are, in turn, the most difficult for any autonomous agent. Experimental results show that the enhanced controllers are very competitive with respect to the embedded TORCS drivers, and much more efficient in driving than the original fuzzy-controller.

 

A better TORCS driving controller presented in EvoStar 2018

Amazing bench
Last year, we presented along with Mohammed Salem, from the university of Mascara, in Algeria, our TORCS driving controller. This controller effectively drives a simulated vehicle, considering input from its sensors, and deciding on a target speed and how to turn the steering wheel.
Poster session, with our poster in the first position
This year, in Evostar 2018 in Parma, we had again our paper accepted for the poster session, which took place in the incredible corridor to the right of these words. The poster included interactive elements, such as a small car used for demonstration on how the driver worked.

And it works really well, or at least better than the previous versions. The key element was the design of a new fitness function that includes damages, and also terms related to speed. Still some way to go; in the near future we will be posting our new results in this area.

The book of proceedings can be downloaded from Springer. Our paper is in page 342 and you can also download just the paper from here, but we do open science, so you can follow our writing process and download the paper from this GitHub repository too

 

 

Self-organized criticality in software repositories, poster presented at ECAL 2017

mural-insa

The European Conference on Artificial Life or ECAL is not one of our usual suspects. Although we have attended from time to time, and even organized it back in 95 (yep, that is a real web page from 1995, minus the slate gray background), it is a conference I quite enjoy, together with other artificial life related conferences. Artificial life was quite the buzzword in the 90s, but nowadays with all the deep learning and AI stuff it has gone out of fashion. Last time I attended,ten years ago, it seemed more crowded. Be that as it may, I have presented a tutorial and a poster about our work on looking for critical state in software repositories. This the poster itself, and there is a link to the open access proceedings, although, as you know, all our papers are online and you can obtain that one (and a slew of other ones) from repository.
This is a line of research we have been working on for a year now, from this initial paper were we examined a single repository for the Moose Perl module. We are looking for patterns that allow us to say whether repositories are in a critical state or not. Being as they are completely artificial systems, engineering artefacts, looking for self organized criticality might seem like a lost cause. On the other hand, it really clicks with our own experience when writing a paper or anything, really. You write in long stretches, and then you do small sessions where you change a line or two.
This paper, which looks at all kinds of open source projects, from Docker to vue.js, looks at three different things: long distance correlations, free-scale behavior of changes, and a pink noise in the spectral density of the time series of changes. And we do find it, almost everywhere. Most big repos, with more than a few hundred commits, possess it, independently of their language or origin (hobbyist or company).
There is still a lot of work ahead. What are the main mechanisms for this self-organization? Are there any exceptions? That will have to wait until the next conference.