[jgap-users] Planning a chromosome and other questions
Brought to you by:
klausikm
From: Ryan R. V. <rv...@gm...> - 2006-06-16 21:02:28
|
Hello. I'm new to JGAP... it looks great so far. I especially appreciate the documentation. The code is very well documented; however, there are some cases where I could use a bit of a higher level picture. For example: mutation. As I plan my chromosome, I'm not sure if I should piggyback on the IntegerGene class or define my own. The problem is that I'm not really sure how values are represented internally, or how they are mutated. I'm trying to represent a machine with physical connections. Hence I plan to allocate one gene for each potential connection. The gene should indicate what type of connection, if any, is present (the "type") and how it is configured (the "value"). I used to maintain a simple GA in Perl that encoded these two featuers into one gene; however, I think I want to get away from that. It really seems that these should be distinct genes, perhaps united as a supergene. Does this sound right? Anyway, that's the motivation for my question. I see from the MinimizeMakeChange example that each coin is really just an IntegerGene who's "meaning" is imposed in the fitness function, based on the position of the gene. Hence the gene itself is a kind of black box to me. For my chromosome, the gene index already maps to the the index of the physical connection, so I still have type and configuration to represent. If I had to guess, I would say that I should devote two IntegerGenes to each position. The first has an integer range from 0-(num_types), where 0 represents a "repressed" or "dormant" gene. The second is an integer, probably limited to 0-1000 that means different things depending on the type. Am I on the right track here? Is it clear what I am trying to do? I'd like to sanity check my notes before I spend too much time on something silly. Because I don't have a clear understanding of the internal representation of values, and how mutation effects these values, I'm not entirely confident in my approach. Any help would be appreciated. Thanks again for a great project. Ryan |