Hi. Please forgive the long post.
I'm a high school teacher, and I recently used the Evolution simulator for some workshops with students to teach basic concepts about evolution. It was successful, and I really appreciate this tool.
I have an instinctive desire to understand exactly what's going on inside this simulation, so I do have some specific questions. But first a brief description of what we did.
Essentially, we introduced the program to students, and got them working on creatures. Their goal was to make creatures for the running task. We let the creatures evolve while we talked about Darwinian evolution. Then we gave them a data sheet, and asked them to record the horizontal distance the creatures traveled every ten generations from generation 0 to generation 100. Finally we entered the data into a spreadsheet, and plotted the results in a chart. Many interesting observations followed: some creatures evolved rapidly, others slowly. None of the creatures evolved at a constant rate; some slowed down or performed poorly for a few generations, and then began to perform well again., while others evolved quickly at the beginning, and then plateaued. Some designs seemed to be evolutionary dead ends, while others were more successful. Features designed for one purpose were used in novel ways. All of these observations helped students understand how evolution proceeds in the natural world. We will try to use the same experimental approach to investigate the effects of population size, mutation rate, and so on. It's a wonderful tool, so thanks again!
OK, here are my questions. If anybody has any insight, my students and I would greatly appreciate it.
1) Why is the neural network used? I have only a limited understanding of neural networks, but from what I can tell, this network does not "learn" or "improve" over time. That is, the performance of the creatures improves, because of successive steps of selection and inheritance, but I don't see how a neural network is necessary for this process. For example (and I might be wrong, or use these terms incorrectly) no back propagation of error, with subsequent adjustment of weights, occurs in this neural network, to improve it's function. Instead, the neural network is used "blend" or "combine" the inputs into outputs for the muscles. Is the neural network necessary for this? Could the input --> output task have been accomplished by a simpler algorithm? What advantages, such as the ability to control and vary the outputs in many ways, or the ability to store information efficiently, does the neural network provide? In short, why the neural network?
2) There is an option to keep the best creatures for the next generation. How does this change the reproduction step? Let's say we're working with a population of 10 creatures. Does this option instruct the program to keep the single best creatures, and the remaining nine are produced as usual? Or is the split 8 and 2, or 7 and 3 and so on. How exactly does the "keep the best creatures for the next generation" option work?
2) There is an option to change the mutation percent. The default seems to be 50%. Does that mean that every time a new creature is created through the reproduction events at the end of each generation there is a 50% chance that each output to a muscle might be modified? Or is the percent mutation qualitative?
3) The neural network provides an output for each muscle. What does that output control? The force of the muscle contraction? The distance of the contraction? The duration of the contraction?
4) Let's say the generation time is 5 seconds. During that time, my students and I can see the muscles of the creatures contracting and expanding multiple times. What is the "clock" that controls these contractions, or how is this timing controlled? I imagine that this timing is part of the instructions to the muscles, and changes between creatures. Or perhaps the muscles contract at some predetermined rate, for example, one per second, and so on.
As I said, I am simply curious about what's going on in the simulation, and I would like to know as much as possible about the process, so that I can explain it fully to my students.
All the best, Bruno.