What I do right now
I am a postdoctoral researcher at IDSIA working with Jürgen Schmidhuber. I work mainly in evolutionary reinforcement learning and computational intelligence for games. Currently, this page holds some information about the various projects I'm involved in. For my publication list and CV, see my other homepage, and for updates on what's happening, see my blog.

Computational intelligence in racing games
This has been my main project for the past three years. We started with evolving neural networks for controlling cars driving fast around racing tracks. Lately, we've been moving on to multi-population co-evolution, and to modelling human players' driving styles, and evolving new tracks meant to be fun to drive for particular players. See this (not completely up to date) book chapter for an overview, or better, read my PhD thesis!

Simulated car racing competitions
Together with my PhD supervisor Simon Lucas I successfully organized the simulated car racing competitions for the IEEE CIG and CEC conferences 2007 (see this and this webpage). For 2008, I am organizing the car racing competitions for the WCCI conference, with Pier Luca Lanzi and Daniele Loiacono (see this webpage).

Geometric Particle Swarm Optimization
Alberto Moraglio has recently invented a generalization of the PSO algorithm to (almost) arbitrary search spaces. I have been working with him to turn his ideas into concrete code for a number of problems. See this paper on Sudoku; we also recently submitted a paper on PSO for GP, something we call Particle Swarm Programming.

Learning dynamics and control for complex robots
With Renzo De Nardi I've been working on evolving neural networks for helicopter control (se this paper). This is a hard problem even if you have access to an accurate simulation - if you don't, it's practically impossible. Therefore, the corresponding problem of automatically modelling robot dynamics is equally important. In this paper we investigated new evolutionary techniques for both creating models of and learning to control a miniature racing car.

Sudoku as an optimization benchmark
Sudoku is not only fun to solve for humans, it can also make an excellent benchmark for optimization algorithms. In this paper we argue as much, and investigate some ways of solving Sudoku with genetic algorithms. In this paper we do the same with Geometric PSO.

Evolving intelligence in first-person shooters
This is what I'm currently most excited about: I want to try to evolve neural nets - or expression trees - that control bots in an FPS game in an intelligent way, using only the screen capture as input. This, in effect, lets the learning algorithm compete on equal terms with human players, and turns the problem into a full-fledged robotics problem including vision, localization etc. The difference is that it all happens in software only, and therefore quickly enough for evolutionary algorithms to be useful. I and other people at IDSIA think that this holds great promise and are currently investigating the best game environment to use.