Master of Evolution! Using Genetic Algorithms to generate decks for the game HearthStone

This September we attended to the IEEE CIG 2017 Conference in Santorini, Greece, to present the paper “Evolutionary Deckbuilding in HearthStone”. This paper was written in collaboration with our colleagues Alberto Tonda and Giovanni Squillero.

The story of this paper started a (not so) long time ago while me and Alberto were discussing about how awesome HearthStone is. Suddenly, we thought about how easy it would be to create the constraints for the uGP framework, and that there were some open source simulators of the game. In a while, we already had the constraints, the simulator adapted to accept individuals from uGP, and some experiments running.

And we finished the paper after, of course.

You can download the paper draft from here (the electronic original version is not available yet).

And here is the presentation:

The abstract:

—One of the most notable features of collectible card games is deckbuilding, that is, defining a personalized deck before the real game. Deckbuilding is a challenge that involves a big and rugged search space, with different and unpredictable behaviour
after simple card changes and even hidden information. In this paper, we explore the possibility of automated deckbuilding: a genetic algorithm is applied to the task, with the evaluation delegated to a game simulator that tests every potential deck against a varied and representative range of human-made decks.
In these preliminary experiments, the approach has proven able to create quite effective decks, a promising result that proves that, even in this challenging environment, evolutionary algorithms can find good solutions.

How good are different languages at runnig evolutionary algorithms?

As part of the EvoStar conference, which took place last week, we presented the poster Benchmarking Languages for Evolutionary Algorithms, where, with help from many friends in Open Science fashion, we tested several a bunch of compiled and scripting languages on several common evolutionary operations: crossover, mutation and OneMax.

It was presented in poster form, and you had to be there to actually understand it. Since you are not, it’s better if you use this comments (or those at the poster) to inquire about it. Or you can check out the interactive presentation we also did, which in fact includes data and everything in the source.
This work is ongoing, and you are very welcome to participate. Just take a peek at the repo, and do a pull request.

Enviada la versión definitiva del trabajo “Predicción a muy corto plazo de series temporales de volumen de tráfico rodado mediante co-evolución de RNFBR”

Tras realizar las correspondientes modificaciones indicadas por los revisores del congreso MAEB 2015, hemos procedido a enviar la versión definitiva del trabajo, usando para ello la famosa plataforma EasyChair.
Cabe recordar que MAEB’2015 se celebrará en Mérida-Almendralejo, durante los días 4 al 6 de Febrero de 2015, y estará organizada por el Centro Universitario de Mérida, el cual pertenece a la Universidad de Extremadura.
Toda la info del congreso en:

[Paper] A Methodology to Develop Service Oriented Evolutionary Algorithms

Paper about our methodology for service oriented EAs

OSGiLiath Evolutionary Framework

Our paper A Methodology to Develop Service Oriented Evolutionary Algorithms has been published in the proceedings of the 8th International Symposium on Intelligent Distributed Computing – IDC’2014. This paper is a resume of the SOA-EA methodology, one of the chapters of my thesis (available here). The presentation, made by JJ Merelo, is quite cool:

The abstract:

This paper proposes a methodology to design and implement Evolutionary Algorithms using the Service Oriented Architecture paradigm. This paradigm allows to deal with some of the shortcomings in the Evolutionary Algorithms area, facilitating the development, integration, standardization of services that conform a evolutionary algorithm, and, besides, the dynamic alteration of those elements in runtime.
A four-step methodology to design services for Evolutionary Algorithms is presented: identification, specification, implementation and deployment. Also, as an example of application of this methodology, an adaptive algorithm is developed.

You can download the paper draft from…

View original post 15 more words

Free access to paper accepted at GECCO’14

During 1 month, papers accepted at GECCO1’4 will be freely available. Thus, you can get and read our papers:

  • “Assessing different architectures for evolutionary algorithms in javascript” by Juan Julián Merelo, Pedro Castillo, Antonio Mora, Anna I. Esparcia-Alcázar, Víctor M. Rivas Santos (doi 10.1145/2598394.2598460) at
  • NodEO, a multi-paradigm distributed evolutionary algorithm platform in JavaScript” by Juan-Julián Merelo, Pedro Castillo, Antonio Mora, Anna Esparcia-Alcázar, Víctor Rivas-Santos (doi:10.1145/2598394.2605688) at
  • “Enforcing corporate security policies via computational intelligence techniques” by Antonio M. Mora, Paloma De las Cuevas, Juan Julián Merelo, Sergio Zamarripa, Anna I. Esparcia-Alcázar (doi: 10.1145/2598394.2605438) at
  • A methodology for designing emergent literary backstories on non-player characters using genetic algorithms”, by Rubén Héctor García-Ortega, Pablo García-Sánchez, Antonio Miguel Mora, Juan Julián Merelo (doi: 10.1145/2598394.2598482) at


Evolution using JavaScript in EvoStar

JavaScript, despite its age, is considered now an emergent language, since it is starting to have a ecosystem that allows the development of complex and high-performance applications. That is why in the recent EvoStar we had a poster that uses evolutionary algorithms libraries written using it. It is based on MOOTools to create an object-oriented browser-based library called jsEO, and is entitled An object-oriented library in JavaScript to build modular and flexible cross-platform evolutionary algorithms.

Unreliable Heterogeneous Workers in a pool-based evolutionary algorithm

by Mario Garcia-Valdez, Juan-J. Merelo, Francisco Fernández de Vega
in  EvoAPPS posters

In this paper the effect of node unavailability in algorithms using EvoSpace, a pool-based evolutionary algorithm, is assessed. EvoSpace is a framework for developing evolutionary algorithms (EAs) using heterogeneous and unreliable resources. It is based on Linda’s tuple space coordination model. The core elements of EvoSpace are a central repository for the evolving population and remote clients, here called EvoWorkers, which pull random samples of the population to perform on them the basic evolutionary processes (selection, variation and survival), once the work is done, the modified sample is pushed back to the central population. To address the problem of unreliable EvoWorkers, EvoSpace uses a simple re-insertion algorithm using copies of samples stored in a global queue which also prevents the starvation of the population pool. Using a benchmark problem from the P-Peaks problem generator we have compared two approaches: (i) the re-insertion of previous individuals at the cost of keeping copies of each sample, and a common approach of other pool based EAs, (ii) inserting randomly generated  individuals. We found that EvoSpace is fault tolerant to highly unreliable resources and also that the re-insertion algorithm is only needed when the population is near the point of starvation.