Neural network driver

This is a bot that tries to cross checkpoints as fast as possible. Not the best thing ever but it works with little computation time.

At each time step it can change its thrust by a new value between 0 and 200 units/timestep² (one unit = 25 pixels) and change its orientation with a maximum difference of 18 degrees. The speed is multiplied by 0.85 at each turn (friction).

This bot makes decisions using a neural network (more information below) trained by supervised learning. I have many versions (many weights) and I'm afraid this is really not the best, but at least it works !

04/10/2016 Update : there was a big bug about the angle constraint, now it's more difficult and more realistic

Neural network architecture

The neural network had two layers with bias. The activation function is tanh.

There are 9 inputs : they give the position of the 2 next checkpoints relative to the car. There are 2 outputs : chosen thrust and chosen angle difference. All those values have been rescaled between -1 and 1 for learning efficiency.

How it has been trained

This bot has been trained using the data collected from another bot I made on the website CodinGame.com. That bot uses prediction many turns in advance and optimization with simulated annealing.

The training to get the neural network weights was done by using the simple Python library PyBrain.

Other projects /// The competition this came from (my good heavy bot is there)