The Results

The results obtained were ultimately invalidated by a discovery of a bug in the program while adding visualization late in the project. The results of the buggy program will be discussed, as the system still seemed to contain a consistent environment in which behaviors did evolve to some extent. Unfortunately, the nature of this system is not understood.

In a typical run the best program in each generation with a population of 100 programs being run by 75 ants for 150 time steps would be around 45% coverage, increasing to around 65% coverage after 100 generations. We do not know what the upper limit for coverage is, though it is certainly less than 100% due to overlap as the ants try to get away from each other (which they would do in an optimal program). It is probably even lower because of the bug mentioned above.

In general, the best program would improve around 50% before reaching a plateau. In very few cases was a high rate of cover achieved, again, possibly beacuse of the bug. Another potential reason for lack of improvement was that the problem was relatively easy; either solved by simple programs or a wide variety of them. If this is true, then the potential for improvement was low, and no better could be expected. Another explanation is that often the best program did so well that it would be chosen with a frequency of up to 50%. This results in an evolutionary bottleneck, in which every program contains almost all the same code, leaving nowhere for innovation and improvement to come from.

What was the bug? For some as of yet undiscovered reason, the initialized world contains regions that have been visited and some that contain pheromones, and the ants tend to move in straight lines bewteen "visited" regions.

Previous Table Of Contents Next