Source code

Julian Togelius

Thanks for your interest in my work - if you have any questions at all on e.g. how to use my code,don't hesitate to mail me!

I tend to keep all of my experiment code in a single java source tree,along with some third party libraries and some of Simon's code. The followingis a snapshot of this tree as it was of September 7, 2005:

To run any of the experiments, unzip the code, cd into the classes directory, and type e.g.
java -cp .:../jdom.jar evobase.EvoBase evolve pop net7-7-2 task racesens sensevol true
to evolve a car racing controller using the simulated sensor setup, and then
java -cp .:../jdom.jar evobase.EvoBase demo pop net7-7-2_0 task racesens sensevol true
to watch it drive.

If you run windows, you will want to change the colon after -cp to a semicolon; you might alsowant to add "randstart true" to the command line to randomize the starting position. On subsequentevolutionary runs with the same starting genome (net7-7-2.xml) results will be saved as net7-7-2_1,net7-7-2_2 etc. The parameter pop sets population size, gen sets number of generations, and mut setsmutation magnitude. Much more about various kinds of tasks (cellz, phototaxis etc) and controllers(timenet, zeroseq500 etc) can be learned from looking at the code. Or by asking me. Please do that!

The further evolved car racing code, used in the CEC 2006 paper is also "java evobase.Demo" or "java evobase.Evolve" for tips on using the code.
In case you came here for the Sudoku code, have a look at code is separate from the car racing and Cellz code, and I would venture so far as tosay that it is pretty neat, understandable and extendable. Read through Sudoku.javato understand what's happening.