Advertisement

Naming Chromosomes?

Started by April 12, 2003 12:31 AM
12 comments, last by WILL at RedAnt 21 years, 7 months ago
capn_midnight: And yet it seems so simple in ways doesn't it? Have you read Fup's tutorial on ai-junkie.com? I find it to be well written and easy to understand. I just would like to have a pascal version of all that code to help me out. There is a VB version, but it doesn't seem to work either. Ah, maybe it's magic.

But I guess your right though you don't know what each value or weight is for or it's function, but in a way it's just like real DNA(only virtual, but what isn't with computers?) in that it can be taken away and replaced to make a totaly different bug. The behaviour is completely different. I made a bug program that displays it's DNA so to speak so that you can see the different types or sub-types. I thought it would be neat if I could save this data in some form of notation. Also I wanted the option of saving a specific bug that I like so that I can apply that bug to a scenario. Like lab experiments. LOL

smarechal: Now that is interesting! Also pretty complex, I'd guess too, since the number of inputs of each neuron is based on how many previous neurons are in the previous layer. And thats just if it's a simple feed-forward. Just thinking of how to keep track of all that change hurts my poor head. :/

Spencer: I think I'll do that. Though I might devel into path finding or flocking next, I have to get my bug program to work properly first.

For anyone interested(I could use the feed-back), aiworkshop.tripod.com "AI Bug World". I have an AI Unit I've been working on using it(in Object Pascal aka Delphi, sorry C people ). Maybe someone can benifit from or help me with this unit? To be completely honest, I've really only started on AI. I'm still changing this Bug World thing too.

[edited by - WILL at RedAnt on April 14, 2003 1:05:49 PM]
The way the article at AI-depot works is something called NEAT or NeuroEvolution of Augmenting Topologies. The choromosome is just a special list of nodes and connections. It''s not a fully connected ANN with layers of nodes. It''s more organic with some nodes tied together to a few other nodes by connections. There are not always connections between any given node though! GA then first devides the population into species of ANN''s which can multiply (not all cann. ANN architecture can be too different to produce valid offspring). After that it''s crossing and mutating

I am definately going to try this one in some sort of bug simulator to watch their brains grow as the enviroment gets more complex Sounds pretty neat to me. If your bugs need bigger brain''s, they''ll grow ''em!

Sander Maréchal
[Lone Wolves GD][RoboBlast][Articles][GD Emporium][Webdesign][E-mail]

<hr />
Sander Marechal<small>[Lone Wolves][Hearts for GNOME][E-mail][Forum FAQ]</small>

Advertisement
if the quality of the ANN is based off of how well ALL the nodes work together, then how do you determine the fitness rating for SINGAL nodes? I''ve done some GA, and I''ve read about ANN, and from what I understand is that your neurons could each individually have different actions they take, but in the end they could create the same results, making the desired action of an individual neuron difficult to determine. So how do you know when a neurons activity is close to what it should be when you don''t know what it should be?

[Formerly "capn_midnight". See some of my projects. Find me on twitter tumblr G+ Github.]

quote: Original post by capn_midnight
if the quality of the ANN is based off of how well ALL the nodes work together, then how do you determine the fitness rating for SINGAL nodes?
...
So how do you know when a neurons activity is close to what it should be when you don't know what it should be?


You don't. The GA sorts everything out for you. It's not evolving a single ANN, it's evolving them by the hundreds! Both by architecture and by connection weights. New architectures arise from mutations or crossing two parents with different architectures.

As a result of the speciation step, only parents with somewhat similar architectures are crossed. This ensures that there are not too many different achitectures around (the weaker species die out).

The fitness is determined for each species as a whole and for each individual within a species. It's species VS species and only within a species it's individual VS individual. What you get at the end are a few well performing species (ANN achitectures) and withing them a few well performing individuals (weight layout's for that type of architecture).




Sander Maréchal
[Lone Wolves GD][RoboBlast][Articles][GD Emporium][Webdesign][E-mail]


[edited by - smarechal on April 15, 2003 10:18:52 AM]

<hr />
Sander Marechal<small>[Lone Wolves][Hearts for GNOME][E-mail][Forum FAQ]</small>

This topic is closed to new replies.

Advertisement