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.

Starcraft GP nominated to the HUMIES award

This year we participated in the HUMIES awards with our paper “Towards Automatic StarCraft Strategy Generation Using Genetic Programming“, accepted at CIG2015, wrote in collaboration with Politecnico di Torino and INRA. Our paper was elected from 28 candidates to be part of the 8 finalists, so we can consider it a great achievement. Although we didn’t won, because the astounding quality of the other works, we are thrilled about our nomination :)

Here is the presentation. It even includes a reference to Starship Troopers!

Pool-based evolutionary algorithms at GECCO 2016

As we usually do, we attended GECCO 2016 this year, a genetic and evolutionary algorithm confernce which took place in Denver, in America.

The paper accepted in the Parallel Evolutionary Systems session and two papers presented in workshops dealt with pool-based evolutionary algorithms and their implementation in volunteer computer systems in browsers. Unlike mainstream evolutionary algorithms, which put the algorithm and the population in the same process or thread, pool based evolutionary algorithms decouple population from algorithms, allowing these to work ephemerally, spontaneously and in a completely asynchronous way.

In these presentations, we focused on browser-based implementations evolutionary algorithms, where by the simple act of visiting a web page, you could help an experiment by running an evolutionary algorithm in your browser. In the first paper, presented in the EvoSoft workshop and dealing with the basic framework, which we call NodIO and entitled NodIO: a framework and architecture for pool-based evolutionary computation, we explained the working principles of this pool-based evolutionary algorithm and made comparisons with other languages and platforms, mainly to prove that, even if there is a difference in performance between the JavaScript used here, it can be more than outset by the fact that spontaneous collaboration can make potentially thousands of users participate in an experiment. This paper was presented by Mario García Valdez, because almost at the same time, I was presenting Visualizing for Success
How Can we Make the User more Efficient in Interactive Evolutionary Algorithms?
, which was an exposition of how what the web page shows has a clear influence on the time the user spends in it and thus on the performance of the system, and also a call for help from this visualization workshop on how to make this time as long as possible. We received many helpful comments, including using badges for users (how this could be done without authentication, which would be a barrier, is not so easy to work out) or creating leaderboards so users can compete with each other.
The paper presented in GECCO proper entitled Performance for the masses
Experiments with A Web Based Architecture to Harness Volunteer Resources for Low Cost Distributed Evolutionary Computation
, dealt with a series of experiments using the platform NodIO published in OpenShift. It has actually been running continuously for a year, although the number of volunteers is close to 0. I will have to check it out, anyway, this long term behavior would be interesting. The paper presented how the behavior of the user presents some patterns, including the fact that their contributions follow a Weibull distribution, very close to what happens in games. Which, in fact is what lead us to submit the first paper to the visualization workshop.
As usual, all our papers are open source and reside in GitHub. If you want copies, just leave a comment and we’ll email them to you.

How to improve the Systems Security using Data Mining

During this week, Geneura Team has welcomed Professor Ja’far Alqatawna from the University of Jordan. Ja’far Alqatawna is an Associate Professor at King Abdullah II School for Information Technology, University of Jordan. He received his B.Eng degree in Computer Engineering from Mu’tah University, Jordan, followed by MSc. in Information and Communication Systems Security from The Royal Institute of Technology (KTH), Sweden. In 2010 He has been awarded his Ph.D. Degree in Computer Information Systems with specialisation in Information Security and e-Business from Sheffield Hallam University, UK. He was part of researching projects for investigating XACML as a policy language for distributed networks at Security, Policy and Trust Lab (SPOT) of the Swedish Institute of Computer Science (SICS), Sweden. His current research interests are in the field of Cybersecurity in which he tries to look for multi-dimensional approaches that go beyond the technical dimension in order to develop trustworthy Cyberspace. Yesterday he presented a talk about the use of Data Mining for improving the security of the software systems which you can see in slide share, For this time, he presented and discussed several security areas in which data mining has the possibility of enhancing the existing security methods.


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.

Towards automatic StarCraft strategy generation using genetic programming

I forgot to mention that we published our paper “Towards automatic StarCraft strategy generation using genetic programming” in CIG 2015 conference, held in Taiwan. This was a work made in collaboration with Alberto Tonda (INRA) and Giovanni Squillero (Politecnico di Torino), starting a new research line using this game (and also, starting other nice collaborations that are still a secret!)

The abstract:

Among Real-Time Strategy games few titles have enjoyed the continued success of StarCraft. Many research lines aimed at developing Artificial Intelligences, or “bots”, capable of challenging human players, use StarCraft as a platform. Several characteristics make this game particularly appealing for researchers, such as: asymmetric balanced factions, considerable complexity of the technology trees, large number of units with unique features, and potential for optimization both at the strategical and tactical level. In literature, various works exploit evolutionary computation to optimize particular aspects of the game, from squad formation to map exploration; but so far, no evolutionary approach has been applied to the development of a complete strategy from scratch. In this paper, we present the preliminary results of StarCraftGP, a framework able to evolve a complete strategy for StarCraft, from the building plan, to the composition of squads, up to the set of rules that define the bot’s behavior during the game. The proposed approach generates strategies as C++ classes, that are then compiled and executed inside the OpprimoBot open-source framework. In a first set of runs, we demonstrate that StarCraftGP ultimately generates a competitive strategy for a Zerg bot, able to defeat several human-designed bots.

Do you want to know more? Download the paper draft or electronic version in IEEE web.