What is the evolutionary process doing exactly?
Roughly, this is what happens: we have a set of building blocks (bars, actuators and neurons), and a set of “operations” that can join building blocks together, take them apart, or modify their dimensions. Then, we start from scratch with empty robots, each with zero bars, zero actuators and zero neurons, and let the computer apply operations at random. After each operation is carried out, the computer measure the performance of the robot in a simulator. If it is better than average performance (speed, in our case), the computer make more of it, and if it is less than average, the computer removes it. That’s it. We let this thing run for a day, and see what happens: Obviously, in the beginning most robots are just innate piles of random building blocks and their performance is zero. By chance, after, say, a hundred generations, a particular group of building blocks happen to assemble in such a way that something moves a little. That accidental assembly is then replicated because it has