Translate

Thursday, 17 July 2014

Experiment 1

Natural Selection Neural Network Simulation

My Electronic Environment Containing Electronic Life, Created by Paul Matthew Boxwell


Overview of the project

Electronic life can be just as varied, amazing and intelligent as real life. All it needs is an environment to live in and rules to live by. I aimed here to create an electronic environment with rules similar to that found in the microscopic world. My environment is two dimensional and the creatures that can exist in it abide by consuming energy that is needed for movement and reproduction. They reproduce through mitosis; all the offspring are genetically identical to the parent except for rare mutations. These mutations will lead them to have small differences in their behaviour from that of their parents. These differences may be improve or hamper the chance of survival for that creature.


Experiment 1   (Program 1.5)

Aim

I hope to recreate the biological phenomenons that lead Darwin to come up with his theory of evolution. When visiting the Galapagos Islands in 1835, Darwin observed how the finches had specialized into a variety of niches. They had evolved from a single origin species into a variety of species; each with a particular habitat or food source that they were adapted for.
I will create 12 environments at the start of my experiment, the rules of survival are the same in all, however 6 environments will have a small area, and 6 will be unlimited in size. I hope that the difference between the environment types, although small, will be enough that the initial species will split into two clear types; one specialised for each environment.
I shall record the current average generation in each environment. The ‘generation’ is the number of genetic changes (or evolutionary steps) since the original species. The original species would therefore be generation zero. By plotting the average generation of the 6 limited environment and the 6 unlimited I hope to see a clear difference between the animals living in the two different environment types.

Testing

I quickly edited the original program to accommodate the data collection for this experiment. From a provisional experiment I knew I wanted to collect the average gen of all 12 environments at a regular interval of a few minutes. The final program collects the data at 1 minute intervals.
I have run the simulation for 3.5 hours, and then a further 2.5 hours each time displaying the data in the graphs bellow.

Time 0:00 to 3:30
 Time 3:30 to 6:00



Conclusion

You can see in the first graph that for the first hour and a half of the simulation the creatures where ‘similar’ in both of the environment types. They evolved through around 140 genetic steps. By generation 150 they had split into two types, each with a clear preference for one environment. From then on the gap between them has grown. The species that populates the unlimited environments has continued to change but at a slower pace than the species that populates the limited environment. Occasionally, an ‘unlimited’ creature has populated a baron limited environment, but when a ‘limited’ creature is reintroduced, they tend to quickly take over the environment again. There is no evidence to suggest this has happen the other way around, with a ‘limited’ creature populating an unlimited environment. I think this is because the creatures can only populate an environment they are not evolved for, if there are no other competitors. There is a chance that all the ‘limited’ creatures in a limited environment can be killed off when they hit the edge, this temporarily removes the competitors and can allow the ‘unlimited’ creatures a short reign before they are overrun again by the better-adapted-to-that-environment limited creatures.
The character traits that have evolved in the creatures are obvious when viewed. Here are my observations:

Unlimited

The ‘unlimited’ creatures are fast; they loop wide for many passes at the food in the hope of getting their first. This way of life has lead to a fast pace of life, the creatures live for short periods, use their energy quickly and also breed often. This made me think that they would also evolve quickly, changing through the generation at a rapid pace like their life style. However the evidence has shown they in fact have a slower rate of evolution than the ‘limited’ type. Their population tends to be between 50 and 100 per environment.

Limited

The ‘limited’ creatures are timid, they will hold back till they think they have a chance, then race forwards to try to get to the food first. Their slower pace of moment when holding back, allows them to spread out, keeping their distance from their competitors/siblings this reduces chance they will bump into each other and be eaten. When charging for the food however, all aims of avoiding others disappear, and the fastest tends to get their first. Their population tends to be between 5 and 40 per environment. The fact that they have low numbers can lead to temporary loss of an environment. This can lead to the unlimited creature occupying the limited environment for a while. But once a limited creature is reintroduced they tend to be successful in retaking the environment by not hitting the edge and going for the food only when its confident it will get their first.

5 comments:

  1. Hello!

    My name is Joakim Szucs. Im a hobby gane developer. I recently started to study neural networks and genetic algorithms. I would like to create a similar simulation but a little bit simplier. My creatures mission woukd be to collect food in order to survive. I would like some advice on inputs. What shoukd i give them as input And output? For output i tought of 2 nodes speed and rotation so they would be able to move and turn. For input i guess their position lokkibg direction and the position of food maybe? I would like to ask how does your network works?

    Thanks in advice!

    Joakim

    ReplyDelete
    Replies
    1. Sorry for the grammar my phone doesnt semm to like me 😀

      Delete
    2. Hello, in his original simulator, he used two inputs for food location: inverse of distance, and angle relative to the creature's. Basically a polar format. He also added 3 such inputs for 3 nearest creatures.

      But hey, why stop there? It's only a suggestion. Get creative!

      Hope that helps!

      Delete
    3. Hi Revi,

      Thanks for answering this comment for me. Couldn't have said it better myself!

      I'm very close to releasing my source code for this project. Trying to make it a little more user friendly. Would you be interested in testing it? I would very much appreciate your comments to improve it before a formal release!

      Kind regards,

      Paul.

      Delete
    4. Sorry for the late reply, you're very welcome! And of course I'd really like to test it!

      Anyway, there haven't been any new videos in a while, have there?

      Delete