Skip to content
Miguel Duarte edited this page Nov 18, 2015 · 10 revisions

In this page we compiled a few items that are useful for someone that is starting out with JBotEvolver.

Creating your project

You can then load your new classes transparently in the configuration files, as long as the program's entry point is in your project. This means that in your project you should create a class that instantiates the class CombinedGui from JBotEvolver.

Random numbers

The evolutionary problem should be deterministic. This means that if evolution starts with a particular random seed, it should be possible to obtain exactly the same results by re-runing the evolutionary process with the same random seed. In order to achieve this, it is essential that you do not create random number generators and, instead, use the Simulator's random. Just access the Simulator instance and use the function getRandom().

You can set the initial random seed by using the random-seed argument:

--random-seed 1337

Number of samples

The number of samples will change how many simulations are necessary to evaluate each genome. By increasing this value, you will get a more accurate evaluation of the controller, since it will be tested in many more initial conditions. This will decrease the amount of "noise" in the results, but it also means that evolution will take longer. The rule of thumb is to use 5 samples in initial tests, and increase them to 30 when the setup is finalized.

Real-time debug

If you use the Eclipse IDE, you can run JBotEvolver in Debug mode. This will allow you to make changes to the code, save the file, and immediately see the results of the change. This can be particularly useful to test new functionality or to solve a bug.

Neural Activations Plot

By plotting the neural activations of the controllers, you can make sure that the controller is receiving the correct inputs. It can be extremely helpful to figure out if the experimental setup is defined correctly, and can be accessed from the Results tab in the CombinedGUI.

Resume an evolution

If you need to stop and then later resume an evolution, you can run the _restartevolution.conf file that is generated in the output folder of the experiment.