Genetics

Started by
11 comments, last by noisecrime 18 years, 7 months ago
Quote:Original post by Alrecenk
I wanted to make sure I knew what I was talking about before I explained this more so I wrote the program. The neural determines the angle and handles the formula. When you evolve the neural net you are effectivly evolving the formula. And here are some specifics of my program for those who might want to know: inputs (x,y,current age), outputs (angle). There are 150 networks of 12 nodes running at a time.

This was a pretty cool test, but it seems a little too easy. Just in the time of me writing this post I got an ai to survive for 132544 frames. The record on my dodging test so far has only been 35000.


I actually did something similar last night, but in a much more simplified way. It was just a simple genetic algorithm, where fitness was determined by how long it stayed on the screen and the factor that "evolved" was the angle that the dots launched from. It worked =) However, I'm going to check out your app so I can see what yours looks like visually. Thanks.

EDIT: Let's move this discussion to another thread if we're going to continue it =) Your program is a lot more interesting than mine. That's what always mystifies me... how you prevent yourself from having to hardcode the formula. I would be curious to know what you did. It might help my understanding. Thanks for the app.
my siteGenius is 1% inspiration and 99% perspiration
Advertisement
Don't have time to write much, but a 'classic' AI problem to try out genetics/neural nets is the many variants of the pole balancing idea. The idea is that you have a pole on a cart - the AI component can move the cart backwards and forwards (1D) and sense the poles angle and angular velocity - the net has to see how long it can keep the pole balanced. More advanced versions include limits on the amount of space avaliable to the cart, multiple poles to balance and no velocity information. If you google ('pole balancing problem' works.) it you will find the precise definitions of the problem. Needless to say AI researchers arn't concerned with solving the problem - they can keep it going for as long as they want, there concerned with how quickly they can evolve a solution...
Hi,

You might be interested in checking out an old program called DancerDNA, which was released many years ago by an old company (now out of business) I used to work for.

You can find some info and demo versions here dancerDNA, and i'm sure with some more searching you could find more info.

Its been a long time since i looked at it, but i'm pretty sure you can read the 'dna' files of each 'creature' and that might give you some idea how to approach programming a similar application.

Another area you might want to investigate first is L-Systems, which have been used extensively for modelling reallife elements such as plants but can create interesting geometrical shapes as well.

Finally some of the work by Richard Dawkins, (the Blind Watchmaker) and his Biomorph software might also be of interest.


Overall from your first post I would say that you'd want to move away from using simple DNA blocks/random set of numbers (similar to how L-systems work - where a character represents a function) towards actual code blocks for functions. This allows you to mutate that actual code blocks or more precisly the variables/elements within a code block. As this gives far greater scope for mutations. Check out the dancerDNA creature code to see what I mean (open them in wordpad or notepad)

Of course for starting out an L-system method might be the perfect introduction, certainly it could achieve the aims of your first post.

This topic is closed to new replies.

Advertisement