Jump to content

Check out our Community Blogs

- - - - -

Machine Evolution (ME)

  Posted by Yannbane, 31 October 2013 · 1235 views

Me and my friend are working on something quite interesting, a program that optimizes designs of various machines: vehicles, drones, ground robots, etc.

The idea is to use a physics framework in order to evaluate how well-suited a machine is to some goal, on some terrain.

The main algorithm spawns many randomly generated candidate machines into a single generation, and then evaluates all the members of that generation - by simulating all the units' operations on the same terrain. After the evaluation process, each machine is assigned a numerical value that describes its performance. The algorithm then program then proceeds to generate a new generation, based on the previous one's best performers.

Thus, our hypothesis is that useful traits in these machines would propagate, and that the population would gradually evolve to some optimal form (or multiple optimal forms, aka species).

The current plan is to use neural networks as a control mechanism, and employ neuroevolution in order to evolve the behavioral part of our population (as opposed to just the structure, which by itself, is useless).  And as mentioned previously, one of the goals is to be able to distribute and parallelize the computation across multiple processors or computers in a network.  This is possible due to the fact that each of the simulations is a self-contained operation without any side-effects. We can parallelize the computation within a single generation because of this - but we cannot be computing multiple generations at the same time, since each generation depends on the one before it, and conditions the one after it.

The project is of course open source and available on GitHub: https://github.com/yannbane/me.


  • 2

Very nice project, I already want to see 100th generation machines :D

    • 0

Recent Entries

Recent Comments

My Picture

0 user(s) viewing

0 members, 0 guests, 0 anonymous users