DANN:Keys
From Syncleus Wiki
| Description | An Artificial Intelligence Library written in Java. |
| Last Activity | Today |
| License | OSCL Type C |
| IRC Room | #dANN on irc.freenode.org |
| Homepage | dANN |
| Distributions | Binary ZIP w/JavaDoc Binary Tarball w/JavaDoc Source ZIP Source Tarball |
| Documentation | Javadoc repository Javadoc for GIT master Javadoc for stable release |
| Development | git://git.syncleus.com/dANN.git TRAC Bug Tracking Hudson Continuous Integration |
| Mailing Lists | dANN Announcements dANN Development Syncleus Announcements |
Genetic Wavelets uses keys, which use schemata to encode their values. A key is a variable length string that is evolved during the genetic wavelet algorithm using x as a wild card character. A key, specifically a signal type key, might look like this:
A key is a schema[1], but it is not used for chromosome representation, instead it is used to model communications between cells in the Genetic Wavelets. Keys are used to represent two important components of the Genetic Wavelets - receptors and signals. The interaction is loosely modeled after hormones binding to cells. There are restrictions for signals binding to receptors. A signal can bind to a receptor if and only if the receptor matches the signal on all non-x points. For example, the signal key "101x11" can bind to the receptor "10xx11," but "101x11" cannot bind to the same receptor.
Keys do not have to be equal in length in order to bind to one another; a smaller length receptor would bind with more signals, because it would bind to more sites on a signal. These signal and receptors are an integral part of the Genetic Wavelets. Keys can mutate along with the system, however they are not changed on crossover. A key is initialized with one or more values depending on the mutation factor of the gene that is initializing it. All of the genes in the Genetic Wavelets use keys in some way.
Design
Both Receptor and Signal type Keys have essentially the same functionality. Aside from the fact that Signals only bind to Receptors they are virtually identical. Because of this the majority of the functionality of all keys reside in the AbstractKey class and both ReceptorKey and SignalKey inherit from this. A SignalKey has no significant functionality of its own separate from its parent however the ReceptorKey implements bind. The bind method is used to determine if a particular SignalKey can bind to the ReceptorKey.














