other selection and replacement procedures, multi-objective optimization, and even other paradigms like Evolution Strategies and Genetic Programming. However, all experiments presented here use as controllers Neural Networks (NNs)
with fixed topology. The genotype is hence the vector of the (real-valued) weights of the NN. Those weights evolve in [−1, **1] (unless otherwise mentioned), using a**
(30, **150)-Evolution Strategy with intermediate crossover and self-adaptive Gaussian mutation [14]: Each one of 30 parents gives birth to 5 offspring, and the best**
30 of the 150 offspring become the parents for next generation. All experiments run for 250 generations, requiring about 1h to 3h depending on the **experiment.**
All results shown in the following are statistics based on at least 10 independent runs. One fitness evaluation is made of 10 epochs**, and each epoch lasts from**
150 to 1000 time steps (depending on the experiment), starting from a randomly chosen initial position.

## 5 Learning A Simple Behavior: Obstacle Avoidance 5.1 Description

The symbolic controller (SC) with 8 outputs, described in section 3.1, is compared to the classical controller (CC) the outputs of which are the **speeds of both**
motors. Both controllers have 8 inputs, namely the IR sensors of the Khepera robot in active mode (i.e. detecting the obstacles).

Only Multi-Layer Perceptrons (MLP) were considered for this simple **task.**
Some preliminary experiments with only two layers (i.e. without hidden neurons) demonstrated better results for the Symbolic Controllers than for the Classical Controller. Increasing the number of hidden neurons increased the performance of both types of controllers. Finally, to make the comparison "fair", the following architectures were used: 14 hidden neurons for the SC, and 20 hidden neurons for the CC, resulting in roughly the same number of weights (216 vs 221).

The fitness function[12], is defined as Pepoch Pt |V (t)|(1 −pδV (t**)), where**
V (t) is the average speed of the robot at time t, and δV (t**) the absolute value**
of the difference between the speeds of the left and right motors. **The difference** with the original fitness function is the lack of IR sensor values in the **fitness:** the obstacle avoidance behavior is here implicit, as an epoch immediately ends whenever the robot hits an obstacle. The arena is similar to that in [12].

## 5.2 Results

The first results for the SC were surprising: half of the runs, even **without hidden** neurons, find a loophole in the fitness function: due to the absence **of inertia in the**
simulator, an optimal behavior is obtained by a rapid succession of FORWARD - BACKWARD **movements at maximum speed - obviously avoiding all obstacles!**
A degraded SC that has no BACKWARD **action cannot take advantage of**
this bug. Interestingly, classical controllers only discover this trick when provided with more than 20 hidden neurons and **if the weights are searched in a larger**
interval (e.g. [−10, 10]).